1010100101110110101010110011111111000001101110110101101001011000110110000001110010100010001000100000101101010101101100001101011000001010100101101100101101011001100001011000100011101101100011000101110111110101110101011010001010001101101111110110000001101001010101011011110100100001101101110100110101011110010110011101111111011000001101000011111001010100000011001010111101101010111111000001011100110011 1111011000010111001100010000100110011011011000100010010010011100101111101100000001101010000110100011110000011010101001111011001110001101000000001111100101000010101001010000100001010100000101110000011001010101110100100011011110100010011110100001111011001111000111000000011111011011000100110001011100011111011100011010101100101111000111111000010000001001001110110011101000010001001101111110010101110110 0101011100100110011011010010000100100101110101010111101101111111000100110101010000100111010000000111101011010000001001110101010100101000000011001101001010110011101110011010111101101110001000001110010001010000111110010010011010010001111000111010000101000000001110010101001110111100111101110111101000001110001101101111111000110010110101100011011100000100000110011011100000010111101100010110101011111111 1111000111010111011110001010001001111100010010100110000111100101110000011011011110110000001100111001111011011101100110111111001000100100001101001101111000000011111001011100001101101010011001100011010011110001100100000001010011100000001000010110010111001000001010010101111111111100100111110010111100111010010100000001011100010111011001111101110001011101011111001001001101001011111011110000101110111010 1100011011011100001110010101000100000111000110110011101010000001101110011101000101011100001100001110110001000001100101100011010011011010111000101011111011111101010100011010001011110100000001011000001010010000100101001011011100110010001111011000000101110000100110010010001110001010010010111011110010111100000111000001001000001101001101110101101000100011000001010100111101111010010001010111110111110111 1111001011010111011101011110100010010001010111010110111000010110011101110100010010010100100101011100001001000100000011010111001001111111100010010011101010011100011001011010011011101111111001011100001111001100001101101111110101011011000011001101110000001100000011011101100100100111000001000011110100011110011000010110100001001001100010101100001111111001010101111010010100110000111010000100011101010010 1000000111011010011101000110111001110101101101010110111001001001111111010110111101101011000111011010111101010110011111100110110101100110110001111001000111011110011100100001111110000010000000110111010111101101100101000101111001100111000100001000101001010101011101100111001000101101000110010110010100110100001001101001011110001010100010010101010000011100001110011000001010011100000110010100000010110011 1111110000011011111001101111100110011100111100110101101101011111000110110010010000100011111001100001000000010011010000111110000001000011101011001101001000111000110101000110010101010111011110100110110011000111001110001000110000000010111101101011100101001000000101001011010001000110110111010100011101001100001010100000010111000010011000010100110010001011110100001100010001001001010010001011101011111110 1110001000000001100101111001010101000101010101010100100000010000001000000011011011000011100000111011000000001001011101010001010100100001100101100100010100000111101011000111011111011111110100111011100011011010010000101101001100000010000000000001101101011100001101101000011100111011110111100110001000101011100111100000001000100001110010000101001101101011110011001110000000000010101011001100100100110000 1011111000001010000100110001011110010011010110101010001001111010011000100101011100101011011100010010111000101010100010101000110101000011110001111111011000010100000110010101010110110110100011010111111101010100001101100101000010110101100100111100011110011010011110010000001100100011111111010111101010011011000011011011001101101000010101011001010001010111110011110110101001101110111110110100100000101000 0001011000001000101001001010100010110101111001010001100010111011110111001101100110101001001011011011100010000011000011111111010010010010000101111111110101101000011100110011011000100010010100101001001010111010101010100011000001000110101101001100100110010101101101011111000101011011111010101111001101011001000110011101110011011111011100101000111111000010001100101100001010011001111111110010001001110100 0101110100111010111101101101110010100110111111110110001011110101000100111111011011000011110010101111111000010001101110010010000110100010111000001011101011000001101111000100100100000001001111011011001100011001011101010100000010000010110000001110011100111100100001100010000011010100111000111100001011111000111100011010110000110110000000001111101110000110000011010000110011101000000111001010001000111101 0000100110110011011110001010100111100111100010111011001110001100111111110010000110111000000100100001000001111110010101100001001000101111011110111100100011110110111011111011011001110110111101110100010011100111010111000010100111110110110001001100011110111010000010101111100000100111100110110101101111111011001110100100000010010101001101010100011111010011000010101010001000100101100000111101101101111011 1101010010110000010011100010110011111001001001100010000000000101010110000101000110100000001001101111001100010010011100111000011100111100001101111000010100111100010011010101000010001100100001000001010111110000110011101001100110001000001001001101011001001111011100101111011110100110011010100000100111110000001111110100111010001101001000001001000001010010101011000011110000110000001110101110010111000001 1011101110010101110010000100001100111000101000101111110100011101111101101001101010110011011010111110100100000101010101000011001000101011101000010100001000100111001000011110100101010101001010100011111111100111011010011100110101000000111100110001000001110010101001101111011000110001000001111110101011011100010001011110001110010110110010110000110110100101011001100001000001011011011001000010010010000011 0100100001110101000000010011001001110111011111110101110001101111100000111010010100100001011100100100011010101101011000110010000101101001110100010110111100010011110010100100010011111100101100111100001111011100001000101101100100001110010011011000000000000000010001100011001101100001111001110101001100101001101011001000110010010001101111101010010100000000010011011000111101000001110100101011000111100011 1110001100000010101100000111011010001010011110101110110101100011111111000001111011010111100001110000100000100011011100111000101011000111011001110110111110010000100010111101111110100011000110010010100011110111100110010001010110001010001111000101000101100101101011111110001001000001111001110011101000100011011101000001111110000011110101000001111100011100010000111100001101100010111101110101101000100111 1111111011010101110001111001110111001100001001100001010100100011000111011110101101001001101011011100101111101111101001011001100101101001001000011000000101011011101101110110110001100101111001111000001010001100111011001011110101010111001001110101111111110111111001111011010100100000011011010010110001111101100000101001000001110010000000011000110000001101101101010000110000101000011011101000000101010110 1011101110010111111110011110110101111010011110001011001000000000101111001111111001110000001111011011101111110000110100011010001100001001001100101010110100101001111000000111111011101001110111010010011010100001101111001100101111100000000010111000101110011111111001110001111000111011010001110010001100011101111101000011101110010110101011111000011010000001101101110100010001000111110000111001000101110011 1101100100000100010101001101111010111010010100001010100101010100010010111011111100011100101111000110100010101001110010111011110000010001100011011101001001110001011110000001000001011101110000010111100111111100100001000111101101000111011001000110011010101101101010111010001110011111010110011110011111001100010111101011000011101101110111101110001001011011000000100100011010001011111000110111011110100101 0001100111100110110010011010011001111010110101010111001011100010110100111000110011110110001011100101000010101110010100010110100010011100101011011001000011010011001101011000001010000000010111010101100111110001100110100111011011001111110010010011000010100110010000010001100111000111110110001010111000000101100000101010001111101110100100110100010001011001001010000001011001010000011100001001100100001100 1011010100100001111000110001011101011010101000010110000111010010000000101000010100001011100101011100001101101001111100100001111100011110100100011111110011000100100101100101010010110111110000011100101101011000001010101010101010100110111100101000010110000001101010000000011100001011101001100101010001001011100000111111010101110100001010110011000001101010000000000010110010101101110101011101011111001001 0101111011011011011111110000100100000111111001001101100110001110011111110110100110110100010101011111101100111001101001111100111011010000010010111000010111101110010001100011000001010001010100101100001011100100001001000001011001111100010001111010100111000110011011011110111110100011001110000000100101000111110110100000000010101111101110000001111010000111011110100010001000011010110011101110111101110101 1101000111011100001000111101011100001100100010110110101111010100100010111001101011011101110101000011000101010011011100010111110011011100001100111010010011100111101100010101000100000101000000100110111001000101010100000111001011000100000100010000011100111111000011110011010001100010001010010101000100011110011001100101101010110010100010010001001001100100001110010010101001010011011111011001001001110001 0101111110101101001111110010100001101010010000111101111111000011100010111101011001000010010111101010011101000101011101111110111100001000010101000010011110101000110110000101010011010000001110110000101101001011100111111000000110011110001011001010010100011100001000100110000111110100001101101000000111010011100101100101110000111001111110011001100100101000110001110101111101011111101100110101111111101101 1110111000001010110101110111110101111101111101000001000011011111111111001111011101101001011000010011100110100110011111100111011110110100001111101010110111010000011100000000000011010000011110000001001110000110101110011001110100010111001100101100110110100101011101000110100101100001110000001010000000000100001111001000101111011011101010100100111110010010001111100101100010100001001100111100110100000111 0010011101101000010000010110110100001000111000110000110011010111001010000001110111000111101111001001000011001001001011001100001101101010101010110100101001111111010101011001100111001000000010111011000100100101000101110000101001100000100111101011000110111110011000001010101110100011100101010010001111011010111010011111111111000111110011110101000110101100001100101101110001001100101010011111100101100010 0101101011010001000010001001010111101010010101100011001000000100011001001101110011111100010100000110101101100111011000001000110011101110100100011010111011001010010010101011011010110111011101100111011110011011001011110110101100011001110001010101110011000100111101101110100011001010011111000001001010000100011000111111111101110101011111111000001101010100000101000100000010101001100100101000100110111000 0100001111111101010110101001010010110010111100011011101011010010001011001100110011010000010111110110101100100101111011100101101010110010111011101101010001000100011100100100100011110100010001001001001110011011100111001100110000111011001001000001100100110101111111000101010101101011011001011111001101111011011101111011110000010000111110011111101010001010101110010000110010001010111110111000110110100110 0101110111100000011100011100111010110110100110101101001011111011000010010111001101111011100010111011111111100011000011110111111011001111011000101111111101101010101000000011100001110000110110101010010110001000101001110011111110101110100011011101000111110110111110000011111001100001101000100100111111001011100110011001100000000010011011010101111100111100110000001011001110111110110111100110111011000101 1001100101000000101111000111111101010010011100101001101100101011000011111010011010011111010101001111010100001000101101001101101111110111110111101001001001011001110111010110110000111011011101101101111001010000001010111111100111000000011101111001001111100001100011010111010010110010001111001001011011001110001011101000100111100001110101111000010001011010111011100011100111011110001001111111110001010001 0010111000110000010011110010110010001010011100101010010010010111100110010001101010001000010101011010000111010010010001010110111001100000010000000001100111010000101011000110110110011110000000101011111001110000111011111001101110001100111100110101010001110110110111100100101000101000010101001101101100101111111011011111000111111110111100111100100110110100111110110110010010000011001000110010110011110101 1000100110001010011110000011100111000101011010101100001001000100101111111000000111001100111100110001011110100110100111001000101100100100001101110100000000000110110100010111100010100001001101110000110000001011110000011100110111100001110111111111011110101101000100110000101100000011100011001011001011111100000110010011110011110010110001010000010110000011110101110101011011000010110111101101010001011010 1000010011100111111101011101111010001111110100001001010010010011001100000001001101110110011111111010000111101111100101011001001100101011010101011101011011000100001111110011001100111100011110010111011111011110100001000101011001111001011001010111111101000111110000101101101001101101001011000100110001010100011001010010000111101000001100101000000000110001011111101100110011001000011010110110110001010001 1000101100110000110101101101111001100100110000100000010001110110000001101101100111000110101000100010110111011011000101010111000011001000011110011111110110001101100011011100010100000010101110101100111111101101110011010010001010110011100001010101100011001110111100100011111000011110011001010011010100100101011000110010011001011100100110011010001110011100100110111011011010100011001001110000011110101010 0100010011011100000001111011001000010001001001100111111001110001011011000110101101110100110101011001110010000110111111110011001110011010001011000111110110111101100110001000111101011101101100000111011111011001100111000101010110110000100110100011011001110000001010010011111101100100100100000010000000010110110100001001100101110101010101101100000011010001101100010010001110000111100100101110000100100101 0011010010111010011011101000111000001010111000110110010000011010101010001010101001011001010001111101011111011000101111110001111000000101110001010011000111001000111001001010101011100110001101011100100100001100101011001110111101010000010010111101111111111101111001110100110111110110001101100000111111010100001010000001111000100101100100101001000011111111101100111110000101100101101101101101010010111101 0111000111000011101110100111000010100000001100011101001111001011011001110110110011100001110110101000100111011110101011100010011000011110101011100100111011011110101111110101000100011010010001001100101001100000101000011111010010111010000110101111010001110001100101101010010011111101010001001110000001011100001010111100100001101010001001101100100001000001111011000100000001100110100010000011011001111101 1010011010010010101011101001011001111001001011111111111101001001111100001010001110101110101110110011000001110000010110010100011101000001111001010100001010101101110010100100100100001010111011100011011001001101010101100011001001110011100111010000100001101010100001001111100010110101100010110100111101010111001101001011011000000101011010101001001000010001001001111110110001111000010011110000010111001000 0100110100001011111010001100000101110001001001111010110111011101100100010000011000010001101001110110111111001111101011010100000100011000101000001101100001110010100100011011010101001101011000100111000010111011001101001110111011000100011101000001000100111001010111010110111011101000001000110010011101000011110011100010011100101101100010001000101111011011010101101101001110010101100010101001010100000101 0101111101110101000101111011101110000101011100000111000100001001010111001001111100010110100001010100110010101110000010011011000110111101111001101000100010110101010100110000111100110100001010011110001100001010001000011100000010011000101010011010010110101101111001100001001111111010100111100000001011100100110110100011010101101110110011100010110110111111010100011111100001001101011101111101000111110011 1100011000000010010100001100011011000010111110010001110111011101000111110101110000100111100100011100011010000001010011000010001000101111111011000010100101100011011011111011001111011110100010100010000100110111000111001101001101110011100110011011101101001111011001110101111111110001100011101111000100010000010011011101111110101101000111110010001101100100111001111101001111110011001100000000101000101111 1111101110000111110010010000000011001001001011000101001011010011100100111111010010011011110011001001001011111010100010111011101101001100111101011101000111101010001001011110111111101111010011010001000100011111000010010000001000011100110110111000001110010000011111001111110100001101011000111111001100000101010001101000010100001110110110010100110011000101010111010111001100011111110111101010000110010010 1100001100000000000010010111100110001111100001011110011110111111010101011011110101100001000101000000110100110100010000010101010100001000111011110110011001011110000100111011011100011000100010110110101110110011101011010000101000100110111011010101011110111000101101110001111010010001001011011000110101100000010111110000111011110101000001001100111101011111010001111011100010111000011001111000001101110110 1101010111011011000111011100001001000000001011110000110000101111101011000001000101010011110001001110000101110001011010111100001010110001101001001111110110011001011000011000111001000001101011010101010110101000101110010011110010110100010001110001001000010001110000001111100010110111100001101110010011101010001101110101101011010000110111001110001110010110100000100111001011001111100100100111001011110111 1100000110111111111001010110111010011111110001001011110001101110101111111000001101100000001011011101000100110011111010100011111000011110011111010110110110111010111110000101000110100000100100001001100010111010001011101000100000110011111110001000000100110110101011000001001101100111111011111010000010101110000111110110101011110100100111011011010111000000101011010111110010110011011001110100111000110100 0000011101100111001010101011000001110100100010110011001000010010100100010110001000011010110110110100101010110011111111111110110111101010111100011001101000111110100010000100100100001100011111111001010011000110110110010000010111110110001100000100100000111011110011011001100010010111100001011000011000001100011011001001010110110011100110100010001011111000000110010001011110101011000110010100110111010100 1000000100110011001101010000110101111011001001110010011000111011010110110100110111001110100001000111101010001011001011111010101111011101101110011001001011100001111011110001111010010001011100101001001110011100011010010011110111001011101011101011100010011100110100000000110000010100010100000110100111100110111101110011001110011011110100110000101000001000100010011011011010110110011000111000111100000111 0110111101100100000111000011001111001101111000101111111011110001000000010011110111001100111001100100110010010001011100100100100100001110111110110000010010001001111010111111010110001000101000111111111011111001011100101111011111110101100000000100111111001100010110000011011101001000010011111001010110011110001100011010110010010101010001100111001100111000001101100011110000011010010111111110011001110010 1000111110100101110111000100111010000010000000010001111111011100111111001101101010101010111010110110001110000010101110111111101010100110101010101100001000011101001110000100111111001001101011110110000011100100100010111110001010110000010010001000110100001001100000101010100000001000011000001011101110101110101000110100110010010100011010011000100111011101100101010100001111110011110100110111110111111110 1101111001000000100000100101110010101111111101000010000001101001000010110000100100111100001111001101111001111111001110101000111100010101101100011010110010011100110000001001110100100101010001110010010010111101110011100110010011110011110110110111100000100010000110110000001010100110111001011101101001011111110101010001010011101111011111111111100000100000011111001100111011010101000001100001000101100111 1000101110011011100111011001100000101101100010111010001010000010110001111101111100101011111010110111000000110101010111011110001011011111101110000001101100100101011010000010111110001011110111101000011000000001100001011001111111101000111001101000010001001111011001010010010001001111010110110001101011100010011101010101100101101110000001010101000111110110010001010011110000011110100011001101001110001011 1001100111110001011101000010111111100000100100001010100101000100011010111111101111110111011010111011111100101101111000001111110000111110001000011100001110100010001110100001011111011100101111001100010001100110101001000111000000111100111011011111000101111011011100001101111010110101001100111110101110010001111101111110010000101100011010100010010010101000110111000110100100000001000101101001000000000001 1100111110110111001011111010110110011110000010001010010000001111111000110111011101101110011111001100111011000100011111000001111000001111001001101000011000011011111010001000111111111111100000010001101111110000001010111101111001110110000010110101100110111110100100101110110000110110001110001010001100011011011010000110101111110101011111110101011000111010111100100001110010011111100101010100010111110010 1100001011001010101111101100010101100000000000010011100001001010100100101100111001000110010100100100000110001100111000000011001110100010101100001001101010110101000101111110100110001111000011010100111111011101110000111110100101010111101110100100000000011101010110000001001100101101001000011100101100001001011101000110011011001111110000101011011101100000010111110010100101000011010111100110111101100100 1001110111110110001111010100111110001001010001001111011011101110101100010010101101101000000010011101111011110100101000110101011010111110010010001100001111101010000110000101101101111101000010011110011100101110010010110000111000101100001011111100111101010111000001011101010000011111111100111010111101010101110001010000111011100110100100001101111000111100111100110100000100101101100100011011101000011001 1110111010101011011000000110010110011100010110100111010010001000100101100001001111101000110011010001100111100001100000010000100101000101000101000101101011000011001110111100010010100111000100010110110111110101110000011011101000000111010110001111110111010101100100010100010110001100011011000111101110100101000010001111011111100001011001000011000010010010111000100101010011100110101110010000011110010111 1100111111000011100100001001101100011011110101011110000010101100101010110101000111000001100010110101000010111000100011001011000101010110001100101100010010000101100101100101011111101001111111001011110110000100111110011010101111000000001010001000111001000011010110010000010111010100011110111101101001000100010001001011001011100111010101011011110001111110001110011101011100001110010111011000110100101011 1100010100011011101101010011001001011011001010000110110011011001110000001000111011011001100100001010100001011111101101111100000101000111101110110000001111011011000010010000011000011111011001111111101110001010110001010000100101010001000101011111011110011100000100000011110001000000011001110010000101101100010011100101111000111000010101000111010010101011001111100011011111000001111100000111010111001010 1110000000111011110001110100100000011001010110101100011000000000011000101100011110011010100011010101111110110011110111100111101101010010010000001110100011010110010000100001010110110101000010001100001101001100000010110001110111111010001100010001000110010111101010000001111000101111110000011000001011111000110100011110101001011111100110001010000011111100000001101101011111110010111101011110100001110011 0001100001000001001001000011001100100010100011010010001100101110001101110010000100010110000010100101000001000011100111010011101010100100101010110111000100101000100001001000101011001000010100001000110110001001101001110000000001000110011101100111000101011111010001111100101101001110111000011011010000110111000100100011000110001101010111110000100100110110011111010111000110010100011010011111001000101110 0011110001110011011111010101000011000111111111001011111100000010000111001010101110000001000100000011001001010111011011100110100010010100111001111101010001100111000010011101110110110000010101010010100001111100100001110000011011111010100111101011110010001000011011100011111000001010001011101001110010111111111010000001010010101111010111111011010010101101110101000100001011001011101110011010010100111111 1111110111101111100011000110111101010111001010010010011010111010001110001110000011000001001101111100111001011011000001111011110010100110001000001000111010111111000001101011111010001001011001101001101001110101100101010100011011001111000111100111011010000101110000110011000011000110001010000010111010101100010010011011101110111000110010010101100111110011000100111000001011001010101000011011101001101011 1111010010101001001011011010110101100111111011001100011010010011011101011110010101101110010011000000001000101010010010001100100111000101011101101100100011101101110101000110101001100001110011100010110101000100100110111111010111011010111000101011100110110010111110000101000101000110101000001010000101110001001110101110101010110010110001010101111100000111110111100011101011101100110011110001000000100010 1001001100101001100000011111000010110000101100100101011010010011111101001001011001100000000011110011101100010010010011010010001100100001111010000110010010100100010010101001111001110100101011100111111011101110000111001011010100000111000001111111011001000101000110101110111011011000100000111011111100001101000011101000111110100110111110110001101110011010101000100101100011100110010010111101010010101111 0010100110001010000110111010111111111101010001011011010011111110001111101101001101100101100011111101011010011111000011001111000001001111110011111000110001100111101100101000110011110010010101001101001111101000011000010100100001110010101010100110110111011110001111000010010111000101011010110001110110001000010101111001000100000010101110111011000010001011100111011110011100110110001111010000011011101010 0011100110101111111111011100000100011001110111101000000100001110001000111001110111101010001100000110000010110000011011111011111000101010000100101000110001001001110001101111100011100101001011010011101000101001001011011001110110011101011111010111001111100001110111011001101011101001010001100000011111100011000100111110110011111110001111010111111011111101100011110001100000100010010101011110010011111111 1001000000110111110011101100001011111000010011010011011010001001110011100000011000101111101100100001110101110000111010111001100111000010100011000101110000010010010110011101111100100111100111111100011110000010101010001100010010101011100011111011100101011111100100011011111101011110000111100100000100000010010100000111001100000111011000100010100000101111111001001101000100000011100001001110111110110011 1101101011010010101101001000110010010000101001110000000001110100111011110111011100100101100111101111111100000011000101110001100000010111011000001110100101111010011111011111111110100001100110110011011101101001100111111010000111101001001111100110111001000111010111110100000000000010001010001001101101100110101110100011000001110011011011010110110001000111000000110000101010100110000010001101001110100001 0001011001101100010000111101100011111100000011111110101111101111001101100000111010100011100110010010101010110101100011001111011000110011111000001011110110110111101000010101010101111010110011010001011000000011111011111001101110111100001111101100010001011111000010110100010101110110110010111101111101011111000110110010100110100101111000010101111100101111011101100111001000111001001100000001110010101001 1011101010001110111001001010110010010111110101000000111011110100000011011111000111101110010010000111011111110000101100111111110101101111101001000100010101110110010100010010001000100110101100011011001100101001110011001001101011001001010011100000100011010110010011100111111111000111011001101111110000100001101111010111100101001101010011111000010011011010000010011001001111000011110011110100110110111010 1101110100001001011010111010011001001001011000100110110110011110101111100010110101111101001001101110011101000100110010100111100000110111100100100110011001101010001111010011100010100111001100100010110101000110111001110001111011100100000001111001001111100001101100001101011100011001101010010011101101100111000011001110001111100011111101010011010101101100010100010011110001101111100110111011100111011100 0011011010000110110001110110000111111110011000101000100010011110111000100100100011110010001110111101100111010011000111110001011101001001100001100111001111001010011101101111000000100001111000001110000111101111001011101110101010001000010001100111000011011010010000000000010101111001010011011000101011001101001110110100010000010001110011000001110111011110011101110010011000001011101011000101101101111001 0010100101100110101001111001110001110011011001001111100001100101011010000101011011100000011101111100010110000101001100100011001001110100011100000001011010100001100000011111111100000001001011111110001110110111110100010110100100111010100011011001011000010101000000001001001101110110101010100010111110110000110110110111011011010011000011110110010010000110000001100101001001111010001100100011010110111101 1100101101101011010000100011111110000100110100111011110100101011010101001000101100100111000101000100001010000100101111111001110111000111001010001101111010001110011110000001111001111110001110001101000000110000101001101010010111011100001101111011111011000100011011101010011111010011001011111011001001011011100101111010111010111001101111111010001000001010111010000100000010101010101000010100001010100010 1101011111101010111011100010010101100010000110011111111100101111101111111100000100110001101000001001101111001100011110101101001101110001000100101101110111000000010011010001111000000111110000101111101110100111010011011111111000001101001101110011010110101111110000100000111000101000110100110111111101110110011101111111110111101100111000110010100010000010110010111100101011000100101100000001011100010000 1111011100010101101110111110000101110101010100111011110000011010110110011100100001110011001101010100101000101011001100001110011100011011101110101010011010010011011100011010100011010001101110010000001101101100100011001100001011000111011010001110000001111101000110001110001010111100001101011100110100111000100000100110111000000100111000011110110001101100000000111001100101100011101100000101000010100111 1001000011010011001110101010010101101111000010000010111101000100000001101001110100101110001101100100011010000100110011100011011010010011011001110110010000001010011001101110001110001110001111011001000000011101110101100011011000001010100111100010110101000000110001010001100001111100011011101011101010011000000011010001101000010001011101101010000001110101100111101111000110010101010111101010011101110011 1111101111111001010111011110101001111001000110011000010001110101111101010110101101101011011100111001100001110001110100001010000111011111101100010010111000001101100101000001001010010000001011000010001000111110110110010101010100000000000010101011001010111111001111010001110011100111011100000001000111100010010101111000111000000010110000101010010111001001101000111101101100101100100101001001110010111111 0101000001011000011000100011100001101000010100110000101010001110110110011111100100110011000110110010110101100110110110101101111001100010100011100101110010111011101101101011100110111101010100100001100100101101000110000010101000101010101100101111111010111100100110110100101111110111010100101100001100101100001001011110000110000010011111011111110010000100011010000101100101011101110011001010001010001011 0110110100011101110011101010110111000111100001111110110010110001101011011010000000100101101011111101100010000001100111010010010001111111011110001110010111100101010101110010111000100100001100101011111110010111010001101110011011000100010111110011101000100000000001110110111110000101010110001000111000101101100101100001110010101100110111101011100111110100000111001010000111100001111000101000110000010111 1100000111011000000001010111101000011000111111110000011011010100000110110111111110011110111011101001101001010000011011100001001110110011101111100000011101011000111001010011010000000001011110011011000110100001101000000000111101011111010110001001010111101010100011010101111011101100100011100110110100011100011110100011011000010101111010000010101111010110111001100011011001100000101010011100101101010010 0110111110111011000100110100000100000010000010010010010001111011101101011011100100011011001000000111001001011000001111101110010011101100110111010011001110010101101000010010110001010000011011011011001010100010101101001000110100100001111110010000100110101010101011011011111110011001110010110011011001100111101101001111100000111011011001001001000001101100010101111110101110100011011011100001110011011100 0111101101110110000010101101101000111101001011011110111111010111110010101101011101111111101101111101010101010000011001010000100011110111001000011100111100001001010111000011100011111110100000100111101001110000110011010001110001000100000000010010111100011000101000000010000111101011011101000100010000000001001100100111100010011100010101000011010101001011010101100101100001000010110010110010001100101111 0010000111111101001001011111000000001101111101010010010110010101111000001100110000110000111000010000100010011111110000110010001000100100010101001000000100110000000000110100011100111001000111000110001001010000100110101110000001000011101011110001011101010010011110010000100001101000011100000011011001101110001101001110101100100001111010011001101111010010011010011010101101011101010111110101111010111011 0110001100011111110101010011010110000110011110000111101110000000000010011011100111000001001100100101111001001010011010100010100010110100011000000111101010011101011010011001010001110100101001000111110011111000100011011010101111001010101111111001010100110111010011110110011111100000001000111100101001101011100101101001010011110001101011110011111011110000110110101011001010010001111110101100110110011100 1111110000100001101101101101100000111011110110001011001111001010111100110011101001000011101011100111001101110001010011001100100011011110111110000010111010100001100001100100010101011100010111110011111100101101100110101110111100000010110101110011110100001000011011011101011000001011000100011010010011100011110010011110100101010111010011011111010101000101110101001111101010110001001101000111001110101110 0100101110101010000100010010010101010011010000100011000001110001110000110111010110000100011100001001011100100100101100011010011111000010001111100100111011110111101101011100011010000100111111111010111011011011101000000110101000001010011100001001010001011001111101010011010101010101001111001010110100100010001111111000011001001100110010011101110010011111000010000000110100101011111111100101001001100000 0011010101011000100011001110001011100101100111110000110011110011010110011000101010010111010101101100100101011000110001001011010011110001010010111100110111101110110101000000010100100111010101101010101000110111100101000100100010000110110011111001010010101101111011101010001000101100101101110010001100100000011101110001111101110000011111000101001100001011010101110010100010011110101000011000000010111011 1111101111110111101001101101110011010010111100010010110010010110011001010100011001000101001101110110001111111111110000101011110100001001111100100010011011010000100110101100110011100001000110101010010111000110010010111110000011111110011100110001101100101000100011111000001101111001100101110001000111100001011100110110001111000011001101000011111000101100101111011001011001110010110000001110111011111000 0110101001111001100010000001011011101001011011001010001011111111000000111000100110100100111001100110111011011111011110110000010010010101010011010000000110011111011111010110001100011111001010100110110101100001111000010100110110111011011000111111100001011110100100001110110101111110110110110100111110011101001001011100001010001011111011000000110000011010110010010111100110100100101001111011001111100101 1110001111110101001101000001110010000000101000100111110010000100100001001101010011010000011001010101000010110100010011101010110111111000011000111110010010000001100000101110101000010000010111111000110010000100110111110110111000011101111110111100001010010100111101010011101001110111110010110101011101101010110001110110101101101100111101110110111001100101111011010000001101101001010100000100001111001001 1000101011111111101000111111111100010111001101111010101110001010011101101000010000100000110011000100000011100101100111010101100011011000101100100010001000101100100010101110000100011010101110001010001110010110001000100011000010010101100011110101000010110000100010111100101011001000111011001101010001010000111101101000001010101101110000010101101000110001011101100100101111111000101111010100111011111110 0000000010101110001011100011011111010000000011101001000100111010011101111111000000001110001000100110110110101101101000111110101101010100010111011001000001011100010001010111000110010100101010011001100010011110001001101111100111110100000011101111011111010101101101011100100101111111101110110011000010000100101101110111101001101110111001010110000011110100110101010111101101101110000101111101011011010111 0101111000100010111101000111110011010111110111010011001011000110011000010010011010010010011111101011101100001011010111111011110101011011000000000111110111000110101111110101101101011010000001110111010111101110010111100010111101000010000110011110011000100101101000011000111110011010000111101010011010100110100000110001000011100101110110101110100101110100000000100010011111100001111111011000001111000000 0010100001001110010101101100000010010110100101110001101011011101100001110100011010011010000010011001011100110010011001100101011011111100000100100101101000101111101000101010010011000110110001100000101010100100010110001110010101101010000100110111011101000110000101111100111001110110010101010011001111100100010000011001011011111011010010010010100000111010001010010101101101101010001110001000101001101111 1010111000000100111010010010010010100010011001110101000011011101100110010100011100101101010100101111000000011100101011100101101001000100101011110110110101100100101100011110111001101001100000101101011100101101000110000111011011110000000001101111011100110010011011010010010111111111111100110101101100010001101100100101110010110010010001011110011001011101001110011100000100000111110001101001001001101000 1010001010001110100110000110111101110100011101111001100110000000110110111001111011001001110100000000000000110101111010111000100110000100000101111001100110100100110100001110000110000001100110100101000101001000111110100001101101100001111010001110111000111101011100000100110000111101110011110010111011100001001111100111011110001000100111011011001101001110010101110110110111101001000100101011011010010111 0010101000001001011111100111010111010111000011010110101010110111111000001000010110110000111100101001100000010010000001010011011100000010011001111000000010001111011011100001000011101001111101011010000010001101011110110111001100000001101010110011011111100110010001011011000001010011011111110110100110100100000111010001100100100100010011110110001010110111010011001000101110001001101000101111111100101001 1001001001011110111110010011011100100101000100001010011101100111111100100111001011000110111101000100010010100000011111111101000110010110000001110010100000011101111011110011110101111010011101010000011010011110110100110110111110011110000111011010110111111100100100000110001001000100010100111111110010001111010110010010000111011101101000111001010101000001100011110000100011000100000111001010010011010011
cTraderプラグイン

