Esempio n. 1
0
        public static NeuralNetworks Load(string fileName, bool includeWeights = false)
        {
            NeuralNetworks network = null;

            if (fileName.Contains("-gz"))
            {
                using (NeuralNetworkDataSet ds = new NeuralNetworkDataSet())
                {
                    using (FileStream inFile = File.OpenRead(fileName))
                    {
                        using (GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress))
                        {
                            ds.ReadXml(Decompress, XmlReadMode.ReadSchema);
                        }
                    }

                    if (ds.NeuralNetworks.Rows.Count == 1)
                    {
                        network = new NeuralNetworks();

                        NeuralNetworkDataSet.NeuralNetworksRow networkRow = ds.NeuralNetworks.First();
                        network.Id = networkRow.NetworkId;
                        network.Name = networkRow.Name;
                        network.TrainToValue = networkRow.TrainTo;
                        network.LossFunction = (LossFunctions)networkRow.LossFunction;
                        network.CreatedOn = networkRow.CreatedOn;
                        network.dMicron = networkRow.DMicron;

                        Layers layer;
                        Layers previousLayer = null;
                        foreach (NeuralNetworkDataSet.LayersRow layerRow in networkRow.GetLayersRows())
                        {
                            List<bool> isMapped = new List<bool>();
                            foreach (NeuralNetworkDataSet.MappingsRow mappingRow in layerRow.GetMappingsRows())
                            {
                                isMapped.Add(mappingRow.IsMapped);
                            }

                            Mappings mappings = null;
                            if (isMapped.Count > 0)
                                mappings = new Mappings(network, layerRow.LayerIndex, isMapped);

                            layer = new Layers(network, layerRow.LayerIndex, (LayerTypes)layerRow.LayerType, (KernelTypes)layerRow.KernelType, layerRow.NeuronCount, layerRow.UseMapInfo, layerRow.MapCount, layerRow.MapWidth, layerRow.MapHeight, layerRow.IsFullyMapped, layerRow.ReceptiveFieldWidth, layerRow.ReceptiveFieldHeight, previousLayer, mappings, layerRow.LockedWeights);
                            if ((includeWeights) && (layerRow.GetWeightsRows().Count() > 0))
                            {
                                int i = 0;
                                foreach (NeuralNetworkDataSet.WeightsRow weightRow in layerRow.GetWeightsRows())
                                {
                                    layer.Weights[i].Value = weightRow.Value;
                                    layer.Weights[i].DiagonalHessian = weightRow.DiagonalHessian;
                                    i++;
                                }
                            }
                            network.Layers.Add(layer);
                            previousLayer = layer;
                        }

                        if (!includeWeights)
                            network.InitWeights(true);
                    }
                    else
                    {
                        InformationDialog.Show(null, "Invalid data format.", "Select an different file", "Information");
                    }
                }
            }

            return network;
        }
Esempio n. 2
0
        private NeuralNetworks InitializeDefaultNeuralNetwork()
        {
            //NeuralNetworks network = new NeuralNetworks("Simard-6", 0.8D, LossFunctions.MeanSquareError, 0.1D);
            //network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            //network.Layers.Add(new Layers(network, LayerTypes.ConvolutionalSubsampling, KernelTypes.Sigmoid, 6, 14, 14, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.ConvolutionalSubsampling, KernelTypes.Sigmoid, 50, 5, 5, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 100));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 10));
            //network.InitWeights();

            //NeuralNetworks network = new NeuralNetworks("Simard-16", 0.8D, LossFunctions.MeanSquareError, 0.1D);
            //network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            //network.Layers.Add(new Layers(network, LayerTypes.ConvolutionalSubsampling, KernelTypes.Sigmoid, 16, 14, 14, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.ConvolutionalSubsampling, KernelTypes.Sigmoid, 64, 5, 5, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 196));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 10));
            //network.InitWeights();

            //NeuralNetworks network = new NeuralNetworks("MyNet-16", 0.8D, LossFunctions.MeanSquareError, 0.02D);
            //network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 16, 28, 28, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 16, 14, 14, 2, 2));
            //List<bool> mapCombinations = new List<bool>(64 * 16)
            //{
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true
            //};
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 64, 10, 10, 5, 5, new Mappings(network, 2, mapCombinations)));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 64, 5, 5, 2, 2));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 196, 1, 1, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 10));
            //network.InitWeights();

            NeuralNetworks network = new NeuralNetworks("EdgeNet", 0.8D, LossFunctions.MeanSquareError, 0.02D);
            network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 3, 28, 28, 5, 5));
            network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 28*28));
            network.InitWeights();

            //NeuralNetworks network = new NeuralNetworks("LeNet-5", 0.8D, LossFunctions.MeanSquareError, 0.02D);
            //network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 6, 28, 28, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 6, 14, 14, 2, 2));
            //List<bool> mapCombinations = new List<bool>(16 * 6)
            //{
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true
            //};
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 16, 10, 10, 5, 5, new Mappings(network, 2, mapCombinations)));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 16, 5, 5, 2, 2));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 120, 1, 1, 5, 5));
            ////network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 1, 7, 12));
            ////network.Layers.Add(new Layers(network, LayerTypes.RBF, KernelTypes.Gaussian, 10));
            //network.Layers.Add (new Layers (network, LayerTypes.FullyConnected , KernelTypes.Sigmoid, 10));
            //network.InitWeights();
            //network.Layers.Last().LockedWeights = true;

            //NeuralNetworks network = new NeuralNetworks("MyNet-32", 0.8D, LossFunctions.MeanSquareError, 0.02D);
            //network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 32, 28, 28, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 32, 14, 14, 2, 2));
            //List<bool> mapCombinations = new List<bool>(128 * 32)
            //{
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true
            //};
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 128, 10, 10, 5, 5, new Mappings(network, 2, mapCombinations)));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 128, 5, 5, 2, 2));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 256, 1, 1, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 10));
            //network.InitWeights();

            //NeuralNetworks network = new NeuralNetworks("MyNet-64", 0.8D, LossFunctions.MeanSquareError, 0.02D);
            //network.Layers.Add(new Layers(network, LayerTypes.Input, 1, 32, 32));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 64, 28, 28, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 64, 14, 14, 2, 2));
            //List<bool> mapCombinations = new List<bool>(128 * 64)
            //{
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true,
            //    false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  false, true,
            //    false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true, false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,  true,
            //    true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true, true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,  true,
            //    true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true, true,  true,  false, false, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, true,
            //    true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true, true,  true,  true,  false, false, false, true,  true,  true,  false, false, true,  false, true,  true,  true,
            //    false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true, false, true,  true,  true,  false, false, true,  true,  true,  true,  false, false, true,  false, true,  true
            //};
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 128, 10, 10, 5, 5, new Mappings(network, 2, mapCombinations)));
            //network.Layers.Add(new Layers(network, LayerTypes.Subsampling, KernelTypes.AveragePooling, 128, 5, 5, 2, 2));
            //network.Layers.Add(new Layers(network, LayerTypes.Convolutional, KernelTypes.Sigmoid, 512, 1, 1, 5, 5));
            //network.Layers.Add(new Layers(network, LayerTypes.FullyConnected, KernelTypes.Sigmoid, 10));
            //network.InitWeights();

            return network;
        }