cTrader用LINE Notify代替通知方法

3/31/2025

LINE Notifyサービス終了

利用している方にはすでに連絡が届いていると思いますが、当ブログのツールでもLINE通知にちょくちょく活用させていただいたLINE Notifyというサービスが2025年3月31日をもってサービス終了となります。

これにより4月以降、当ブログで配布しているLINEで通知する系インジケーターはすべて使えなくなります

LINE公式では代替としてLINE Messaging APIを勧めているようですが、「個人で自分にだけちょっと通知投げたい」という用途には向かないように感じます。

個人的には、”LINEで”という部分はそこまで重要視しておらず、「なかしらスマホに通知できればいい」くらいの感覚なので、LINEにはこだわりません。

 

というわけで、以前公開したNotify PluginのLINE通知機能を削除し、代替の通知機能を追加しました。

なお、だいぶ前に公開したLINEにだけ通知送る系の古いインジケーターは4月以降は完全に使えなくなり、更新予定もありません

「使えなくなると困る!」というものがある場合は言っていただければNotify Pluginの連携インジケーターとして作成しますのでご要望ください。

 

Notify Plugin

ポジション変動などのイベントや連携インジケーターが出すサインに反応して通知を送るためのプラグインです。

詳しくはこちら。

連携インジケーターはまだほとんどありませんが、要望があり次第、徐々に増やしていく予定です。

今回、新しい通知機能を追加したため、LINE Notifyの代わりとしてDiscordで通知を受ける方法を紹介します。

 

初期設定

プラグインをインストールし、有効にしたら一度cTraderを終了してください。(もしくは一度pluginを無効化してください)

マイドキュメントのcAlgo->Files->NotifyApiConfigというフォルダ内にDiscord.jsonというファイルができています。

ここにDiscordから取得したWeb hook URL を入れて上書き保存してください。(Web hook URL取得方法については後述)

こんな感じになればOKです。

{
  "endpoint": "https://discord.com/api/webhooks/~~~~",
  "requestBody": {
  "content": "##MSG##",
    "username": "cTrader NotifyPlugin"
  }
}

 

あとはcTraderを再起動すればDiscord通知が使えるようになっています

通知方法に”API”を選択、Optionで”Discord”を選択します。

 

Discord側設定

Discordは音声・ビデオ・テキストチャットができるコミュニケーションプラットフォームです。

ゲーマー向けボイスチャットのイメージが強いかもしれませんが、普通のチャットができるのはもちろん、Webhookという機能で外部アプリからの通知を受けとる機能も簡単に使えるようになっています。

Nitroという有料プランもありますが、Webhookで通知受け取るだけなら無料プランで十分です。

通知をスマホで確認したい場合はスマホアプリもインストールしておくのをお忘れなく。

 

Web hook URL発行方法

Discordを使ったことない方はとりあえずトップ画面からサインアップしてアカウントを作成してログインしておいてください。

なお、通知を受け取るためURL発行はPCから行う必要があります。スマホではできませんのでご注意ください。

まずは自分専用のサーバーを作成します。

ログインしたらディスコードマークの下に”+”ボタンがあるので、これを押してサーバーを追加します。

「オリジナルの作成」->「自分と友達のため」

  

サーバー名は好きなように名付けて、「新規作成」

自分用のサーバーが作成できたらトップ画面のディスコードマークのすぐ下に今作ったサーバーのアイコンが出てきます。

ここを右クリックして「サーバー設定」→「連携サービス」

「ウェブフックを作成」をクリック

「新しいウェブフック」を作ったら「ウェブフックURLをコピー」を押します。

これでクリップボードに自分専用のウェブフックURL、つまりは自分だけに通知を送るためのURLが格納されました。こんな感じの文字列が入ってるはずです。

https://discord.com/api/webhooks/~~~~

これを先ほどのファイルに貼り付けて下さい。

 

そのほかの方法で通知を受ける

一応DiscordだけではなくAPIで通知するタイプのものは同じような方式であれば対応できるようになってます。

たとえばLINE Messeging APIが設定済みでトークンとユーザーIDがわかっていれば、こんな感じで”Discord.json”と同じフォルダに”LINE.json”とでも名前をつけて設定ファイルを作ってください。(LINE側の設定やトークン、ユーザーID取得方法についてはご自身で調査お願いします。)

{
  "endpoint": "https://api.line.me/v2/bot/message/push",
  "content-type":"application/json",
  "authSchema": "Bearer",
  "authToken":"<チャンネルアクセストークン>",
  "requestBody": {
    "to":"<ユーザーID>",
    "messages": [{"type":"text", "text":"##MSG##"}]
  }
}

またTelegramでボット用トークンとチャットIDを取得済みの場合はこんな感じの”Telegram.json”を作ってください。(Telegram側の設定はご自身で・・・)

{
  "endpoint": "https://api.telegram.org/bot<ボット用トークン>/sendMessage",
  "content-type":"application/json",
  "requestBody": {
    "chat_id":"<チャットID>",
    "text":"##MSG##"
  }
}

~.jsonファイルを作成してからcTraderを再起動すると、このようにOptionから選べるようになります。

 

通知だけでなくいろんなことできる・・・?

少しWeb周りの知識がある方はなんとなく気づいてると思いますが、Notify Pluginのこの機能、別に通知専用というわけではなくただPOSTでAPIをたたくだけの機能です。

jsonは独自形式であるものの、上述のLINE.jsonを参考に必要な部分を変更すれば似たような形式のAPIはたたけます。

要はシンプルな認証でPOSTメソッドのAPI実行するだけの機能ならだいたい連携が可能です。

ただしそこまで信頼のできる機能でもないので、発注などに使う場合はあくまで自己責任で慎重にお願いします。

また、もともと通知用途なのであまり頻繁に呼び出そうとすると呼び出し失敗しますので注意して下さい。

外部のAPIと連携するときは、APIの利用規約をよくご確認の上、ご利用下さい。


まだコメントはありません

新しいコメント

コメントは承認後に公開されます。承認まで次のコメントは投稿できません。

cTrader's Life

© 2025 ajinori