From: Takashi Iwai Date: Mon, 8 Sep 2003 11:12:31 +0000 (+0000) Subject: added usx2yloader by Karsten Wiese . X-Git-Tag: v1.0.3~58 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=b52baf89dd4543e04f9321060756a8864ed313b7;p=alsa-tools.git added usx2yloader by Karsten Wiese . --- diff --git a/Makefile b/Makefile index 1c87902..e795489 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,8 @@ VERSION = 0.9.6 TOP = . SUBDIRS = ac3dec as10k1 envy24control hdsploader hdspconf hdspmixer \ - mixartloader rmedigicontrol sb16_csp seq sscape_ctl vxloader + mixartloader rmedigicontrol sb16_csp seq sscape_ctl usx2yloader \ + vxloader all: @for i in $(SUBDIRS); do cd $(TOP)/$$i; ./cvscompile; cd ..; make -C $$i; done diff --git a/usx2yloader/Makefile.am b/usx2yloader/Makefile.am new file mode 100644 index 0000000..a321dbd --- /dev/null +++ b/usx2yloader/Makefile.am @@ -0,0 +1,18 @@ +# # Process this file with automake to produce Makefile.in. +AUTOMAKE_OPTIONS = 1.3 foreign + +AM_CFLAGS = -DDATAPATH=\"$(datadir)/alsa/firmware\" + +SUBDIRS = firmware + +bin_PROGRAMS = usx2yloader + +usx2yloader_SOURCES = usx2yloader.c + +EXTRA_DIST = depcomp + +alsa-dist: distdir + @rm -rf ../distdir/usx2yloader + @mkdir -p ../distdir/usx2yloader + @cp -RLpv $(distdir)/* ../distdir/usx2yloader + @rm -rf $(distdir) diff --git a/usx2yloader/configure.in b/usx2yloader/configure.in new file mode 100644 index 0000000..4107d28 --- /dev/null +++ b/usx2yloader/configure.in @@ -0,0 +1,11 @@ +AC_INIT(usx2yloader.c) +AM_INIT_AUTOMAKE(usx2yloader, 0.2) +AC_PROG_CC +AC_PROG_INSTALL +AC_HEADER_STDC +AM_PATH_ALSA(0.9.0) + +CFLAGS="$CFLAGS $ALSA_CFLAGS" +LDFLAGS="$LDFLAGS $ALSA_LIBS" + +AC_OUTPUT(Makefile firmware/Makefile) diff --git a/usx2yloader/firmware/Makefile.am b/usx2yloader/firmware/Makefile.am new file mode 100644 index 0000000..8e52869 --- /dev/null +++ b/usx2yloader/firmware/Makefile.am @@ -0,0 +1,7 @@ +cfg_files = us428.conf us428.prepad us428.rbt + +EXTRA_DIST = $(cfg_files) + +firmwaredir = $(datadir)/alsa/firmware +firmware_DATA = $(cfg_files) + diff --git a/usx2yloader/firmware/us428.conf b/usx2yloader/firmware/us428.conf new file mode 100644 index 0000000..e8aad4c --- /dev/null +++ b/usx2yloader/firmware/us428.conf @@ -0,0 +1,5 @@ +# boot firmwares for Tascam us428 deviceid 0x8001 + +dsp0 us428.prepad +dsp1 us428.rbt + diff --git a/usx2yloader/firmware/us428.prepad b/usx2yloader/firmware/us428.prepad new file mode 100644 index 0000000..a1122cd Binary files /dev/null and b/usx2yloader/firmware/us428.prepad differ diff --git a/usx2yloader/firmware/us428.rbt b/usx2yloader/firmware/us428.rbt new file mode 100644 index 0000000..732a09b --- /dev/null +++ b/usx2yloader/firmware/us428.rbt @@ -0,0 +1,804 @@ +Xilinx ASCII Bitstream +Converted from us428.sys +Date: Thu Aug 28 22:33:16 2003 +Bits: 179160 +11111111000001001101010010111101111110001101101011111111011111111111111111101111101011011101111101111111111110101110101111011111100111111101111101111010111111111011011111111110011110100110111111110101010111110111111101111010 +01101111101101010101010101110111111111111111010011111111110011010011011110110111111111011111011111011101111111111111011101011111111111111111111111111111111111111111111011111111011111011101111101111101011101111111110101111111 +11011111011111011111011101111101111111111000101111111111011111111111111111111101111111101111110111011111111111110111111111111111111111011111111111011111011111111111111111110111110111110111011111111111011111111111111111111111 +01110111111111110111111111111111111110110101111111111100111111111111010111010111111010110111111111111111111111011111011111011011011011110111111111111100111101111011111111111111111111011111011011011111000111111011111111111101 +11110111110111110111111111111111110011011111111111101111111111111111111111111101000001111001111101111101111111111101110101000111000111110111111111110011110110011110011101111100111101101101000101100111100111110111110011111100 +11011101011001111001111101111101111111101111110100001111111111111011111111111111111111101111011111111111111111111111111101111111111111111111110111111111111111111111111111010001111111111011111111111111111111111111111111110111 +11111111111111111111111111111111111111111110111101111111111010111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111011111111111111 +11111111111111111111111111111111111111111111111111111111110011111111111110111111111111111111111011111111111111111111111111111111101111111111111111111110111101111111111101111111111111111111111111111111111111111111111111111101 +11111011111111111111111111111111111111111111111101111111110011101111111011111111111111111111111111101111111111111111101111101111111111111111111111111011111110111111111111111111101110011110111110111111111111111111111011111111 +11111111111011111111111111111111111111111111111111011111111100111111001111111111111011111011111111111111111111111111111111111111111111111111111111011111111111111111111111111111111111111111111111111111111111111111011111111111 +11111111111111111111111111111111111111111111111111111111111111111001101111111110111111110111111111111111111111111111011111111111111111111111111111111111111100111111111111111111111111111111111111111011111011111111111111111111 +11110111111111111111111111111111111111011111111111111111111111110101111111111101111111111111111111111111111111111111111111111111111111111111111111111111110111111111111111111111111111111111101111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111101111110111111111011111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111110111111111111111111111111111111011111 +11111111111111111111111111111111111111111111110111111111111111111111101100111111111101111111111111111110111110111110111110111111111111111111111011111011111011111011111111111111111111100111101110111011111011111010111011111011 +10101111101111111111111011111110111110111110111110111111111111111111111001111111101110011111110111110101110111110111111111111111111111011111011111011111011111111111111111111101111101111101110111111111111111011101011101011111 +11111111111111010111111111110111110111110111011111011111011111111111011111111111110110011111111111110111100110110111111111111110111110011110011110011111011111111110111001111001111001111001111101111111010110001110011110011101 +01111011111110101111100001100111100111110111111111111110100110011110011111111111010011111111111011111111111111011111011111011111011111111111111111111101111001111101110101111111111101111111110111010111011110111111011111111101 +11110111110111110111111111111111110111011111011111111111111111111111111111111101011101101111010111111011111110011110011110011111011111111111111011111001111001111001111101111111111111101101100101100111011111111111111011111001 +01100111100111110111011011111110111110011110011110011101011011111111111011111001101101111000101111111111101111111111111111111110111110111110111110111111111111111111111011111011111011111011111111111111111111101110111110111111 +11111111111111101110111110111111101111111111111111111110111011111011111110111111111111111111111111111100011111111011111111111101111101111101111101111111111111111111110111110111110111110111111111111111101111011101011101111111 +11111111111111011011011101011110011111111100111111111101101101111101111101011111111101111111110101101011111111111101101101101111101111110111110111110110110110100110111111111111111111011111011011011011011011111011111111110110 +11011011011011111011111111110111111111101101101101101111101111111111110111111110010110111111111101100111111101111111111111110111111111111111111111111111111101111111111111111111111111011111111111111111111111111110111111111111 +11111111111111111111111111001111111111111110111111111110111010111101111111011111111111111110111110111011111110101111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111 +11110111111111111111111110111111110111011111111111011011010111111111111111011111111111111111111111111111110101011111111111111111111111111011111111111111111111111111101111111111001111111111111111111111111110111111111110111111 +11111110111111111110111110111101110111111111011011111111111111111111111111111011111111111111101111101110101011111111111000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +11001111111111111111111111111111111111101111111111001111111111111111111111111110111111111110111111101111011111111111000111111111111010111011100111111111111111101111001110101111101111111111111111111110111110111110111110111111 +11111111111110101100111110111111111111111111111011111011111011111011111101111111111111101111101111101111111111111000111011111111111111111111111111111111111111111111111111111111111011111111111111111111111111110110110110111110 +11011100101110111111110110111111111111001111011011111111111110110011011111111001111101101111101111111111111111110011111111111101111111111111101111111111111111111111111111111111111111111111111111111100111101110110111110111111 +11111111111111111111111111111111111111011111111111110111111111111011111111111101111101101111111111111111111111111111111111100000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011 +11011111011110111111110101111111111111110011111111111111111111111111111111111111101111111111111111111101111111111101111101101111111111111111111111111101111111111111111111111111111111111111111011111111111111111111111111111011 +11111111111111111111111111101111101111111101111111111111111110111111011111111111111100111101111111111111111111110111111100111111111110101010111111101111111111111111111111111111111111111111111111111111111111111111111110111111 +11111111111111111111111111111111111111111111111111111111111111110111111111011111111111111111111111111101111111111111111111100111110000111111111111111111111111110111111111111101111101011111111101111111011111111111110111111111 +11111111010111011111111111111111111001110101111101111111111111101101111110111111000011110111111111111101111100011111111111011101000011111111111011111111111110111111111111101111100111111111111111111111101111101101111011111111 +11011111111111111111011111110111111111111011111111110111011111101111111111111111111111111111110111011111111011111111111111111111010111111111001011111111111101111111111111011111111111111111111111111111111110111101111110111111 +11111101111111111111011111101111111111111111111111110110001111111111111111101100111101101111111101011111111111111111111111110111011011111000011111111111111011111111111111111111111111100111111111111111111111011111111111111110 +11111101111111111111111011111111011010111111111111111110111111011101111111111011110011111011111111111101110111101111111110001011111111010011111111111100111111111111100111111111111101111111111111111111111111111111111111011111 +11111011111111101110111111111111111011111111111111111111101111111111111011011111111111111111110111111101111111011111111111111101111111111111111111101110111111111111111111111111111111111111101110111100111111111000111111111101 +11111111110111111111111111011110111111011111110111111111111111111011111111101111111111111111011111111111110111111111111111111111111100111111111100110111111111111111111111110011111111111111111110111111111111111111111111111011 +11111111111111111110111111111111111111011101101111111111111101111111111111111101111111110111111011111111111111111111111101111111011111111111001100111111111110011011111111111111101111111111111101110111111111111101101011101111 +11111111111111111110111111111111011111111111111111101111111111111111111110101110111111111011111110111010111111110111111011111111111111111111100111111111110011111111111111111111111111110011111111111101111111111101011101111111 +01111111111011011011010111010111011111111111011111111111111111110111111111111111111111011111111111011111010011101111111111111111111111111110111111111111110011111111111011111111111111111111111111111111111111111111011111111111 +11111010111111111111111111011111111111111111101111111111111111111111111111111011111101111111111111111111111111101111111111111111111111111111111011111111011111111100011111111111110011111111111111111111111111110011111110011111 +01111100111111110100110111101111111011110111101011111111100101111101111100111111111111101111111110110111110111101111111111111111111111001111001111111111111111111010100011110101111111111111111011111111111110011111111111110101 +11110011100111010111110111110110101111110101011101011011111111011111111111010111111111110011111111111111011101011011111111111111111011111011111111111111111111111001101010111101111111111111111111111111110111111111111111111111 +11110111111011110001011111110011001011101011111111110100010111001111110111110111010111111111111011101010111111010011111111110101111101001111111111100111111110101111011101101010111111111111111111111111111111111111111011111111 +11111111110111110011001011011111011011011110101111101111111101111111101011111111111111111111111110011111111111111111111110111001101100111111111001111111111111101111111100111111111111110101111111111111111111111011111111111111 +11111111111110111110101110001111100100001111011010110111011111011101011111111110111110111111111100111111111110110101111011111011101111110111110011111011111111111011110111111111110110111111111111101010111111111111111111111101 +11111111111111111111111110111111110111010110111111111011101111011001011111110110111111111111111111111111110101100111101111011010111111111010011011011110111111111110111110111100100001111111111111010111111111101010111111111111 +11111111011111111111101100101101001011111111010111110111010100111100111011111111011111111111101111111111100101011111111111010100111111110111111101111111111111111110111111110011000111011111111010111111111111100011111111111111 +11111111111111111000011101010111010010010010100010110000101111100111110011111110111111011001011111111111011110111110111110100000111101101111111111101011111111111111111100011111111111111111001111111111111111111111111111111111 +11111111111111111110111111111111111111111011011111011111011111101111111011100101111011111110111111111101111111111111111011011011011011101111111011111111111001111101111101110110111111111010011111111111111111111111111111111111 +01111111101111110111111111111110100110110110111110111111111111111111011011111011101111110111111111111110111111111110011110011111111110011111111011011011111111111111111111111111110101110111111111111001111111111111110111110111 +11011111011101111111111111110001110001110001101101111101101011101101110110000111011110111111111110110001111101100001101101101111101011101110110101110110110111110110111010111111011011010111111101100010111111111111111111111111 +11111111111111111111111111111111111111111100111111111111111111111111111111110111110110011101111111111111111101111111101110111111111111111111110111110110111111111011111111111111111111001111111100000110111111111111111111111111 +11111111111111110111111111111111111111110111111111111111111111111111111111011111101111110111111111111111111101111111111111111111011111111111110111101101111111111111111111111111011111011111111111011111111110001111111111111111 +11111111111111111111111111111111110100110001101101111111101111011101000111011011000011111011010111110111110001111111101100111111111111001111010001000011111110111010111110111111111111101111111111111111110000101111111111111111 +11111111101111111111001111011111000111111101111101111101101101010101110100111111010011011111110011000111011111111111111111111101111100111100110100111011111110110110010111110101111001010111111111011111000110111111111011111111 +11111111111111111111111111111110110111111111111000101010111011111011111111011111111111111111101111101111111111111111101111111111110011011111111111111111111111111011111111111111101001111111111111111111111111111111011011111111 +11111111111110011110011110011111011011111111011011010001110000011000111100011001011111101011000011100111000111010111111011011010111001111010011110011111011011101111001011100111000111110111110111111110111100011010100011111111 +11111111111111111111100111111010110111110011111111111110111111101111101111101111111111111111111111111000110011110111111110111111111111111111101110011111011111111011111111111111111110111111101101111111111111110101111011111100 +11111111111111111111111111010111111111111111111011111101011101111111001101101111101101111011111111111100110010111010111111011111111101101111111111101101101101111101111111111100111101110111111111111111111110111111111111001111 +10111111111111111111111110111111111111111111111111101111111111111110011111011110011110111111111010111010111111111011001111011110111100011111111100011110011111111101110011110001111111111111101111111111111111111111111100010111 +11110111111111111111111111111011101111011111111101111110111110110100111110111100110110111110010000000011101011111111011011100010111100111110111100111111111111111111110011110011111011111111111111111111111111111111101100111111 +11111001111111111111111111111111111011111111111111111111111011110011111111101111101111101111110101111110101110111101111111111111011111111111111111111011111111111111110111111111111110100110101111111111111111111111010111111111 +11010101111111110111111111111101110101011101011001011111011111101111110111110101010101100001111001101011101011001111010000011111011111111111110111110101010100110101111101111101101011011111010111000001010111110111110111111001 +01001101111111101101111111111100111111110111111111111111111111101111110011101011110011110000111111111110111110110011001100111111111111110110110011101111111111110010111111110111111111011101111110011111001111111111111111110111 +01111111111000101111111111111101111111111111111111101111111111111111010110111111110111111111101111111100111111111101010111111111111101100111110111111111111100111011101110111110111010111111111111010111111110111111011111111110 +11101111101111010110111110111111111111111111111111111111111111111111111101011111110111111111101111111111111111111111011111111101111101111101111111111111111101110111011111101111111101111111111111111111011111111110101111111110 +11111111011111111111110011111111111111111111111111110111111111111111111111111111111101111111010101111101111111111111110111101101000101111011011100111111111111011111111101111110111111101111111111111101110101110101111101111111 +11111101111111111110010111111111111111101111111111111111111111101111111111111111111111111111111111111101111111110111111101111111000111111111110111111111101101111110111101111111111111101111111010111111111110111111111011111011 +11011011111111100001000111111111111111111111101111111111011111111111111111110111011111111111101111110111101101111101111111111111111111011111110111111111111111111111110011111111111111110111100111111111111111111111110111110111 +00111110110111011001111111111000111111111111111111111111011111111011111111111010111110101111111111001111111111011111110111111111011110111101111101111111111101111111101111111110111111111111110111111100011111111111111111111101 +10111111011111111011111111000110111011111111111111111111111111111111111111011111111111111111111101111111101001111111111111111110110111100111111010111111111111111101111111011111111001111101111101110111111111111111111111110111 +11011111011111111111111101001011101111101111111111111111111111111110001111111111011111111111111101111000111000111111111111111101111111111111111111111011001011110111111011111111111111011111011011011101111111111111111101111111 +11111111011111111111011110111111111101111111111111111111111111111111111111111110111111111111101111101101011011111111111101111111110111110111111111011111111111111111101111111111111111111111101111110111100111111111111111111111 +11111111111111111110111110111111100101111111111111111110111111111111111111111111111011110011111111111111111111100110111101011111011111011111111110111011111111110111111110111111111111101111101111101111101101111100111101111111 +11111111111011111011111111111111011111111111100011111111110111111111111111111111011111111011111111111111111101111111111111111110111111111100111111111111111111101111111111011111011001111100011101111111011111111111110010111111 +11111011111011111111111111111110111111111110101110110111111111111111111111111110111111111111101010111001110011111111111111111111111111111111111111111110111101101011111111111111110111111111111111111111111111001111111111111111 +11111111111111111111111011111111111111110001111111111100111111111010111111110111101111111111101011010011101011011111011110011101111111001111001101100111001011110111101111110010111111001110111111111111111111111101111111111011 +11110111110111110111010011110011111111001011111101011011111111110111111111111101111111110010011110011110001101101101111111100101111111111100111100111111011100111111110011111111111111111111101111111111101111111111111111111110 +10111111111111111010011001011111111101111010111111011111111110111111111111111111111111011111111101101111110101101111111101111111111100111111111111111111110110011111111111010101010100101111111010101111100111011111111111111111 +11111111111001110011110101011111101011100111111001001101111101101111111111111111111111111111111111011100101100101111111111111111111110111111111111111111111111110111111010100110101100111101111001111111111110111111110011110011 +11111111111111111110111111111100111001111111101110111111111100011111100111111111111111111111111011111011111010010111110111111011110111101011000011101111101111111101111111101100111011111111111111010101110101110011011111101101 +10111101111111110111111011111011111011011111111111110011101000011111110111111111111111111111111111111111100010111110111111111110111111110111011011111101111111111011111111111011101111111111111111111110011111101111101101101111 +11100111111111011111110111011011011011111111111111001110000010111111100111111111111111111011111101111111011111110111101111101111111111110101011111101011111111011111111111111111010111100110110111111101101111111101010111111110 +01011111111111010010111111111110111111111111111101111110110110011110110011111111111111111111111111111110111111111110001011111011111111111111110001010111010111110011111111111101111011000101101011101010111111111011111111111110 +11111111111010111111111111110100111101111101111111111111111011110101001111111111111111111111111111111111111111111111111111101101111101111111101110101111101111111111011111011110111110111111111111110111111111111101111101111110 +11111111111011011110011100011111111111111111111101111111111101110011111111111010111111111111111111011111111111111111110111011111110011111001110111111101111111111111100111100111100111111111111111111111111011111011111111111001 +11010110100111111111111101111111111111111111110011110111011111111111110110000101111111111101111101111111111111101011110100100110110110110111111010011110111111011100011110011111011011111011111010110111110111110110111110111111 +11011101111101111101111101111111111111111111110111110110110110111111011100100101111101101111111101111111111111111111111111110111111011111111111110111111111111011111111111111111001111111111111111111100111111110110111110111111 +11111101111111111111111101111111111111111011111111111110110011111111111111111111111100101111111101111111111111111111111111110111111111111101111101111111111111011111111111111111110111110111110110110111111111111101111111111110 +11111011111111111111111111111111111111101111111111111111110111111111011111111111101000111111111111111111101111111111011111111111100110111010111110110101111100000110001101011111011111111011110011111001111011111111111110111111 +11111111111110101111111110101111111111111111101111011010111011111111111111111111000111111111110011111111111111111101011101111111010011110111110011110101110001010111001111111111111111011111011111000111110111111110110010110111 +01011111011101111111100101111101111101011100111100010110010111011111110011110111111111111100110011111111111111111110110111111111110111111111101011101011111101111111111111111100011111111111111111100101111111111011101111111111 +11101111111111111110111011111111111110111111111110011110111111101111101111111111111111110110011111111111111111111001111101111101111111101001000101000111000111110111100111111100111110011110011110011110011110011111011011100111 +10011011011111011111111011111001110001111001111101111111111101001101000111100111100111111011110111111001111111111111111111101111011111111011111111111110111111101101111100111111111111111111111111110111110111111101111111111000 +11110111111111111010111111111111111111111111101111101111101111111111111111111110111111111111111111001001111111111111111111011111111110111111101111110101111111110101111101111111111111111111111111111111111111111111111111111100 +10111111011111110111111111111111111101011101111111011111011111111111111111110101111111111111111100101111111111001111111111111111111110111011111110101111101111101111101011100010100011111111111111111110111110011110011110111111 +11111110111110111110111111101111101111111111111011111111111111111110111110111111111111111111101101111111111101001111111111111111111101111111111101111111111111011111010111010111110111111111111111111111111111111111111100111111 +11111111111111111111111111111111011110111111111110111111111111111101111001111011111011011111111111111111100001111111111111111111111111111111111111111111111110110010111111111100111111111111011111111111111111111011111011110000 +11111111111111111011111111111111011111111111101101111111111111111111111111110011111110110101111111111111111111111111110111111111110101110101111101111111110111011111010111010111010111110111111111111101111101001100011100011101 +11111011111001011001011101011010011110111101010111110101110101110001111100111101110101011111010101010111111111111110110110111111111111111111110111111111111111110111001110110111001111111010111111111110111100111110111100111111 +11111111111111111111111111111111111111111111111101111111111110110011111111111111111111001111111111001111111111110011111111111110111111111111111111101111111111111010111111110111011111111111110111110111111101100111101110111110 +11111110011111111111111111111111111111111111111111111011111111110110111111111111101101011111111101111111111111111001111101111011111111101111111111111111011111111111111111111110110111111111111111111111111111111110110011110111 +11110111111111011111111111111111111111111111110111110111111110111011111111101111111111111101111111110011111111101011111111011111011111111011110100011111111111111111111111110111110111111101111111111011101110111111111111111111 +01111111011111111110111110111011000110111111011111111111111110011101110101011111111110011111010111111111110101111111111111011111111111101111111111111111111111011111111111111111100111101111111111111011111111111111111111111111 +11111111100111011111100111111111111011110011111110111110111111100111111110111111111110101111011111111111111011111101110100111111111101111111111111111111111111111111111101110111111011111011111110011101011110111111111111111111 +11110111111111111101111111111111111111111101011111101111111111111111111111111111110011111111111111110111111111110111000101111111101100010111111111111111111111011111111111111111011111111010101110101111110111101101111111111011 +11001111111110110111001111111110111111100011111111111101111111110111111111111111101111111111111011111110110111111110101111010111111011111111110111111111011101111111111111111111111111111111010111101111111011110011111101111111 +11111111111111011011111111110111110011111111111111111101111111111111110010111111111011111011111111110011111111111111111111101101101111111110110011011111111111111101111101111111011111111111111111111111111111011011111100111110 +11111010111111111111111111111111111110001111001111110111001011111111111011111101111110111111111111111110111111111111110011110011111111110111101111111111111111111111011111111110111110110111111111111111111111111111111111111111 +11111111111110111111111111010111101111111101111111101110111111111111011111101111110111111111111111011111111111110011011001111111111111111011111111111011110111110111101111111111011111011001111110111110111110101111111111111111 +11111111011111011111101111111111111101111111111111111111110010111011111111110111111111111111111111001110101111011101111111111101101110010101111110011001111111111111111111111111111111111111111111110111101111111111111111111111 +11111111111111111101111111111111111011111111111111111101011111111111111101110101111111111111111101011111111110111111101011011111011011111111111110101111111111101011111111111111111111111111111111011110111111101111111111111111 +11111111111111111011111101111110111111111111111111011111111111111110101110101011111111101111101111111011111111101111111111110101111111110111111101111111110001010011111101111101011101101111111111111111111111111111111111111111 +11111111111111011111011111011111011111000010101111110111110111111111111111111110111111011001011111011111111101001111111111111111111111111000111111111111100101111111010111101111101111111111011111111111111111111111111111111111 +11111111111101111101001111111111110101110101101111111011111101011111111101011111011111111011111011111100101001001111111111111100111100111111111111111110001111101011110101111111111010111101110110111111111100101111111111111111 +11111111110100100111001111111111111101111111111111001111111111001011001111111100010100100101100101100110111110010111110111111110011111111110011111111110111101110110010011111111101110111110111101111111110010110111111111111110 +11111111101001111001111011111110111111111111111111111111111011101011111110111101101001111100111011111010110010111110111111110011111111110111111011111110111111110010001111111111010111110111101111111111101011111111011101011111 +00110111111011011010111111011111010011001111111111101111111101111111111111011011101011011011111001111111111111100111101111001001111101001101101111111110101111110101111111011011111111111110101010111011111111111011111111111111 +01111010101010011110111110010101010101111110101011111111101111111111101111111111011110111111011011111110111110111110111101111011101001011000101001101001111011111011110010001010111111110101011111011111111111111001011111111111 +11011111010111110110010111111101111111011101011111111111111111011111110001111111010010110111111110100101101101011101011101011111011111111111110101100111111011101001000110101011111111101011111111111110111111101111111111111101 +10111111111111110101101001001111101111111011110111110110110111111110111111111111110101111111101001101011101010111011110011110010111101101110101111101100111101001111111100101110111100001111111110111111111111111111111111011111 +11111111111111111111111111110111101101111111111111111111111111111111111111111111101011111111110111111001111110101110101110101111101111111111111111100111011111110111011111111111101111101111111111111111111111111111101111011111 +10111111111111011111011011111011011001111111111111111111111111111111111110111111011111111111111011111111111001111001111101111111111111101111110111111111011111111111110111010111001111111111100111111111111111011111011111011111 +01111111101001111001110110110110000110110111110111111111111111011111011001101111111111111111000111110111000111110111111111111110111110011110011111011111011010111001111101111101011111110110001011111111011111011111111111111111 +11111111111111111111110111111111111011111111111111111111111111111111001111111111110111110111111111111111111111111111011111011111011111111111111111111111011111111111111111111100111111110100111111111111111111011111111111110111 +11111111111111111111110111111111111101111111111111111111111111111111011111111111011110111111111111111111111111111111111101111111111111111111110111111111111111111111111001111101111111110011111111111011111111110111111101111111 +11110111111101101101111011111011011110111011110110111101110101111101111011101101111111111111011111000111111010110011111111111101111100011100011111001111101011111111111111111010111111111111111111011011111111110111111111111111 +11111101111100110101011101011111011111011111110010110011110101110111011111011111111111001101111101111111010111111110110111110001110111110111111101111011011111001111100111001100011111111111111111001111111111001111111111111111 +11111111110111011010111111111111111111111011111011111101111011101011101111111111111110111111111111110111110010111111111111101111111111111111111101101101101110111110101101111111111111111111111111111111111100011111111111111111 +11111001111001110001111101111101111101101101100111100001100011110001110101111100111100001110011100011111011111101111110001100111110001110001101101111111110111000100011110011111011111111111111011111001101010111111111111101110 +11111111111111011110011011111111101111111111111111011100111111111110111111101111111110111111111011011101011111011110111111111110111000111101111001111011111011101111111111100111111111110111111111111110111111111111110111111111 +11101111101011111111011111111111111111111111110101111101111110111100101100110111101111111111110011101011101111101101101111110110110111111110110110110110110111111101111011111111111111111111111111111111111111111110110011111111 +11111011111111111011111111111111111111111111111100111111111011111111111101111011111110101011101111111111101111111011111010111001111111101001101001101111101111101111100111111111111111101110111111111111111111110001011111111111 +11111101111111111111111110111101111111110111111001111011000011111011111011110010110001000000101110101111111111101110010011110111111111010111011111111111111111011111011111111011111001111111111111111111111110110111111111110011 +11111111111101101111101111111111101011101111110111111111111111110010111111111111111111111111111111111111000111111111110111111111111111111111111111111111111111111101111110010011111111111111111011111111111101101011111111001101 +11111101011111011011110111110101110101110101101100111011111111011011010101010110010111110111101111110101111101010101110101111101111101011101010111010111010111100111111111101101110101010101011101011111011011111111010110001111 +11111110001111111111100011111111110011111110111011111111011011111111001100001111111110111111111111111111101100111111111111111110111111101111111101101111001111111111111111111100111101011111111111111111101111111111110001111111 +11100100111111111111001111111111110111111101110101111111111111111110111111011101101111110111111111111111100011111111011111111111111111101111111101101111111111111101111011111011011011111111111011111101111111111111101011111111 +10010101111111111111111111111111111111111101101101111111111111111111110110110110011111011111110111110111110111111111011111111111110111011101111101111111111111111111010111010111111111011111111111111111111111111011111111111111 +00111111111111011111111111111101111111111001011011011111111111111111111111110101111101111101111111111110111110110111111111110100101111101011111110110001101111111111110111111100111111111111000111010111110111110111111100111101 +10111111101011001111111111111111111111110101111101110110011110111011111110101111111111111001110101111011111111111111111100111111111111111111111111011111111110111111111111111111111111111111011111111111101111101111101111011110 +11110101000110111111111111011111111101111111111111111111111110110011111111101011101111001111111111111111011111111111111111010111101111010111111111111111111011111111111111111111011111010111101111011111111111011111111100011110 +11111111100011111111101111111111111111111011101110101011101111111110111111111110111110111110111111111101111111111111001011111111111010111111111111110100111111111111001111111111110011111111100011001011111111111111111111111111 +11111111111111111101111011111111111111110111111111111111111111111111011111011111011111111110111100111101111111111011111011111111101111110111111101110111111111111110111111111111110111111111111111111101111110111110111111011111 +11111111111110110110111011111110001111111111111111111111111000111000111111111111111111111111111111111111111111110011111111111110110111111000011111111111111111111111111111111111100011111101111111111111111011111110101111111111 +00011111011011110011011111110000111110111111100111111111111111111111111011111101111111111111111011111101111111110111111101101111111111111111111111111011111111111111111111111111110111011110110111111111111111111111111111111111 +11111111111101111111111110010011111111111111111111111111101111111111101111111111101111111111100111111110111111111110111101111101111101111100110111101111111110111111111111111111011111111110111100111111111111111111111111111011 +11001111100111111111111100011111111110001011111111011011111101111101111111111111111111111111110010100111100101110111111111101111111011111111111101111111111111110111111111111111111111111111111101111111111011001111111110010001 +01010111111111111111110011111111111000111111111111111111101111111011111111111110111011111110111111001111111111111111111101111100011111111111011111111111111111001111111111111111111111111111111111101110101111111111111110111111 +11111111111111101111011111110111010011101111110011110011111111111111111111011111011111111111111111111111111111111111111111111111111110011100111110110011011110101111111111111100001011111111110101111111110111110111111110101111 +10011110011100101111111111111100101111110101101111001111111111111111111101111111001111111111110111011000111111111011111111111111010111110101111111111101111101011111011111111111111111111110010100111111111110111111111011111011 +01011001101001111111101111101111101011111100010111111011101111111111111101001011101111111111011011010100010010110010111111111111111111111111111101001011101010011100010101111111111111100111111111111111111101111111011111011111 +10101111001111110111111111101110011111101101110111110110111111111111110101111111111110111110100110110011110111110111101011111110111111111111111110011111011110101010011011111110111111111111111111111011111011111011011111111111 +01111110111011111111110011100111111111110010111111110101111111111111111111111111010101111111101111001111111101001111110101101011111111111111111110110101111111111111111111101111111101011111111111011110111110110111110110111111 +11110111011101101011001111101101111111111111101110101001111111011111111110111111011010111101101001111111101101011001111011111111111111111111111110101111111111101111101110111111101011111111111011111111111011101011101111110110 +10111101011001101101011101001111111111111100111011001011111110001111111111111111111111111111011101011111011110110111111101110101111111101111111101111111101111011111010001011110011111011111110111011111011101110111111101111111 +11101101111111011011111111111111111110100110111001111111111010111111111111111111111011111011111111111111111110101110101110111101101101111111111111111111001010111010010111100011110110101110101111111111101111110101111111011110 +11101011101011111111111111110110110111111111111111111111000010001111111111111111111111111101111111111110111111111111111110010111011111111111111111111111111111111111111011111111111111111111111011111111111110111110111111111111 +11101101111111111101111101111110111111100111111111110111001111111111101111111111111011111111111111111111111111111101111101111111101111101111110111111110110111111110011110111111111111111101111111101111100111110111111111111110 +11010111011111111111111011111111111101001111001101111111101111011000111111111111110111110111111111111111111111010111011011011111011111111000111111110101111101101001110101111111111110110111011111011111011111111111110011100001 +01110110110111110110111111111111100101011101011011011011111101110010011111110110111111110111011111111111111111111111101111011111111111111111111110111111111101101111111111111111111111111111111111111111011111111111111111111111 +11110110111111110011111111111111101111111111011111001110111111110111111111110110111111111101111111111101111111111111111111011111111111111111111111111111111011111111111111011111011111111011111111111111010111111111111111111111 +11101111111111111111111111111101111111111110111111011111111101111111111110101111111111101111110110111111111111101101101001101011101111111001111111110111111100111110101101111111101101001111011011101011111111111111111111111000 +11100111111111111010111110111111111111101100101100111111111111111111111101111111111111001111111111110111110111010101011101011011111111011111101101001101011111111111111111111110111101111100010101011111111111011111011111001101 +01111111111111110111110111110101110101010001101101101111111111001111011111111111111011001111111111111111101011111011011111111110101110111111111110111101111111111111111001111111111111111010111111111111101111101111111110111111 +11111110111010110011111111111011101011011111011111011111111111111111111111111111010111111111111111111111000111110111110111110100111100001100011110011111011111011111111011111001111001110001111001111101111101101110011100011111 +01111111111111101111100111010011000101110111110111101110100110011110011110011111001111111111100011111111111101111110111110111111100111111111111011100111111010111111111111111111111111111111011110011111100111111111110011110111 +11001111111111111111111111111101111110111111111011111111111111111111111111100111111111111101011101111111101111111101111011111111111111011111010111011111010111111111111111111101111111111011111111111111111111111110010011111111 +11011111111111111111111111100101110110101111111111111111111111111111111111111111111111111000111111111110111111111111111111101011101011111011110110111110111111111110111110111111101011111111111111111011111011111111111111111110 +11111101111100111111111110111111111111111010111111111011111111111111111111111111111110111111111111110110111111111111111111110111011111110111111111111111111011111111111101111111111111111111111111111111111111111011111111111111 +10111111111101111111111011111011101010010011111111110111111111101111101111101111111111110111111110000111111111111111111110111111111111011111111010111111011011111011111111111111111101101011111111111111111111111111111111111111 +11111111111111111111101111111110111111110110111100111111111111011101010011011011111111111111111010101101111101011111111111010111010111110111010111111101111101010001011100011011011010101111010111110101100101110101111111111110 +11110101110101110101111101111111111011000101010111010111010110110111011111111101110101011101011111111111111001111111111111111111110001111111101011011111111111111111001111111111101111101110110111111111111111101111111111111111 +11110011110011110011110001111100111100111111011111111011111101101101111111111111111001001111111111111110001111111111111011111111111111111111111111111111111111011110111111110111111111111111110111111011111011111110111111111111 +11101111110110100101011111100111111111111111010111101101111101111001111111111111011011011111111111011111000111111111100011111111111111111111111101110111110111110111111111011111111111111111111111110111110111111111111101111111 +11111111111111101111110111101111111111101111111101111111111111111111111111111111111111111111001111011111111111111101010111111111111111110111111101101101111111011111111111010011110111110111111101111101111111111011111111011011 +01111110111101101111111111111111111111111111011111110101111101100111111001111111111111011111010111010111111110110011011111111110111111111111111111111111111011111111111111111111111111011111101111011011111101111111111111111111 +11110111111010111111111111111111101111111111111010111101111011111011111011111101101010111010101111101111110111010111111111110001110111111110111111110111110111111111111011111101111111011111111111111110111111111111111111111111 +11011111110111111111100110101111111111110111111101111111111111110101111111111111111111111111011111111101011100010111111110011101111111111111111110101011111111101111111111101011011111111111111001111111111101101111111101111111 +11111101111111111111110011111101111111111111011111011100111111011111100011111111111101111111111111010011111011111111011110011111111111011111111111111111111111110111110111111111111111101111111111111111010111111111101111111101 +11111111111011111111011111111110111101111111111111011110111110111111111111111111011111110111111111011111111111110110110111111111111001001111111111111111110011110001111111111111111111111001101111110111001111111111111111111111 +11111101111011111101111011111101011100111111111011111100111101111111110111111111111111001101111101101111110111111111011111111110011101111111111111111111011111111111101111110101111111111101011111111111111111111111010101111111 +11111111011111111100111111101111100111011111111111100111111111111110111111111111111111111111111111011111111111111111111101111110001111111111100101111111111111111100111111111111111111111101111011111011010011111111111111010111 +11011110010101111111111111111101101111011111111111111111111111111111111111111111110111111110111110111101111100111111111110111111010111111000000011111111111111110111111111111111111111011111011101101111111111111111111101111001 +11111110111111111111111111111111001111111011111111111111111111111111111111011110001111110010111111011011101011011111111111010111111111101111111111111110111111111111111111101010111011111100111111111011111110111111111011101111 +11101101111110111111111111111111111111111111111011111111111111111111111111111111111111111111111111111011111010111111111111011111111111110110111111000111111111111111111111111111111111111111111100111111111111110111111111111110 +11111101111101111111110101111111101111111111011111111111111111111111100111100101111001111001111101110100111111100111111111110011110011111101111110101110111101011111111110111111111111111111111011111111111101010011111111111011 +11101111101111111110111110111111111111001101111111111100111111111100111100111111101100111100111101100111111110111111111011011111011111001111111101101011101111001111111111111111111101011111111111001011111111111011101111110110 +11010010010100110111111111111111111111110101101011111111111111111111111101111111011111111111111100110101011111111111111011011111111001111111101011111111011001011111111111111111100011000011111111011111111111111111011111101101 +10110111100111101111101011111011101011110111011111111010111111111111111111111111111111111111111011111011111111001111111111111111011111111011111011011111000000101111111111111111011111111110101110101111111111011110110011011101 +01001101101011101111011111011111111111110111111111010111111111101111101111101111101101011101111101101100001010111100110100110100110100111110101110111111100111101101101111111111111111111001101101100101110111110101011111110111 +01111011111011111001011111111111111011101111101110110111111111101111111111111111101011111011111001011011111011100101111110111111101111010111101011101111101111001000000011111111111111110101111110101111011111111111111110111111 +01011001011111111111110111110111111101111111101111011111110111110111111111111011011111111110010111110111110111111111111111111110101111111111010111101101111101110101011111111110111111111111111101100010100110011111111111111111 +11011101110111110000111110111111101111011011011111111110111111111111110110010111011011110110101111101100101111001101001111011111011111111010101111111111111111110011111111110111111111111111111110111111111111111111111011111111 +11111111111111011111110110110111111111111111111111111111111111011111111111101111101111011111011111111110111110111110111111111101111111011111111111011111011101101111111110000011111111111111111111111111111111111110111111111111 +11111101111111100101111101100111101111111111111111111111011110111011111101111111111111101111100101100111100111100111111111111110010100111100111111111111111111111101011101111111111110011011111111111101111101101101101001111111 +11011111111111010111011010011011011101111111111110111101111101100111111111111111101100011110011000011111011111111010111011111001010101101101111101111111101111110110110101111110011011001111111111111100111110111111111101111111 +11101111101111111111001111001111111111111111111111111111111101111101111111111111111111111111011111111111111111111111111111111111111101101111111011111011111111111111110011110110001111101111111111111011111111111111111111111111 +11111101111111111101110101111111111111111111111111111111111101111101111111111111111111111111011111110111111111110111111111111111111101011111111111111111111111110111110111101111011111111110100011111111111110111000101100111111 +10111111111111100110101101111111101101011011110011110111110111110110111110111111111101111100011111001111001011111111110101110001010000110010111110101111111111011111111011111111111111111100010111111111101101110101111101111101 +11010111110101010001111101011111111111011001001101011101011111111110111111110100010001110111111011011111011111001111000111011111001101111110111101111100110100011110011001111111111111110100111111111110111111111111111001101010 +11101111101011011111111111011100011110111101111111101111111111111111111101111111111011111111111111111101101110111111110101111111111111111111101011111111111010111011111111111011111111110111111111110001111111111111110111010001 +11000111000111110111110111110110111100011110000100001111000111110111111011111000111001110001110101111110111100101110011110100111100111110111110010111010010001111001111101111101111111101111100110010001111111111011111111111111 +11111110111110111110111111111111111111111111111111111111111011111010111111111011111111101100111111111111111111111111100011100010111111110011111111111111111111111111101111101011111111111111111100111111111101000111111111111111 +11111111110101110101111111111111111111110111010111111011011011110010111111111101111111101100101110110111110111111111110011010111111011010011011111011111111111101101111101011111111111111111111111111111111001001111111111101111 +10111111111111101111101011101011101111111011111111100110110110111010101110101010111110011111111001100011111111101011000111111111000111110111111111001100111100011111111111111110111110111011111111111111001100111111111111011111 +11111111111111111111010111011111111111110111111101011111111111101101101101000011100011111011111111110010111001010111001111101111001111111111111111011100111100111110111110110111110111111111111111111111101111111111101011111111 +11101111111110111110111100111111111110011110111111111011011011111011111111111101111000101101111111111111111111111111111111111110111111111111111111110111111111111100101111101111101111111111001111110110111111110100111101111111 +01111111111111011100010111010110010110100111111111111101011101011100011101011101011011011111110111110101010111110111110111100101101101010100011101011111011111011011100111010101100101100101101100101011111111011011111111111110 +11111111111111111111110111001111111111111111111011111011011110011001100110100111111111111111111111111110101111111111111111101111111101111001111100111111111110010111111001110011111111101111111110111111111011111111101111100100 +11101111111111111111111111011111111011111111111111011111111111111101111111101111111111111111111011111111111101111111011111111110001101111011011101111111111011011111111101001111111101101111101111111111101111111011111110000001 +01111110111111111111011111111111111010111011111111111111011111111111111111111111111101111111111111111111111101111111011111111111111111111111111101111111111111111101111111011101111111111111011111111110111101110111110110011111 +11111101111111111111111111111101110101111111111011111011111111011111111111111111100101110111111110011110110011111001001111111111111111111111111010111111111111111101011111111111111100011101101100011011011111111011110101011111 +11101011111111111111111110111111111111111101110111101111111111111111111111111111011111111111111111111111111111110011111111111111111111111111111111001011011111111011111111111101111010111011101111111111011111011101111111110101 +00110110111111111111111111111110011111011011010111001111110111111111111011111111011111111111111111111111111110111101110011111101111111111110111111111111111100111111111111111111111101111111111111111111110111010101110111111101 +01011111111110001111111111111111111111111110111110111111111111101111111111011111011111111110111111111101101111111111101111101111101001111111111111111111011111111111111011010111111111111111111101111111101111111111111111110100 +11111111110111111111111111111111111111100101111011111011111111111111111111111111111111111111011111011111111111111101111101111101111111111111110111111100111011011101111111011111011111111111111111111111111101111110110011110111 +11111011001011111111111011111101111110111111110011111111110010111111111111110111110111001110001111111010001111111111111110111100111111011111111111111111111111111111110111000101110101111111011110111111110111011111111001111111 +11111111110111111111001011111111111111111011011011111111011111111111111011111111101111100111111111111111111111111110111101010110110111111111011111111111111110111111111101111111111111011111111111111111111111101110110110101111 +11110111111111111001111111111111101101111111111111111101111111111111111111111111011111111111101110111111111011101101111010111111111011101100111111111111111111111110111111111111111011011011111111110011111011101011101111101111 +01111111111101110110111111111000111111111110110110111111110111110111111011111011111111111101111101111111111111111111111111111011110001000101111111111111111111111111111011011111011101111111101011111001111111111100111101111111 +10110111001111011111111111101010111111111110101111111111111101111111111011111011111111111111111111111111111111111111111011111111111111110111111111111110111111111111111111111110111111101101110011110011111011110111101111111011 +11111010111011111111111100110111111111011111001111111111111111111011111111111111111100110100111111100111111111011111111111111111111001011111111101111011111111111100111011110011111011110111111111111111001011111111011111011111 +01111100111010111111110000101111010110111111110111111111011110111111111111111111010111110111111111011001100011111111111101011111001101111111111111111111111110110101101111111101110011111110011111111111011111111011011011011111 +11010110111110111111111111101111110001111110101111111111111100111111111111111111111111111111111111011111111111111111111111111111111111111111001111111110111011111111111111111111001011010011110101010111110101101111001111111111 +11111101011101110010111001111111000010111111011011111111110011111111110111111111111111001111111111111111011111101111011111111111111111111100111111110111111101111111111111111110111111111110101110111001101111111100111011111111 +11111111111111111110011111111011101011111110010011111111101111101011011101111110001100111100111110111110111101111111011011111011111111111011111111110111111011101111011101111111111110110111111111111111111011011011011111010111 +11101100101100111110110111111110111110111000000111101101111100011011111101101001111011111010111111111111101111111111101111100111111111111111111111111111000110011111111110111111110111101111111111101110110011111111111111011001 +01010101110100111110110111110001110011100010101111111001111111111111011111111101110111111101100011111111101111111111110110111111111111111111111111110111011111111111111010101111011111111111111111011111111111110111111011111101 +11101111101111111111011111111101011111100111111101101100111111111111111101101111111111101111101111101111101111111110100111111100110010111111111101111111111111111111111001011111111011111111111110111111111111111100111111101011 +11111111111111011101011011111011111111111111111101000011111110101111111111111111110110110110111010111110111011011101111011111011111111111111111111111111111111101111111111111111111101101110011111111111111111111111111111101101 +11111111111111110111111111111101011111111111011110111111111110011111111101111111111111110111110111111110110111111110011110011111111111111111111011111111111001111001111111111111111101110111111111111110111111111111111111010011 +01111111001111101111111111010100111110110111111111111101100000011111111111011111011111011101111111111001011101111001111101111111101111101110100111110110000111110111111111111111111101111101111101101011111111111110110101110110 +11011111011010111111110111010101111101101101101111100011110101111111011011011111011111111111111111111111111111111111111111111111101111111111110111110110111111110111111111011111111111111111110011111111111111111111111111110110 +11111110011111111110111110111111111100111100111001111111011111111111001011011111111111111111110111111111111111011111111111011111011111111111101111101101111111111111111101111101101111111111111111111111111111111111111111110111 +11111111111111111111110111111111110111111101111111110111111111011011001101111111111011111111111111111101111101111001110101111111111111101111000111101110111111110010110111010100111100100111111110101111101111111111111011111010 +00101111101011111111111111110011110011110110101111111111111111110001111111111101101111111111001111011111001111111111111111101100101101111101111100011111111111110111110111110001110001111111111100111101111110011110010001010111 +11101011011001001111010111000110001101110101111111110100111101111101111111100001111111111111111111111111111111111111111111110011111111111111111111110111111110111111111111101011001111111111101101111111111111111010111010111111 +11101110111101111111111111111101111110111101101111111010111111111111111101100111111111111111111110011111011111111111111011011001111001111001111001111011111111101111100101000111100111100111110111111110111001110001111101111101 +11110100111110011110011110011111010110110111111011010000111000011010011111111111111110101111111111111110111110110011111111111110111111111110011111011111011011111011111111111110111101111100111110011111111111111111011111101111 +10111111111111111111111111111010111111111111011111011111011111110111011101111111100010011110011111111111011111101111111111111101111111111111111111111111111111111111110111110111111111110101111111111111111111001111111111011111 +11111111111111011111111111010111111111111001111101111111111101101011100111101111001111110111110011011011111111111110111110111111101111111111111011111011111001111001111110111111111111101111100111100011111011111111111011111101 +11111011111011111111111111111111111111101011111111111110111110001110001100101011011111111101001011111101111111111111111111111111111111111111110111111111111111111111111111111111111111011111111111010111001111111111111111101111 +11110111011111111111101111101111101111111111111111111000111000111000110101111111111111111000101111111111111111011011111011111111111001101001001111111111101111101111101111101111101111111111111110111110111111111111111100101111 +11111111111111111110111111010011001111111011111111111101111101001101001111101111111111110011111111111100111111111101011101011111011111111101100111110101110101110101110101111111111011011111010111010111010111011111110111010100 +01010110010111110111111111011101110100001101011101011110011011011011110011110101110001101111111111100000011111111111111100011111000111111111100011111111111111010011111111111101111101001100111111001111011111111111110101110011 +11001111111111001101111111110111111111110111111100001011111111100111100110111011110011110111110100101111111111101111111110111111011111101111110111111101111111110011111111111111111111011111110111010111110111111111111011001110 +00101101101111111111111111111111101110111110111101111111111111011101110011111111011110011011101111011111011110111111011111101111111011111101111111111111111111111111111111101110110111111111111111111111111111010111111111011001 +11111111111111111011111111110011111111111111111110011111111111011111011101111111101111111111111001111111010100001111111111111011110111111111111111111101111111111111111111111111111111111111111111110100110101110101111101111111 +11111001110111111101111101111111111111101101010111010111010111110111110101111001111101111101011111110111000101111111111011111111111111110111011111111111111111111111101101110111111111111111110101101111011111110111110111110111 +11111001111111111111101111111011111111100110111110011101101101011111011011011011110111111111111111101101011111111111000011111111101111111111111101011110111110111111110010111111111111111111111111111011111111111111111111110111 +11010011101111111111110111111111111111101111101111011111011101111101111111111101111101111101111111010101111111111010101101111111101011111111111111111111111111001111111110101111101111111111111111111110110111110111111111111111 +11101101110111100111111110111110111111101111101011111111110111110011111111111111011111111111111111001110111111011001111111111101111111100111111101111111010111111111111111111111101011111111011111011111111111111111011111101111 +11011111111101111011100111111111111111111111111011111101111110111111111111110111111111111111111101111111101111111111111111100101110111111111111111111111111111111110101111100111111111111111111101101111111110111111110111110111 +11111011010111111111110011111111110111111111111111111111011111001111111110001111111111111111111111111100110100100111011101000101111111111111111111111011101111111111111111111111111111011111111110111111110011101011111111111111 +11101100111111111011011111111111111111111101101110111111001101111111110111111111111100111111111101100111011111111111111111110111111110101111111011111011111111011011011111111111111111101111101111111111111111111111011111011110 +10111111111011111111111111111110111111111110111111111101111111111111110000111011111010111111111111111111011001110111100111111110100011110110111111101111011111111111101111110100111111111100111001111111111111111110110111110111 +11111111111111111111111011101111111110010111111111111111111110111011001111101110011111101111001111011111111111111110111111110111110011111011101011111111111111111111101110101111111011111111111111111110101110111010111110101111 +11111111011111111011111011101111111111111111111111111010111111111011110111111111111101111111101111111111111111111111111011111111111111111101010111111111101111110011010011111000111111111111111111111111111111111101111011111001 +11100111110111111111111110111111111101111110111111110111111010111100101111111111111111110111111111111111111111110010011111001111111111110001010011110101111011111011110111001111111111101111001111111111001111111111111111110110 +11011011011111111110011111110111110010111111111100111111010111100111111101111110111111110111110111111101111111001011111111111111111111000011111010111100110011110011110111010101110101111110101101001111111111111111011111110100 +01010011011111111111110111111111111111111111111011111111011111111101111011111110111111111111101111110111110111111111111111100111111111101011011101101011011111111110101011101100101101111001111000111111111110111110110110100111 +10011111011110111110101111111111011111111111101011111111111111111011001111111111111111111011111111111111101111111111111101111111111111101111111100110011111111101111111110101011011111111111010111010111010011001101101111001101 +10101100111111111111011111111111111011110111011111101010011111111111110110100101101110100101111101111111111111011111011111111111111111111011111101011111110110100111111111101111111111111010011110011110010101111101101001111011 +11101111100111110110111111101111111111111011111111111111111111111010101110101111110110011111111111101010101010111110011011010110111111111110111110111100100110001111111101010101011111110101111101111101111111011111011101011111 +00101111011111011111010111010111111111111110010110011101111111100101100101111111111111010111111111010110010111111111111110011101111111111110111110010111111110111111111010111111111111101111111011101011111011111011111111111111 +01011111000111111011111110111101111101100111111111101111111011010101111111111010110010110111111110110101111111101111101011111011111111011111110111111111001111101110010010011111011111111111111011111111111101111111111101111111 +11111110111101111011011111011111111111101111111111110111111011110111111111111111111111111110011101111111111111111111111111111111110111111111111101110111111111111011011111111111111111111111111111111011011111111111110111111111 +11100111111111110110011110111110111111111111111111111001101111111111110111011111111111111111011111011111111111111111111111011111111011111111111111111111110101110101111111111001111111111111110111110111110110110110110111111111 +11111101111101111001111101111111111111111111110111100110011110111101111110111101111101101001101001101011111110101011110111110110110111010110101110111111011111010111111101101001111111111111111111110111110011111011111111111111 +11111101111111111111111111111111111111111111110111110110111110111101111111111111111101111101111101111111111111110111111111111111111111100111111111111111111111001111111101111111111111111111111111110111011111111111111111111111 +11111011111111111111111111111111111111111111011111101111111101111111101111111111110111111101111111111111111111011111111111111111111111110101111111111111011111011111111110111111111110011101011101111111111111111111111110111111 +11111111111110100111111110111111101111001101011101011110101110111011111111110111011111111111101111101111111111101111101011111010011110111010111110111101111111111111111111111111010010011110011100111111111111111111010010110111 +11010101010111110101101111111101100100110101110101011111111011111110110001000111101111100101111111101110111100011100111101010110111110110111110111110001110101110111111111111111101111111011111011011111111101111111111111111011 +11101111111110111111111011111111101111111011111110111111011111111110111010101111100111110110111011111110111111010011011110111111111111101111111011101011111011011111111111111111111111111101011111111011101101011111100111100111 +00011111011111111111011011010001111000011000111100011101011101101111100001100111000111011111010011010001111001111001111001111111111101001111000101000001100011110001110101111110111110001001111111111111011111111011111111111111 +11111110111110111110111111111111011111101111111111111001111001111011101111111111110111010111010110111111111111011111111011101111101111111111111111111111011111111101101111111111111111110001111101111001111111101110111111111111 +11111111011111111111111101111101011111011111100111001111100011110011110111111110110010111001011111111111111001011101111111111111111111111110110111111101111110110110111110111110111111111111111011100100111100111101111111101111 +10111110111110111110111110111111101111111110011011011011101010111011101011100011110111101110011111011110111011111111111111111111111110111110111111111111111000111011101100101110101111101111100001110111111111011111111111111111 +11111111111011111111111111111111011101111101111111111111110111110111101111101111101111111111101111111001011111101111100110111111101111110111111011111111000011110111111010011001111000011001011100111111111110001111111111111110 +11011011111011111011111111111101011101101101101101111111111111111111110011111111111111111111111111111101110111111111111111111111111111111111111111111111110110111111111111111110111110111111010111111111110001111111111101101111 +11101101111101011101011101011101011111111111010011110101000001110001111101111111111011011101000101011111011110111111010111110101110101110101111001111111111111011011010101010111010111110111110111111001010111011011111011111111 +11111000111011001111011111100101001111111111101110101100111110111111111111111110111111111100111111101111111101111111111001011111111111111111101111101110111111001110110010111111001110111111101111111101111111111111010111111011 +11111101111111111111101111111111111111111111111111111111111111111011111111111111111111111111111111101111110011111111011111111011111111111111011111111111111101011111111011111110111101101101111001111101111111101000010111111110 +11011111111110111101111111111111111111111111110111011101011111111111111111111101111111101101111101111111111111011111111111001101111111111111111110111111111110101111111011111111111111111111011111111111111111110011110101111000 +01111110111111111111010011000111000111110111111111010101101101111001111111111111101111111111011111001110100101110011111111111101111111111111111111111111011011111111101111100111110101111111111100101111111111011001111111000110 +11111111111011111011111001111011101111111111110111011011111011111011111111111111001111111111111111111111101111011111111111011111111111011111111101111111111111111010111111111111111111111111111011111111111011111111111100110011 +10111110011101010111111111111111111011111111111101111111111111101110111101110011110011111111111111111111111111111101110101010110111110101111111111110111111111111111111001101110101111111111010111111101110111011101111110011111 +11111001111111111111110011111111111111101111111110110111111111111111111110101111101111111011111111111111111110011010110111111110111111110111111101111111101101111111111110111110111111111100111111110101111111111111111011111111 +11001110111111111111011111111111111111111111011111111111101110111111011111111111111101111111011111111111110011100111111110101111101111111111101011111101111110111111110111110111111111011111110111111101111111111111011111111011 +11111011111111001111111111111111111111111111111111110110001111111111111111111000111111110111011111011111011111111011111011110111111111101111111101111111111111110101111101011111011111111111111110101001111011110011111111110111 +00111111111100001111111111011111011111011110111111111111101111111110110111011111111101111111110110111111111111111111011111111111101111110111111111111111111111111111111110101011111011111111111111111111011111111111111111110111 +11111111101011111111111111111111111111110111011111110111111111110010111111111011111011111011101110111111111111111111011110111111101011110011011111111111111111111111001111101011101011111111111110011011111111111111111100010110 +11111011010111111111110011111011111111011111111111111111111111101111001011111101111111111111111111111111111111111111111111110101111111100111011111111100111011111101111101101111111111111111110110111111111111111111111111111111 +11111111011111111110001011111111011011111111111111111110111110111111111111101111111111101011111101111011111111111111111111111111111111011110111011111111111111111011111111111110011111011110111111111111111111111111111101111111 +11111011111011010100111111111101111111110100110010111111111111101111111111111110111111111111111111111101011110101111001101001100111111111111101111111111111111111111011111111101001101111101111111001100111100111111111101111111 +11111001111111100110111101010000111111110110111111111001111110011111111111111111111111111111111111111111000101110101101101101111111000011111111111111111111111111111111111101111000101111111111000101000111111111111111100100101 +11110101111111111010111111000000111110111111111111011110110011111111101111111111111111001111111111111110101111110110011010010110010111111100111101111111110101101111111101111101111111111101010111010111111111111111110111111111 +01110111111011100111111111001111111101101111001111111110001111101101011111111111111100111111111101111101111111111110100110111111111111100011101011110111101111111111111011111111111110111010100110100111111111101111111111111111 +11101111111001111001111101101111111001111011111111111110111101110111111011111110111011111010111101111111110101111010101011110111110111101011011111101101111111111011011011111111010111100111101111111001011011001111101101011111 +11111011111011011111111011111011100100011111110111110101100111101111101101100111111111011111111111111110111111111001111110111001111100011011111011111010111111111011101111111101111111111101101010111011101000101101111011111111 +11101010101110111111101111001110100110111111100011111111011111111111110111111111111111110110110111111101111111111111011001111111001011111110110111111101110011110111111111111101110111111111011001011111011011110111110111111111 +01010111011111111111110100111110011111101110011011111111111111111110111111111110111111010111111110001000111111111110001111001100011111101110101100101111111111111111111111101011111111111010010111111111011100101100100011111111 +10111111010101101101111011111111111101010001111110011110111111111011011111111011111011111111111111111111111111111111111101111111111111101111011111111111111111111111111111111111111111110101111111111111111111111111111111100111 +11111111111111111111111101111111111101110001111111011011111111100111111110011110111111111111111011111111011011111111111111111111111001101111101111101111111111111111100111111011111111111111111111110111111111111101111101111111 +11111110111111111111111111111111011111111111110110011101111111111101101101111111101010101110010111110111110110110110110111111011111111011011011011011111011011111111111111110111110110110111111110111111111111010111011011011010 +01101011101111111111110111110111110110111111011011010011111101101101101111111111111111111111110111110111110011110110111111111111111111011111101111111101011001111111111111110101110110111111111111111111111111101111001111011111 +01111111111111111111110011110111110011111111111111101111111100101011111111111111011111111111110111110111011111111101111111111101111111011111111111110111010111111111111110111011011111111111111111111111111111111111011111011111 +11111111111111101111011111101111110111111111011111111111100001111111111111100111111111111111110111110110111011111111111111111111111111001110101101111111101011111111110111111010111011111011111110111111111111101111111010111111 +11111111101111101111111111111011111011111111111111111111000111111111110111111111111110011101111100011111110111110010110011110111111011010111111111111101011111001111000111111111110111101111010011110101110001010101011111101111 +11111111111111111110011100110011110111111111110011110111111111111100001011111111111010111111111010110011111111111011101111111111101111111111111111111011111111111110101111110111110101111011101111101111111111111011111111111111 +10110111111011011110111111111111011111101111101111111111111111110101101111111111011111111001111101111111111101101111000111100101000111110111111111111110111110010100011110011111011110111111011001100111110001110111111101110100 +11111100111101011100011001111101111111001111000111100111100111110011111111111000111111111111111111111111101111111111111101111000111101111101111111111111101111111111111111111111110111111101111111111110111110111000101011101111 +11101111101110001111011111111010001111111111111111111110111111111111111111011111111111111111111111111111011111111111111111111101101111011111111111111110111111111111011111111111111111111111111010111110110101110100110111111111 +11011101011111101011101101101111011111111111101111111101111111111111111111101111111111101111111111111110111011111010111110111111111110101111101111111111101111111110111111111110111110111111111110111111111111111001101011111111 +10111011111110011110111110001111111111101010111110111111111111101111101101111111111101001111111111110111111111111101111101111111101111111111111110111111111111111111111111111101111111111011111110111111111111110111010111111111 +01111110111101111101101101101111110111111101111101111111111111111111111111111111100111111111111100101111101101111011111101111110111111111111111111111111101111111101011011111011111110110010111111111101101111110100111111111101 +11111111111101100101001101001111111111101111111101111111111111111111111111111111101111111111010011111111100101100101101101101111111111011111010111010111010111110011010111010101110101010101011101011111111110110110010110010011 +01011111011111111111010111110101110001110101111101111110111111011111010111010111101111111110110111111111110011110011101011111110101111001111111111001111001101111011101111001111111010111110111111011111111110111111111111111111 +11111111001101111111011101111101101001111111111111011111111111111111111111111111111111110101111111011110111101110011111001011111110100111111111011110111011111111101111101011111111111111110111111111110111111111111101111111101 +11011111100111111111111111111111111011111111111011110111111111111111110111111011101111111101111111111001110111111110110011110111111111011111111101111111110110100111011111111111011111111111111110111101111111111111110111110111 +11010111111111011111011111111111011111111111110110111111111111111111111011111111111011111111111111011011111101111111111111111111111111111111110111001111101111110111111111111111111111011111011111010111111111110110111111110101 +11000111111110110111111101111110111100011101011111111111111011111111111101011111110101101111101110001111101111101111111111111111011111111111111111111111111111111111111111111101111110111111101101111111011111101111111110101011 +01101111111111111111111111111111111011110110111101111101111111111111111111111111111111111101110111111111111101101111111111100011111111111101111011111101111011110111111111011111111111110111111111011111111111111111111111011111 +11111100011001111101111101111110110011101101110101110111111111111110010111111111010111001111000111111111101111110110111111111111101111111111111011111111111111101010011111111111111111011111011111111111111111111011101011111101 +11101010111011011011111001111111011111101111101111100111111111111111111111110111111111111111111111110111110111111111110011111111111111111011111101111010111111111111101111111111111011110111111111111110111111111100111101111101 +11110111111001111011100111100111100111100111111111111110111110011111111011111111111010111011011110101111101110111110001011111111111111111111111101111111111110111111111111111111111011111011111101111111111011101011011111111111 +01111111111101111110001111111111011111111101111111111100111111011111111111101111111011111111111111111111110111110000011111110111111111011111111111111111111110110111111111111111011111111111011111111101111101111011111111111111 +11101111111111111111111111111110111101110111101111100111111111111110111101111111110111111111111111111110111111110111111010111010111111111110101011001111101011111111101010101110111100110101111110111111111111111111111111111111 +11111111111101110011011111011011111011111011110111111111110001001111101111101111111111101111011111011111111110110101111110011111101111011101111001111110101110111111110111110111110010111110010110111111111010111111111111111111 +11111110111111101111111110010101010111100110100111101001101101011101010100110110111110111111011111111111110011111111111100000111011111100111111111111111111110101110111110101111011111111111111111101111111110111111111111011111 +11111011111111111111111110111111111111111111111011111011111001111011111111111111111110110111111111111111111111111111011001111111110001111111111111001111111111111111111011111111111111111111110101111111111110011111110100110111 +11011111111111111111001110011111110011111111111111111111110011111001001111101111111111111110101111111111001111111111111111111111101111011111010111111111111111101111111111111111111101111100111100111111110011000011010011010011 +01000101111001111111111111111101011111111111001111111111011111111011111011111111111111111100111111111100111110111111111111111111100111101011110001111111001111111111111110011010111110010100111111111111101001111011001001111111 +11001010111110011111111111011111101011100011101011101011101011111011100111100111101110101111110011011111111010111110011111111010111101110110011000111111111111111111111100110111111110110111111011111010101011111111011111111110 +11111110111010111111111111110111011110011101111001111101111100111101101101111111110111111111110010111111110011110111111010111110111111110010101111111111111111111011111101101011001111001101101101011111111110110010010100010110 +01011011011011010011000001101101011110111111111011011111101011111011111011111000111000111010111111011011101101101111101111101011101111110001111111011010111111111110111111011000101100111101010111111011110110101010111111100101 +10011111010110111111011010101001111111110110111111101111101111011111011011011010011010111010111111001101111011111110111011111011111011111111110010000110111111111111111111110111010111111011110111111110110101110111111101111001 +00100111111101111001111101010110111001011111110011101010101101111111100110001110111110111110111111011111111111111111010111111101111011111111011111101111111111101111111111111111011001111110100111101101101111111111111000011011 +01101111111000011011111111111000010110100111111111110110111111110111111110111111111111011111111111001111111100110111101111101100111111111111111110111111111100101111111101111111101111111111110111011111110111110111111011111011 +11111100111000111111111111111111101111111011011101011011011101111001111001110001110111101111110111110111101111111111100111111111100111110111011111111111101101111111111111111111110001110101111111101111111111111111110111110111 +01011111011011111011111001111111111111101111100110111111111100011111011111011001111001111111111111111111111111111101111111111111111111111111110111010111110101111111100010101111111111010111011010011111011010101101111101111101 +01110110110111110111111111111011111110011000011101111010101011111001110111000110100110000111111110101111111111011110011011011101011111111001111101111101011111110110010011111111111111011111101111111111011111111111111111111101 +11111110111111111111011111011111011111111111111111011111111111111111110111110111110111110111111111111111111111011111001111111111011111111111111111111100111111110101111111111111111101111111111111111111010111111111111111110111 +11111111111111111111111101111111111111111111110101111111111110110111011111011111101111010101011111011111011101111101111111111111111111111111110101111101111111110011111111111000111111111111111110001011111111111011111011111110 +11111111111011111010110111110101111101111100001000001001111111111111100111111111110111110111111111111110111111111111111111001011101001111111111111111111111111111111111111000001111111111011101101011111111111011111001111011101 +01111110110111110011110011010001110111110101011101011111101111000100111101111111111111111111110111110111110111110111111101111111011111111111000111101111011111111111111110111111111111001111111111101111111010101011110110101101 +11111111011111110111101011111101111111101011111111111110101110101111111111111111111111111111111111011111111111111111111111111111111110111110101111111100111111111111111111111111111101001111111111111111111100011110011110011111 +01111111111111101101000111100111100111110111111111100100100100011110011101111011011111101111100011100101100001110001111111111110111110000100011110011111011111111111111011111001101101111111111111111111101111111111111011110011 +11111111111011111111111111111110111111111111111101111111111111111111110111111101011111111101101111111001011001111111110101110101110101111111110111111111110011111111111111111111111111111111110111111111111111111111010110011111 +11011111111111111111110111111101111111111111111111111111111111111111111111101111111110110111111111111110111111011110011110011111011111111111111011111111010111111111111111111111111111111110001111111111111011011011111111111111 +11111110111111111111111111111111101111111111111111111111110111110111111111111111111111101001111111111001111110101010101110101111100111100111101111111111111111111111011111111111111111110010111111111111111111110111111111101111 +10110111111111110111111011111011111011111011110111111111111111101111101111101111110111111111111111111111111111110111111111111111111111011111011111111011101111111001111111111111111110110011011111111000111111111111111011001011 +11111111101111111001011111111110110100111111111111101101111111111111011011111111100111111111110011111111111111110100110110111110111111001110111011001011111111111111111111111100011111111111111111010011111111110110111110111101 +10110101100101110101111101101011110111011111010111010111010011110011110111110001111101010101101101111111111110011111000111000110010110100110111010111101110101011101011101011110011111111111110101101101111111101110111111101100 +11111111100011111101111111111110111111111111111110111111111111110011101111111000011100111111111011011010111011001100001111001110101111011101110111111101110001111111111100111111111111110011010001111111111001011111111111111111 +11111000101111111011100101111111111111110111110111111111111111101111111111111011110100111111100111111111111110111101011011011110111111111101111101111101111100111111111111111111101111101111011111111111101110011111111011001111 +11111111111110111111101111111101111111111111110111011111111111111111111101011111111111111111010101111111110111011101110111111111111111011110111111111110111010110111111111111111111011111110111111111111011111111111110101101011 +10110011111111110001111101111111001101011111100011111101110101111111111101111101111110011110010100011111011111111011000111110101010101101001010001011011111111101111010111010111010011110110101110110001110111111100010011111111 +11101111111111101111111111111111111111111111011110111111111111101110111011111111110111110110101110111101111111101110111110111111111111110110110111111111111111110110101011011111111111101111011011011111111111010101101111101110 +11111111111111111010111110101101110101110111111111110111111111001001110111111111110111011111011111111101110111011101111101110111111011011011000111111111111111111111111111111101011101011101111111011101111101011001111110110001 +11101111111111101101101111111011001111111111111111111101111110111010111111111111111111111111111111011111001011111011001111110110111101110110111110110111111111011111111001100011000011110011111110011110111101100111111111000110 +11111111111101110111111111111111111111111111110111111111011111111111111100100111111111111111111111111111011110101111011111110010111110110110100111111111110111011111011111111011111110111101111101011111111101111011110011001111 +11111100111111111111111111111010111010111111111111111111111011110111111111111101100011111111111111111111111111111111011111111111011011111111111111011011100011011101111101111111110111111111001111110111000111111011011110101101 +11110100111111111111111111111111111111111111111111111111111111111111111111111111111111011111110111111111011110111111111111110111111111111111111111001111111111111111110111111111111111111001111111111111111101111111011111101010 +10001110111111111111001110111101011111101111101011101011111101101111101101111100111111111111111111111111111111111111110001011111111110011111011111101110111010111010111110111110111100111101010001111010111010111001111111111111 +00010101111111010111111111111101111101111101111111111011111111111111111111110011110111111111111111111111111111111110001111111111011111111111110110111011110101110110110010111011111101011111011011011101011111101101111111111110 +01110111111011111111111101111111110111110111110111111111111111111011111110110111011111111110111111111111111111111011111111111101011111111111111111111111101111011111101111111100111100111100111111111111111111101111110111111111 +11111111011011111111110111111001111111111111111111111111001111111111001011111101001011111100111101111100110111101111101111111111111110111111111111111111001000111111111100111111111111111010111011111011110011110011111111111111 +11111100100111110101101101011111111111111111111111110101111111110101101100111111011111111111111111111101111110111111111111111011111111111111111111111111101111111111010111110011010111010111111111111101011111111111001111111111 +11101111101011111100010111111011111111111101001111111111111111111111110101111111111111101111111111110010111011111101011111111111110011111111111011111100111100111111111110011010011010111010111010111001101011101111101001001011 +11101110011111110001110111110110111101111111111111111111111101111110110111111111111111110111111110111110110111111011001111111111011111101111111110111111110011110011111010111111011111111111111111111011111011111011111111111100 +11100110111111110011111111110000001111111111111011111011111010111101111111011101111101001111011111101100101111111110011110111101110111111110001111101111101111101011101111111111101100111011111111111110111110101111111111111111 +10111111111111101111101110111101111111011110011111001110011010111111111110111011101001111111111011111010011011111111110011111111101111010110111001101111111100101110111001111111011011111011110111111111111111101111101111101111 +10111101111101111100111010101011111110011101111101111111111111111111111111111011010111111111110111011101111011111111101101101111111111011111011111111111111111111110111111111111011011011011111111111111111111101111101111101010 +10110110110111110011111011011110111010001111111111111111111111111111111100011111111111111110101110111111111111111011111101000111111110001010111101111111111111111011111111111111111111111111111111111111111111111111111111010111 +11111111111111111111111111111111011110111111111011111111111101111111111111111111111111111110110111111111100111110111011110111011111111111011011111011111111111101110110110110110111111111110011111011111011011011111011111011101 +01110110110110110110110111110111111111111111001111111111011111111111110011111101111111101101111111101111111111111111111111110111110111111111111110111111111111011111111101111111101111100111100111110110110111110111111111111101 +11111101111101111101111101111111101111011000011111111111110110110110101111011111111110011111011011011101011111111111101111011101111001111101110101111111111101111111011011011011011111111010110101110001001101111101111101110111 +10110111110111010111011011011011111101111110011111110110110110111111111111111111111111111111011011111111111111111111111111111101111111111111111111111111111111111111111111001111111111111111111111111101111101111101111101111111 +11111111111111101111101111001111111111111111111111110011101111111111111111111111111111111110110111111111110111111111111101110111111111111111111111111111111111111011111111011111111111111111111101111011111011111011110111110111 +11011110011111111111111111011101111101111111111110100011111111111011111111011111011111111110111111101011111111011111110111111110011111111000101110101111111111111111111011111111001111111101111111111101111001111111111111111111 +11111111111111111111111111111111111111111111111101011111111111011110111111111011111011110011101101111011111111011111011111000111011111110100101101111100111101010101011111111111111111011111011111010111011111101111111111111101 +11110111110111110111111111111111111111011111011111111111111001001111111111111111101111111111111111111011111110101111111111111111111111111111111111111111111011111011111111110111111110101111111111111101111111111111110111111111 +11111111111111111111111111111111111111111111111110111111011101111111111111111111000111110111111111111110111110011110011110001111011111111111111010111001011001111001111101111101110101101110011110011111011111111111111011111001 +11100111100111110001111101111110111110001110010110000111001111111111101111111111111111111100111110111111111111111111111111110111111011010111111111111110111111011111111011101011100111111111111011100111111111111111111111111111 +11111101111111111111111111111101111101111110100111100111111111111101101111111111111111110111111111111110111111011111011111111111011110111111111111111111111011111111011101011111111111111011010011111111111111111111101111110111 +11111111111111111111111110111111111111111111111011111011111011110100111111111110111111111111111111111011111011111111111111111111111111011111111111111111111111111111111111111011111011111111111111111111111110111111111111111111 +01111111111111111111111110111111111111101111101011101111100011110111111111110010111111111110111110010111011111111111101111101111101111111111111011111110111110111110101111111111111111111111111111111111111011111111111111111111 +11111111111011111011111111111111111001001001001100101111001111101111100110001111111111110010111110111110111111111110111111011011111111111111111111110011111101101111111101101111101111111111101111011001111011111011111011111011 +11110100111110100100111110111111111111011111011010011011011111111111111100011111111111011111111111010110010111000111110111101101111101011101011101011111011011111111100111110101110101110101110110111111111101011101011000011111 +01101111101111011011000111010110000110110110111110101101110101011100001111111111111010001111111111111111111110111111111111111011111000001100111111111111101111111110110010110011101100111111011111011110111111101010110001011110 +11101111011111001101001111001111001011111010111111110100111100101100101111111111001011111111111011100111111111111011111111111111110101011011111110111011110001111111011111011011111011111111111111101111111111110111101111010111 +11001110111111001111111101101111111001110111110111100111110111111101110110111111100100111110101011110111111111111111111111111011111101111111111111110101111111111110111110111111111111111111111101111110110101110111010110111111 +11111111110111011011110111111110111111100111101111100101100111111111111111111011111111111101100111111111111101110110111111111111110111011111011011111111111101110111111110111100100101011001011101011111111111111111111110110111 +01001111001110011111100110110001110111110001101111111111101111011101000111010110111110110111111111111100111111111110110111111101111111111111111011011110111011111111111111110111011111101110111110111110111110111111001011101111 +10111110011110101110111111011011101011111011111111111101111110111101100111101111110111011011111111100001111111101111011111111111110111000111111111111011111111111011111111101011011101101110101111111101011101111101111111111111 +10100111010111110101110111110101111111011110111111111111111111011111101011011101111101011111111100101101111110111111111111111111111101111101111011111110111011111011111100111010111111101111111101111100101111111111110011011100 +11001101001101111101110111111110110101111111111111111111111111010111111111110110000010011111111100001111111111001111111111101011111111111101111111110011111111111111110111111111111101101111110111111111111011111111111111110110 +01111001111011111111110110011101111111111111111110111111101111111111101111111111111100111010111110011111110011101111111110111011111101111111111111110111111110000111001111011111001111111011110111111100111000011111111111011011 +01011111111111111111111101111001101111111011110011011111111111111011101111101110011111001111111111110111000110111111011111011111111011111111111110011111111011111101101011111110111111101111100111011011011111111101111111101111 +11111111111011111111111111111111111110111101111111111001111111111111111110111111110111111111111111111011101011111111101001111111111110111101111110101010111111111111111011111111111011110111011101111101111111010110111111101111 +11011101111111111111101111111100101101110111110111111110101111111101111110101110011110111111111111111011000111011100000111111111111011110101111011111110011111011111111111011011011111111111111111110111101111110111110101111111 +11111111111011111001110101011101101111111111011110110111111111110111110111111111111111011111011111101001111111111111011111111110111111111111111110111111011101111110111111111101110111101111101011111111111111111101011111111111 +11111100111111111011111111111110111111111111101111001111111111111110111101111011111101111101111111111101111111110111111111110000111111111110101101111111101111111111111111100111110111111111111101111111111111111111111111111111 +11111111111111111110101111011101111101110111111111111111111111111111111111011111110111110111111011111011101011010111111110011111010111110101101111111111111111011111111110111011111111111111111111111111111111011111111111111111 +01111111111111111111011111101111101111101111110111111111111111111110111101111111111111111111111011111011111111111111111111011111111110001111111110011111010011111111111011111111111001001011011111011110011110101111111111111101 +11110111111111111110111111111111111100111111111100111111111111100010111111111111110011111111111111111111111111001111111100111111111001011111110111111111111101011111111111111111111011111011111101111001111100111111111111110111 +11111111111111111111111101111110101111011111111111111111111110110011111111110111011111111111111111111111111011110111111110111111010001001110111111101011111111111111011111111111111111111111111101001010111110011101010110111111 +01011001111111011111110111111011111111111010101100111111011010111110111001011110111111101010111101110100111011101011100111111110111101011101001111111111111111111111111111111001111111111111111101110111110010101010111101111111 +11001111011110101111101010111111110011110111111111111110111110011111111111111111111101111111111110101111111111111001111111101111101111111000110011111111101111111111111011111111110111011110111010111111111011000011111111101101 +10011111111111111101111010101111111111011111111111101111101110101011011111111110110100101110110111111111111111110111111111111011111011110100011111110100111111110110111111111111101111111111111110111111010110111011111010101000 +11111111111111111111101110111011101011011111111100101011101011111011110011110110111111100101111111110111101111111111111111011110001110111001111111100111111111111111111111111111111111111111111110101111111111101101011101011110 +11100001101111111101010111010111011111111111111111111111011111111011111111100111111111101011010110111111010110011111111100011110111110111111110100111111111111110110111111111110111111111111111111011111011001011101010011110110 +01011010000111011010000110111101111111101110100111101111101111111111110101111111111111011111010111110001110011110011101011111111111111011111111100101111111111001111111111111011011111111111101111101101101101111100111100111110 +10111111111111111111111011111011111111111111111110110111110110110111111111011111011111111011011111101111111011111111111101111111100101111101110111111111111001111111111111111111111111011110011111011111011111111101111111111101 +11011110111110010111111110011111111111111111011001101111101111110111011111011110110111110111111110111111011111011111011111111011011111111111111111110101000111111111111001111111111101101111110110110111110110010110110111110110 +10111101110001101001111101110111111111000111110111011011011101111011110110110001011101101101101101111101111101110111100110110111110110110110110111011111010111111111100001111111111111111111110111110111110110111011111111111111 +01111111111111111111111111111111111111111111111111110111111111111011111111111111111101111100111111111111110111111111111111111111110011110011111111111111111111111101010101111111111111111111011111011111011111111111111111111111 +11111111111111111111111111111111111111111111111111110111111111101111111111111111111011111011110111110111111111111111111111111111101101110111011111011111111111110101111111111110101111111111100011111111111010111111111111110110 +11111010110111100001111100101111111111111111000111111010101111111111111111111000111110111111111111111111111111111111011111110011011011111111111111111111111111110111111111110101111111111101010110011111010110111111110111111011 +11011111011101101111100101111100111100011101111101010111011110011101011111000110011111101111111111111101111101110101111110110011011111111111110011110111110111111111111110100111111101110010111110111111111111100011111011011011 +11111111111110101111111011110111111111110111111111111011111111101111111110101111111111111111111111111111111111111010110111111011111111101111101111111111111111111111111111011111111111000111111101111101011101001111000101100111 +10000111011111111111011011111000111001111001111101111111111101101111100100011111001110011111111011111001111001110001111101111101111111001101100111100111100111110111111111111110111011111111111111101011111111111011111111111110 +10100110110111011011111111011111111110001111111111011111111111110111111111111011111111010111011111111111111111011110011111111111001011111111111011111100111001111101111111111111000101111111111101011111111111110111110111110101 +11111101111101111111101011101101111111011111111111111111111111111111111111110011111111111111111111101111110011111111111111111111011110111111110111100111111111111111111111111110001111111111101011111111111111111111111111111110 +10111111110111111111111111101111101111011111111111111111111101111010111111111111111110110110111111011111111111111111111111111111111110101110111110111111111111111111111111111111111111111101110111111111110111110111111001111111 +11001011111001111011111001111111011011111110111110111111111111110111111011111111111111111111111011111011111111111111111110111111110101110111111111111110111011011011111111111111111111101111111111101110001111111111110111111111 +11111011111111111011111111111101111111101111111111111111111111111111111111011111111001111011111111111101111101101101001101101111111111111011110111111111111111110010110111111111111111010111111111110001111111110101101101111111 +10111101111001011001011101011011011101101110110111110001110101110101111101111111011101010101011101011011011011111011010111100101000101110101111101111111111101011110000111010010010111110111111010000111110011111111111111101111 +11101111111111111101110100101110111110111111101100111111110011011011111111011111011110111111111101101111100111101111100011110011111100111110111111111111111010101110111111001111111011001111110100111111111111011111101101111111 +11111110111110111011010101010101010111111011111011111111110111111101111111111101111011111111111111111111111111101110110111101011111100111111011111011011111111101111101111001111101111111011111101111111111011001111111111111111 +11111111111111101110101110111111111011111111101111111111111101111111001111111101111111110111111111011111111111101101011101010111111101111101111110111101110111111111110111110011110110111111111011110101001111111011101001111111 +01111110111110011111111111010111111110110111111100111101110101010100001011111001011111111111110001111111010101111110111111111111111101011101101111111111011011111111111011111111110101100101111111111111111111111111001011111111 +11111110111011111111111110101111011111101011111111101111010101100111111111111111011011111111011011001111111111111111010111111111101110111011111110101111111111111111111111111111101011111011010111110111101111111000010011101111 +11011111110101111111111111111111111111111111111101011111111111111101110001110111111111110111110101101110011101111101111111111101011111100111111111111111111110111111110110111111111111000111011111110111111011011100011111111110 +00111111111011111101111000101001111010111011110111111101010111001110101111101011111111111111111111111111110110101111111111111101111111111010101111111111111111111111110111110111011111111110011110111111111111111000111111110001 +11111111111111011101111011111111001111111111111110111101011101101111111101111101111110111101111110111111110101110100111111101111011111111111110011111111111111111111111111111110111111000111111111111011101111001011111100000011 +11111111010111101111111110111111111111000110001110001011110111111111111111100111100111111000101111111111111011111110101111111111111101111101111110111101111111011101111111111111111111111010100011111101011111001110101101101111 +11111000110111111111110111011111111001111111111111101100111111011111111101111111111111111111111111101110111111111111111111111111011001111111111110111001111111111011111111111011111111110110111111111111111011111011111110111111 +11101011111110111111111111111111111111111111100010111111110111011011110011011011011111101111101111101111011111110111111111110011110011011010111111110111111001101111101110101111111101111011111110111100011111111110101111110110 +01110111101111111111111110111111111111011011011111111111010111101111111111111101111001111110110101111111011111011111110111111111011111111111111111101101111110111111111101111010111111110111111110110111111111110111111111111111 +00011111111110111111111011111111111011111010111011111111111111111111111111110011101011111111111111111111111011001111110110111111111111111111110011110111111111111011010101111111011010101111111111011111111111110111111111111011 +11111111000011111111111100110111111111111111111111110011100111110111110011101011101011011011001111111110011111111111111111111111110111101111111111111111111111111110111111001101111101111111001111111011111000111011111111111111 +11111111011101111101011000111111111111011111111110111111011111111101011101010101111111011011111111111111111001111111111101111111011111011111111111111111110111110111111101101111101111110101111111111100110111111101111111100111 +11111111011110111111011000111110111111011111110011110011110011110011101111101111011111111011001111111110111110101100111111011010111111110011111111111101111111111111111100101111111011011111110110110010010100110100111110011101 +11111011110111111010101111111101111011011111111111011111011111111011101111111100111101111100111101111111101111101101111110111111111111111111110111101100111111111111111111111111111110111110111111110111100111000111101011101110 +11111001111111110110101111101101110111111011110111111110111110010100001111111011010000111011111001111111111111111111111111100111111111010101111101111011111111011111110110111111110011000011111001111011001101111101001111111111 +10110011111111110101111011100001111111111011101111101111110011100111101111011010101111111111011111011001011010111110111111111101101111111111111111101010111010111110111110111110011110111110111010111000111011111001010111111010 +11111111101111111111001100010011111111111111111111111011011111111111111111010101111111111000111111111111111110111110111011110111011111111111110101010111110010110111111111111111111111111101010111010111011111111011111111110101 +01010111101010111101111100111111111110111111111111111111111111111110111111111111111101100100011001111111111111111110001111111111110001111110101110111111110101101111111011111011011011111011111011111100111101100110111110100001 +10111111110111101111111111111111110101001111111111111111111111111111011111111111001111111111101111110000111111111101110111110111101111111111111110110111111011111111110111111111111111111001111101111111111111111111100111111011 +11111111111111111101110111111101000011111111111011111111110111110111111111111100111110011111011111111001111111111111111111110101111001111111111101101111011111111111111011111011111111111111111101111001110001101111101111111111 +11111111111111111111111001011111011111111110000011111111001101111101101101111111111111110111110111000111110110110111111111110111111111011110011011011111111101111111000111110111110111110110111111111111111100011101011011011011 +01111111111111111111110110110110111111011001000111111101111101111100111101111111111111110111110111110111110110011111111111111111111111111111001111011111111111111111111111110111110111111011111111111111111111011111011011001111 +11110111111111111111111111110011111111110001111111111100110111111101111111111111111111011111011111101111101111111111111111011111011111111111011110111111111111111110111111101111110111111111111111111111111110111101111101111111 +11111111111111111111111111110111111111011111111111100001111111111111111111111111111111111101111111011110001011011011111111111101111111111111111111001111101111111111011101000011111011111010111111111111011110111111101110111111 +11101111111111011111111011111111111111111111111101100111111111110111111100111110111110111110011101011111111110111111110011110111110111110111111111111111011111001101011100011111010111110111010111110111110111110011111111111111 +11111101101101011101011100111110111111011111110110111111111110011111111111111111111111111111011111111111111111100111111111101111111111111111111111111111111110111110111111111111111110101111101111101011011111111111111111101111 +01110111111110111011111011011111111111111111111111101111100110111111111111011111111001111001111101111111111111001011100111100111100111110111111111111110111110010110011110011111111101111101000111000111100111110111111111111110 +11111000011001111001111101111101111111101111100111100111000111111111111010111111111111101111111111011111101111111111111111111111111110111111111111111111111111111111110011111011101101111111111111111111111100111111111111111111 +11010111111111111111111011111101001011111111111011111111011111111111000111111111111101011111111111111111011111101110111110111111111111111111111011111011111011111110111111110111101111111111110111110111111111111111111111111111 +11101111111111111101111111111110011110111111110111111111111111111011111111111111111111111111111111111111111111111110111111111111111111111111111011111111111111111011111111111110111111101010111111111111111111111111110011111111 +11111111101111111011111111111111111111111010101111111111111111100111111111111100111111111111110111111111101111111101111111111111111111111111111111111111111111111111111111111011101101110110111111111111111011011010111111110111 +11111110111011111110111111110111111111100101111111111111111111111111111101101100111111111001101001001111001111111111110111111111110100110100111110111111111111001110111011111111111111111111111111111111110100110010111100111111 +11011101111101000111101111111111111111101111111111110010100111111111111100101111111111111011111101110101110101110100101101111110110110010101010111010111010110100110111111111101111101010101011100111111101111011101010111010110 +01011111011111101111110111110100110101110101111101101111111111011111010111111111111110001111111111111110111111111011101011111111111111000111111110111111001111111111101101111100111100111111111111111101111111111111111111011111 +11010111011111110111100011111101111111011111111011111111111011111011111010111111100101011111111111111011111111101110111111111111001111011111111111101101111111111111111010110011011101111111111011111111010111111111111111001111 +11111111011111111100110111111111111110111101111110111111111111111111111111101111101001111111111011111111111110111111111111110111010111111111111001111111101111110111011111111111110110111101111011110111111111111111110111011111 +01111111010111110101111111110011001111111101111101111111111111011111101111111111011111111111010111111111111101011100011001111111011111011111110111011111011111110100101101111110101101011111111111111111110111011111101111110101 +11000111000111110110110111011101111000011011111000010111011111001111111111100111111111110000111111111101101011010111111111111111111111011110101111111111111111011111111111100110110110101111111111111111111111111111111001111111 +01110010100111111111111111011110111011011110111110100111011111011101111111011011111101110100111111111000111111111111111100111111111111100111011111111111111111111111011110011111011101011111011111110111111111111111011101110111 +11111001111011111100011100011101111101111111100011111111001111111110111111111111111010110011111111000000111111111101101111110111111111111111111111110100101010111101110111111111111111111111011011111110111111001011111111110111 +11111111111111111111111111111111111110101111101111111111111111011111111111110111101110111111111100100011111111111101111111110111111111111111111111110111111110111111111110111111111011111011011111111111101110110011111111111101 +11101111111111101111111111111111111111111101111011101111111101111101111111111111110110111110101111111111111100011110111111011000111111111111111111111111101101111111110111101001110101111011101111111111101111011101111101111110 +11011111111111111111011111111110110111111111101111111111111111110100111011111111111011111111011111111111110100001111110100111111111111111111111111101111111111111011110111111110111111111111111011111101111010111111111111011111 +11110111111111110111110111011011010111111111111111111111111111110111111111111101111111111111111111110111110011011111111011111111110111111111111111111110001111111111111111111110111111111101111110100111111101111111110111011111 +10100111110111111101010011111010111011110011101110010111011101101011111101101111111111111111011011111110111011111110010111111111111101010111111111110111101111111111110111100111110101011111111111111011111011011111111111111111 +11111111111011011011011100011111001111110111101111011000110101111011111000111110111111111111111111011111111111111011000111111111111111111111110111111111111011111010101110101111111111111111101111111111111011111111111111111100 +11110011111101111100111101111111111111111111101110111111101101101111111011111111111110111111111111101110111111110111111111110000111111111011001111111110111110101111111011001100111110111101111111111111111110011111100010010111 +11111111111011111111110110011111010111111011111011111111011110110011111111111111011111001110101011111101111110110011111101100111111111011101111111111001001001110101111100111100111111111111111111111110100111110111011111111101 +11111100111100111111111111111111111111111111001011111111111111111110111111110101110101111100111101001111111111101011111100001110111011111110101101001111111111011111011101111010111111111111111010111101111101001010111111111111 +11111100111110110111111111010010111111110011111111101011110101001101111110101111111110111100010111010100101110001111111011111101110110111111111111111111111010111110111111100111100111110010111111111011101011011111011111111111 +11111101110101110111111111001111111111101111011101111001101001111111111001111011110110111010111110110110100111101110111110111111110010011111111111111111111111111111111110101101011001001011101101011111000110110110110111011111 +01111111111111101111111110111111110101111111111111111111110111111111011011010010010101101010101101101011111111111111111111101111110011111111011011111111111110111110111110111011111001101101111101111111011010100110100011111111 +11011010111111111111111111110111101111111111111011111111101111111110111110011111111110101001101010111101111111111111111000111011011011111110010011111111111111111101011101111001011011010111111101111011010111001111111111111111 +10111110111111111111111111111001111111111111110111111111101111110110111101111111110101011101001001011011011110111111110111111011111110001000010111111111111011111011111101011110000111101101101001111111101101111100011111011111 +11111111011110111111110011111101000111011110111111111111111111011111111111101110101011111111001100010110110000101110101111111111111100111001111101111100111101101101111111111110111111111111111111100111010111011110111011111111 +01111110111111111101101101101111111111101110011011111111011011111101111111111111111101111001101110111111111111111111100011111111110111011111111111100000111110111111110111111101111111101111101111101111111111110111110111111110 +11111111011111111111111011110101111101100111111110111111111111111100011011011111011011111011110111111001111101111001100111101111111111111111010101110111111111100111111111011111111111011111011111011111111011111000111011110001 +11110110110111110110111111011010110000011001101101111101111111111011000101110110110110100111110110111101001111011100011011011011011011111101111110011111110110000111111111111111111111111111111111111111001111111111111111111101 +11110011111111010110111111111111111111111111111101111111111111111111111111110111111111111111111111111111011111001111011111011001001111111111111110111111110101110111111111111111111111111111110111110111011111111101111111110111 +11011111111111111111011111111110111111111111111111111110111111101111111111101111111111011111111111111111111101111111011111011111010111111101111111111111101111111111101011111111011111111101101001101001111111111111111011111001 +11000011011110111111111111011111010111001101001000111111111111111101111011000011111111111111111110111111111110010101111000101111101111111111110111111111010111111111011011111111111011110001011101011111111111001101011111011111 +00010011011110111111110110110111110011010001011110111111111100010101010100011111111111110110110111010101110001010101111111111111011011011111001111011111111111111001011111111111111111111011111111111110111110101111110111111111 +11111011110010101111111011111111111111111111111111011111111111111011111011111111111111111011111111101111101011011011111011101110111101111110110111111111111111110101111111111101111110110111111111110100110100010110011110011110 +01111011111101001101100111100111100111110111111111111110111110010001111101111101111011101111100101100111000111110011110111110100111110011100011110011111011111111111111011101101111111111100111111111111111111111111111111111111 +11011111011111111011111111111111111111111100111111111111111111111110001111111111101111111111111111111101111110111100101110110111111111111111111111111011111111111111111100110111111111111111111111111111111111111111111111111111 +11111111111111101111100111110111111111111101111111111110111111111101101101111111111110111111110111011111110111110101111101111111111111111111111111110111111111111111111110111111111110001111111111110111111111111111111111111111 +11111111111111111111111111101111111111101111101111111111111111111111111111111111111111111111111101111111111111111111101001100010101111111111111111111110111111101111111111111111110111110111111110111011111111111111101111101111 +10111111111111110111111011111011111111011111111110111111111111101111101110101111110111111111111111111011111111111111011111010111111111111111111111111111101111011111111111111110000011111111110010111111111111111111111111111111 +11101111111111111111110111111111001111110110111111111111111111111110111111110111101111111111110111111111110110111111111111111110111110111111011011111111111111111011111111111011111011111111010010111111010110110111111111111101 +01110101100001110101111001111110111111011100010111010110010011110011110111111101110100110001101101111111101111011111010111010111010111110111111111111101101100011101011101011011111110101010101011111111011111111111111111111011 +11101111101111110110111111001111101110001110111111111011101111111111110111111101110111111110111011111111011111100011101010111101101111110011111111101011111101111100111101111111111110110111111101101001111111110001111011111110 +11111101111011111101111101111110111010111111110111101111110101101111110101111011101111011101011101111011110111111001110111110111110111111111110101111110111011111101111000101111011111110111111110100001111111101111111101111111 +11111111111111111111111100111111101111111111111111111101110111111111111111111111111110101100111111111111110111011101011111111111011111111111111111110111110111111111111111011011111111011111011101011111111111101101101110111111 +11111101001101000010011011011111011111101111110111011111110101111111011101111010111111001111101101011111111111011111111111111101100101110101111111010110111110011111011111111110010111111110111111111111111110111111111110111011 +11111011100111111110111111101111111110111110101111111111101011111111110111111111111101111110111101101111110101111111111110111011011111111110101011111010111111111110111111111111101111111111011110111111100100111111111111111111 +11111111110101111101111111111110111111110111111111111110111010111010001111001111011111100111111111110110100101111111111011111111111111111111001111111111110111011111111001111011111111111011011111101110000111111111111011111111 +10111111111101101101111011111111111111111111110101111110111111111010111110111111111111101101111011101011010111111011111111000111110111111010111010101111111111001111111111001011111111111011111111111111111111111111001010111111 +11011111111101111111111111111111101111111111111110011111111111111011101111100111011111111011011111011111111110010001111101111111111111101011111110111111110111111111111111111111111111110111111110111101101111111010001011111111 +11111111111011111010111111111111111100110010111100101111111111111011111111111111111111111111010111111111111111111111101111111111111111111011011111111111111111110001110011111110111110001111111101101111111011110111111111111101 +11101110111001111111111111111111010100011111111111111111110110011111111111111111111111111111111111111111111011101111110110111111111111111111111011111011110101111111111111110111101111111111111101111111111111111111111111000111 +11111111111111111111010111101111111111110101111111101101101111111111111111111111011111111110110101111111111100111111101111101111101111111111111111111101011111111111111101111111111111111111111111111111111010101111111101101110 +11111111111100111111111111111101111111111111111100111111111101111111110111111111010111110111111010111111111011011101111101111110110110101110010011111111111111111111111111111110110100111111111111111111011111111111110101011111 +11111011111111111110111111101111111111111111111111111011111110111110101111110111111111111111111011011010011011111011111111111110111110101110111111111111111111111111111110111111111111111111111011111111111111111111101111111111 +10000111111111110111101011111001111001111011011111011100011110101111111111111111001110111100111111111010111110011110011000001110011111101111111111111111111110111011111111111111111111111111111011110111110111110011111111111111 +10100111110111101110011101011011010111110111000101101001111100111111101101111111111111101111111111111110100111110111111101111110111111110101101111111111111111111111111111111111111111111111110001011111111111111111111011111011 +11101011111100011111111011111111111110100111111101111101111110111111011110101111101100101100111011111010101010111010111111110011111110101111111110111111111111110110011100111101111111011101111111111111111111111001111111111011 +11011111001010111111111111111111111111111111111111111110111100111110110011110011110010110110111111011111111111111110011111111011101111111111111101111111111110110111111111101011111011111011111111111111111111111111111111111001 +11111111110001111111100011111111111011111111111111011010110010111111100011101111111111101111101011100011111111111111011111111111111110100111111111101101101111111111111111110111001101111110110101110111110100111111111111111111 +11111111011111100100011111111111111111110111111110011010010110111101111010111111111100111101011001011011111011111011110111111111010110101110111110101001111111111111111111111111101111100110100111101111100111101111101011111111 +10111111111100110101101011111101111111111111110111111011011101111111011001111011110111111111111011111011111010101011000111101111111111101110111101010111101011111111111111111111110101100111111011111111001111011111010011111111 +10111001110111110110111111010000111111111101111111111011111011111011011100010111110011101111111111111111111100111100111100111111111111101101110011111111010010100001111111110101110001111111111011111011111110111010111111111111 +11001111001111111111111101010010111111111111111111111111111111100111111111111111101111110111111111100111111111011111011111011111011111111111111111110111101111111111011111111110111111110111111111111111111111111111111111111111 +11111111110111111111110101001111111111101111111111111111011101111011111101111111111111101111100101111111111111111111111111100111100111110111111111111110111111111111100111111111101111111111111111000110111111111110111110111111 +11111111111111100101111111101111111000101111111111110111100110100111011110111111101010011110011011011011011001111111111111111101111101111101111110111111111111011010011110011111011111111111111111111101111101101101111101111111 +11111111111111011111011011111101100100011111111111111111111111111111111110111111111111011111011111011011011011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100111111111111111111 +11111111111111111111001111111111000111111111110111111111111111111111111101111111111110111101110111010111011101111101111101111111111111111111110111110111011011111111111111110111111111110111111111111111111101111111111111011111 +01111111111111111111010111111101111111111110101111111111111111110011111110110110111101100101011000001111111111111111111111111111111111111111111111111111111111111111111100001111001111111111111011111111111111111111101110101101 +11111111111101111101111111111111111111110011011111111011111111111111110111111111110001010001111101001111111111001111011111011111011111111111111111111101111101110111101101111011111111001111000111011111011111110111110101111101 +11110001110111110111111111111111111111011111111111111001111111111111111111111111101001111011111111101111101100111111111111111111111111111111111111111111111111111111111111111111111010111110111111111101101101111110111011111110 +11101001111111111111111111111111111111111111111111011001111111111111111111100111000111100111110111110110110100011110011110011111011111111111111011111001111001111001111111111111110110010110011110011110011111111111010011011001 +01000101100111110111111111111110111110011110011110011111111111101111111111111111111111111001111111111111111111111111111111110111111111110111111111111110111111111111111111111111111111111111111011111111110111111111111111111111 +11111110111101111111111101111111111111101111100101111111111101101111111011111111111111111111111111111111111111111111011110111111111111111111111111111111111111111111111110111111111111111111011111111111111111111111110111111111 +01111101101111011111111011111111111111111111111111111111101001111111111111111111111111111111111111111111111111111111111111111111111111111111111110111111111111111111111011111011101111111011111111111111111111111111011110101011 +10111111111111101111111111111111111111111111111111111111110111111011110110111111111011111111111111111111111111101111101111101101101111111111111111111110111111111111111111111111111111111111111111101101101111111111111101011111 +01111111110111111111111111111111111111101111101111101111111111111110011111111101111111110011111111111111111110111111001011111111111111111111111111110111111101111101001101111111011111000111010011111111111111111111111111111111 +11110110100110101111111111111111111111111111111111011111111111110001011011110111111110111111010111010111010111110111011111111001110001011001011101011111011111011101110111010101000100110111011111110101111101010001011101011111 +01110111111101011111010111010111010111100111111111111101110100011111111110111011111111111011001111111111111111111111111111111110110110111100111100111111101111111110110011111111110010101111111111111100111111111110110100111111 +10111111111111111110110011111111111111111111111111111001011101101111111110010111111111111101001111111111111011111111111111110110101110111011111011111111111111100111010011111111110111011111111111100101011111111111111111111111 +11111110011011101111111111111111111111111111111101111011111101111110111100110111111111101111111101111111111111111111110111110101011111111111111111110011110011111111111111111101111111111101101111111110110111111111001110111011 +11001111111111011111111111111111110111111111111111111111111111011111111101111111110101101111111111111111110101110111111101111101011111111111111111011111111111110111111111111100011100011100001101110111111111011111111111011111 +11111111100111111111111111110111110111111111111111101111111111110111010011101111001110111111111111111111101011111111110110111110111011101111111111111111110111111111111111111111111111111110111011111111110110101111111101110011 +10111111111111111111111111111110101111111111111111111111111111111001111101111101001011111111100111111111111111110111111011111111111111111111111111010111111111011011110101011111010111010011111111100101011000111111111111111111 +11111110110111110011111101111111111111111110111111111111111111111111111111111101011111111100011011011111110111001111111110111111111001101111111111101010111011011101111111111111111111101101111011101111101111010111111011111111 +01111110111011111111011111101010110111111111111111111111111111111101011111100011110111110110001111111111111111111111110111111111111111111111111011111111111110111111110110011111100111111111111101111111111110111011000111111110 +11111101111111111110111101111111111110111111101101111111111111111111111111111111111111010111111111100011111111111111100011110111111111111111111110111001101111001111111111110111001111111110011111011100111111111111101111101111 +10111111111111111111111111101011111111011111100011110111111111011111101101111111111110001101110111011100111111111011111110110111111011011111111111011111110100111111111111101111111111111010111110111110111111111111101111111111 +11111111111111101111100111111111111111111101111101111111111111111111111111111111110111111111111101011101111111101111111111110111111101111111111000111111101110011110101001100010111111011101111101011110111111111111101011111111 +11111011110111111111111111101111011111111111111011111111111111111111111100101110111110111101111001010111111001101111111111111111111111110111111111111111111110001001111111111111111111111111110111111111110111111111111111111111 +11111111111111110111111101101111111111110111111111111111111111101111111111111100111111011101111111111101101011011111111011111111111111111111111101111101111101011111011111111111111111111111111111111111111111111111111111111111 +11111101111111111111101101111111100110101111111111111111111111111111011111111111111011111110111111111111001111111111100110101111100101110101111100111110111111111110000100100011111111111111111111111111011110010011011101001111 +11001110111111001111111111111111111111111101111111111111111111111101111101110010111111111111110111111011001111111110011100111101110111110100010111100111110010110100111111111101111111110011111111111111111101111101101111111001 +11111111111111101111001111001111111111111111111111111111111111110111111110110011010110111110111111111111101111110101011111101111111111110100111100111101011111111101011010111001111111011111101011110111111111111101111111111111 +11110010011101110111111111111111101111011111111011110010010010111111111111111111111111011111111110111001111111100010110111010000111111111111111111111111111110011011011110011110001111111101111111101111111111111111111101111110 +11011111100111111111111111111110111110111111110011111111111111111111101011111111111011111111111110011111111011111111111110010000111111101111111111111110101010100011110110101110111111111110101110101011111111011011010011110111 +11110111101101110111011111011011011011101011111111101111011111011111101111111110011110111111111110111111111111111110111101000111111111001111111111111111111111111011111111110110111111000101101101101111101110011010101110111110 +11111011011011111110110110010110001010111110111011111110111101011101011111111011111111111011101111111111111111110011101100101111111100011111111111011111111111111111111101111011101111011111101111101111011111110111111111110101 +01111101111011101111111111101101011101111101111011111011011011111111110111010101011110101101100111111111111101111111101101111101001110111111111111111111111111011111000111111111010010111111000111110011111110111111111001101011 +11101100111101111111111111111011111011111011111010011111011011100110101010101100110101111101011111111110011111111111111111110011101011111111110111111111111111111111111110111111111111111111111111011101011001111111111011111111 +11111111011111111111011111111111111101111111101101111111111111011111011111111111111110111111111111111101111111111111111111011101111111111110100111111111111111111111111111111110110111111110111111111111011101011111011111011111 +01111111101111111111111111100111111111111001110111111111110101111111111111101111100111111111111111111111111110111111111111111111111101010011011011111110011111111010111111111101111101111101100101101011100111110111100111110110 +11011101011111001111111111101101110111110111111011111110110111011111011011011011011111111111100011111101111101111101111101101111110111110001111111111001111111111111111111111111111111111101101101111111101111111111110111111011 +11111111111111111111111111111111111111111111111111111111111111111111011011001111111111111111111111111111111111111111111100111111111111111111111111000101111111111111111111111111111111111011111101011111110111110111110111111111 +11111111111111110111111101111111111111111111111001111111111111111111011101111111111111111111111111111111111111111111011101111111110111111111111101101111111111101111111111011111110011111100111111110111111111001111111111110111 +11111011101011111011111111110110111111111010111111111111111111011101101011001111111011111111010111111001111111110111111110111111111111111111111101111111111101111111111111011111010101111111100101111111111101111101111101111111 +11111111011111011011000111000101011111110111111111111001110111110101011011111111011111001101011111011111011111111111111111111101111100011101111111111111101100111111111111111111111111110110111011111111111111111111111011111111 +11111111111111111111111111111111111111110111111111101111111111111111111101011111001110111111101101111110111111111110111111111111111011111111111111111111111111111111110111111111011111111110011011111001111001111001111001111111 +01111110111110011110011110011111011111111111111011011001100111110111111111111110111110001100011110011111011111111111111011111001011001111001111101111111111111101110001011111111111111111011111111111111111111111110011110011111 +01111111111110111111111111100010100010110111111101111111111111111001111110111111110101111111100011111111100111110111111111111110111111111111101111011111111111110110011111111111111111111111111111111101111111111111111111111111 +11111111011110111111011111010111010111111111111111101111111110111111111101111111111011111011111111010111111111101111111111111111111111111101111111111111111111100011111111111010111111111110111110101111111111111111111111111011 +11101111101111111111111111111110111110111110111111011111111111111111111011111111111011111011111111111111111111111111111110111111111111111111111011111010111011111111111111000101111111111111111101111111111111111111101111111111 +11111111111111111111111111111111111111111111111111111111111111111111110011111111110111101111111111111011111101011111111111111110111111111111111111110111111111111111111110111111111111101111111111111111111001101111101111111111 +00111101111111011111001011111111111111111011111111111011111000110111111111111111111110111110111111111011010011111111111111111111111111111101101111111111101111111111111111111111111100100111111101011111001111111101110110110101 +11010111000110110110111111111101111101001101011101011111011110111111110111010111010111110111111010111101011001011001011101011111011111101011110111110101110101110101111101111011101010111111111111111111001010011111011111110011 +10011111111111111101111111110100101011111111110011011110111101110111110011111011001111111111111011011111111110111111111111111011111111111111111111100010110011110101111111111111001111111111100011111111111111111111111110110111 +10110111100101111111111111111011111110111111111111111110011101111111101111101111011111101111111111111110010110111111101111111111101111111111111111010111110101010010000111001111011111111110001111111111111111111111111101111111 +11110111111011111111110111010111110011111111111111111111011111111011111111111111111111110111011111111111111111011110111111101111111111111111111011111101111111111110101111111111111111110100011111011011111111111111111111110101 +11110001110111010111111111111110111110011110000111111111111111110111111101111111110111011111111101111110110111101111111111010111111111111111111011111111111111111111111001101111111111110111111111110010111111111111111111110110 +11011111011111111011111101111111111110111101111111111111101111111001111111101101100011111101111111111111011111111111111111011111111111101111111101111111111111111111111111111111001111011111111110000110111111111111111111111111 +11110110110111011110011111010111111111101111101111111111111100111101111111101111011111110111111111011011111111111110111111101111010111011111111111111111111110111111111111111111110111011111111101010011111111001111111111111101 +11111111111100111100111110011111111011010111111101111111111011111011111111111111110111101111101110011111111111111111101010111111011111111111111111111111101111111111111011111111101011111111111010011111111100001111111110111111 +11111111011110101111111110111101010011011111111011100111111111111011110101101101110111111101111111101111111001111111111111111111111111110111111110111111011111111111111111111111111111110100111111111111001010111111110111111111 +11111111111111111011100011110010100011110111101111111111111111111011101111111111111111011111111111110011110101110011011110111110111011011111001111001111101111111111111010111000111111111110111111111111110011111110010011111111 +11111111111111111110111110011111111111111110110111110111111111111101111111011111111011111111111101111111111111111111110110110111110111100101111101111111111110111111111111101111111111110111111111111111111111111110110111111111 +11111111111111011011011111111100111110111111110100111101111111111111111111111011110111111111111111111011111110011111111110101111110111111111111111110111110111110111111111111111111111111111111111101010011111110101111111111110 +11111111111111111101101111110111110011110111110111111111111111001111111011001111011111001110111111111101110110101111010111111011011111111111111011011111111111111011111111111111111111111111111101111111111111011101111111111010 +11011111011111111111110110111111111111111111101011111011111011111111111111111111111111100111110111101111101111111111111011111111001111111111111111111111111111101111111111111111111111111111111111111111101110111101111101011011 +11111111011111111111111011111111111100111111111100111111110111111111110011111111111111010011111111011001111111001100111011111111111111111010110111110111110111111111110011101011111001011111011111111111001111111111111111110011 +11010100011001110101111111111100101111111111110011010111111111011101011001111011111011111111110101010011111111100111111111111111111111110111110011011110110001011111001010011111011101111111110111111111111001111111111101101010 +11110001001111101101111111011111111111111111111110011111001010111101111001110011011111111011111101110100011111101111111010101011101001000111001011111111111111111111110111111111111111111111111100101101100111011101101111010111 +10011011111111011011110110111111100111111111111111111111111110011011001111001111111110101111101110101111111101111100111110110111100011110111011011111110111111111111001111111111111111111111111101111111111010101111100111111111 +11111011111110001001111111101101001101101011101111011111111111101011011111111100111110110111111100111111011111111111110111111111101111110110111110100111101110110111111110111010111011111011111111111111111111111111101111111111 +11111110011011111111111101111110111000111111111011111011111011101011111111100101100001100101101101101110101110001110111101111110101011111011110001101111110001111111111111101110111111001111111111111111111111111110111110111111 +11010011001011101111111011111111110110111001010111110101111101111011111111101111111111011111011111011111110111110111111111111101111111110100101001111111101111011111111011011111111100111110010111111111111111110101011110111010 +11001111010111111111100011111111110110110111101100100101100101111111110101111111111110101010110110111111111111111111111011101011101111110101110111101010000010110111010110111111100000010101111100111111111111111011111110000110 +01111111111111101000111111111111111111111111111111111111111111110111111111011011111101011101111111111111111111111111111111111001111111110111111111111111111111111111011010011111011011111011101111110111111111101111111111111111 +11011111111101010001111111111110111111111111111111111111111111111111100111110111010111111111111111111111111111111111111110011111111111111111111111011111111111110110111110011101111111111110011011111001111001111011111111111111 +11111111010111110111111111100010111111111111011111011111011011111010101111011101111101101101110101101111111111111111110111110111110110101111111110111101111001101101101101111101111111001111100111000111100111110110111111111111 +11111101111101101111110110101101111111011111011111111111001111111111111111111101111101101101111110111111111111111111111111111111111111110111111111111111111111111100111111111111111111111111110111111111111111110011111111111111 +11111111111100111111111110011011111111011101111111111111111111111111110111111101111011111101110111111111111111111111111111111111111111110111111111111111111111110111111111111111111111111111101111111101111111110101111101111111 +11111111111101111111110111111111111001010111111101111111111111111111111111111010111010111111111110111101111111111101111011111011111010111011111111111111111011111010111100111111111111001111001011000010000111110111110111011100 +11110110111111111111111111111111001111011111111111111111111111011111011111111111111111101111111101111101111110011110011110010111010011111111111011111011111111101100111111111100110101111101111101010111111111111111110111110111 +11001101011111111111111111111101011111111111000111111111111111111111111101111111111111111111111111111111111011111011111111011111111111101111111011101111111111111111101101110011101111111111110010111111111111100111011111111111 +10111111111111111111111111111111111111111101000111111111111111111110011110011111011111111110111011111001010001111001111101111101111101001111000111100111100111111111111111110001111001111001111101111011111001001111100111100111 +00011110011111111111111011111001111001110100111111111110101111111111111111111111100111110111111111111111111111111110011111101111011111111111111111111110111111111111111111111111111111001111111111111111001011111111111011111111 +11110111110011110111111111111111111110011111111111110111111111111111011111111111111111111111111111111011111111111111011111011111011111111111101111110111111111111011111111111111111001111111111111111111011111111111110111111111 +11111111110111111111111011111111111111111111111110101111111111111110111111111111111111111111111111111111111111111111111111111111111110111111111111111111111111111111111111111011101111111111111011111011111011111010111111111111 +11111110111110011111101111011111111111111111111111011111111111011111111111101101101111111011111111111111111111101110111111101101111101111101111111111110111111111111111111111111111111111111100111111111111111110101111111111111 +11111111111111111111011111111110111110111110111111111111011001101111111110001111111110111111111111111111111101111111111111101111101111101111110011111110110010111110111101111110111111101111111011111111111111011111111111111111 +11111111111111111111111111111111111111111111101111111111011101111111110111110111111100011101011101011110011110111111110111010100110101100101101101111101101111001101010101010110011101111111010111110001010101110100111101111111 +11101101101101011101011101011111011111111111110111110101111001111111101111111111111011111111111110111110101111111110111110111111111111111111111101111011111110111011101111111111111111101111110011110111101111111111111111111111 +11111101111111111100111111111111111111111111111001111101110111111001011111111101101111111111111111111111111100011111111111111011111011111111110111111111111111111111111011111111101111111110001111101111111111111011111111111011 +11111011111111111011111111111111111111111110011111111111111111110001011111111110111111111011111111111111111111010111101011111110111111110011111111111111111101110111011101111111111111111111110111010111111111111111111111111111 +11111111111111111111111111111011111111111111111111111111011111111111111111110000111111111111010111111111100111111101111111110101111101111111011111011111011111110111110101110101111101100101111111111111111101011101011101011111 +01111111111111111111111111111111111111111111111111111111111001011110111110001111111111110110111111111111111111111111111110110111111111111111011101011110111101111101111001111111111011011111011011011110101011111011111110111101 +11111010110111111111111111011111111111111111111111111111100101110111111111011111111111001111111111111111111111111111111111111101011110111101110111110111110111110101111101110111111011011111011101110111111101011111110011111111 +11011111011101111111111111111101011111111111111111111101111111111111111111111111111010111111111111011111111111111111110111111101111111111111101111101111101110111111111111111110111110101110111110111101111110101110101111111111 +00111111111111101101010011011111111110101111111111111011111101111111111111011111011111111111111111111111111111111111111111111111111111110111111111101000101100011100011100011111011101111111110011111001101111011111111111111101 +11111111111111111111011111101111111111101111011111111111111111111111111111111111011011111110101111111111111110001110001111111111001110100101111111111100111100011100011000011010111011111011111110011111111011111011111111111111 +11110011111111100011111111111110111111001111101111111111111110111111111111111111111111111101101111111101101111111111111111111110111111111100110110110111110111110111111011111011111011011111111111111111111011111011111101111110 +11011111111011101111111111111011101101111101111011111111111111111111111111111111111111110010111111111110111111111111111111101111111111110010111110011111111111101101101011101001101011111001111111111110101110100011111111011111 +11111110111100101111110100100111111111110011110111111111111111111111111111111111111111110111111111100110111111111111111111111111111111100011111011111101111101011101011101011111011111111111110111110101110101110011101100111101 +10110101110111111111111111111111111111011111111111010111111111111111111111110111111111111111111110011001111111111111111111111101111111110111111111111111111101111111111111111111111111111111111111111111111111111111111111111011 +11101111111111101111111011111111101011111111111111111110111111111110111111111111111111111111111110111111111100011111111111110111110111011111110011101011111111111111011111011111011111111111111111111101111111111111110111001111 +11111101111101111111111101111100110100101110010100110111110111011111111111011111101011111111011100111111011001001111110111011111011011111111111110011111111110011100101100101111101111111111110011110010111010111011111111111111 +11101011101001111111111100111111010111110111011011111101111010011111111011111111001111101111111110111111010011101110111111111111011111111110111111111111110111110101101101101110101110011110010110010110010110111110111010111101 +10011111110110111111111000111111110101111011010001010011011111011111111111111111111101111111111111111101111111011101101011111111111111111111101111111111011111110101111001101111101111011111010111010111010110110110111111111001 +10110101010111111111111011111111111011000010011111001111111110101111101111111111101111111111111111111111101111111101111111111111111111111101111011111111111111111011011111010111010011000010101110110101101101001101001001101011 +11111111000101110111001111111111111110101011110110000100111101111101111011111011111111111111110111111111111111110110111111110110111111111111111111101110111111110011111111111110111101111101111111111111111111111111110111111111 +11111110111001011011110111111111111111111111101110101111101111111111011111101110111111111110111111111110111111111110111111100100111111011101111111110111111111111111111111101101111111111111111111111111111111111111111101111111 +11110110011100011001111101110111011111100101101101111111101101111111010111110111111111110110011110111111111111101111101010010101111111111111111110111101111111110111111110101101101011111011110111110110010110100110100110101111 +11110101110101100110111110111111111100011001010111011111010110111010100010111101111100111111111111111011111111001111011110011111111111001110011110011111111111111111111111111111011111101100111100111101111101111101110001110011 +01001111001111011101110111110011110011110111111111111101111110011111011010011111111011111111111111111111111111110111111111111111111001110111111111111111111111011111111011111011111101111111111111111100111100111100101100111111 +10111111111111001111001000111111101111111111110011010111111110110110111110011101011111111111111011011111111011111011111111111111001001111111111001111101111101111111110111110111100101110100111100101111101111011111010011010010 +01001011011111111111110111010111010010111011111111011101111101111001111101111101111111001110100111110110110111010111111111111111000111111101101111111111111111111111111111111111110111110011111111010110010110110110011110111101 +01110101110101100101100110110111111101011101011011111110111101111101111111111111111111111111111111110011111111111111111111111111101111111100010111111111111111111111111111111101101101111111111110110101110111110111011011111011 +11101101101101101101110111101110111011011011011111111111111011111101111111111111111111111111111111011101111111111101111101111111111111111011111111111010101111111101111011011111011111110111110110111110110101101101101001101011 +10101111101101011101011011011010111011111011010111110111111010110111101100101111111101010101001111000011111110011111110111111101111101111101111111110111111111111100010101111111111111110111110111110111110111110111111111111111 +11100101111101110101111101111110011111011111011101011101011111110111101101100101110101011100111100011111011111111111111010110111110111111111111110110011111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111110111111110111110111100111110111111110111111011111010110010111111111111111111101111101011111111111111111111111110011111111111011111111101111111111111101111100111000111000111100111110111110100 +11010001010100010100011100011101111101010111110010011111011111011111111011110001010000010001111101111101111001101101000111100111100011110111111111111110111011011111111111001011011111111111111111111111111111111111111111111111 +11111111101111111111111111111110111110111110111111111011111011110111111110111111011111101111101011101011001111111011111111111001111101111001110111111111000001111111111101011111111111111111111111111111111111110101111101111111 +11111101011101011101001101001101001101111111110111011010011101111111111111111111111101011101010101011111111111111111100111110111111111111111111111111111111111111111100011111111111101111101111111111111111111111111101111101010 +10101011101011111010011010011010011010101010101010111001111110111110111010011111111111111111001011111010111010101010111110101111111111111101110111111111111111111100110111111111111111111111111011111011111011111111111111111111 +11111111111111111101111101111111111111111111110111100111011111011111011111111111111111111111111111110101110101110111111101111111111110011011111111111110011111101101111111111100111111111111101111110100111111110110111111111111 +11111111111111101100101101111111011111111111110111111110011001111011111111011111111111111011101111101111001111111111110111101110111111110110111111111111111111111111111111110010101111110101111101111110111111011101010101010110 +01011111011111011011110111110101110101110001111101110111011011001100011101011110011111111011110110110101100101110101101101111110111111010111010111010111010111111001111010111110111111111011111101111111111111101111111111111011 +00110110011111110111010011101111111010011011011111110110110101111100101100011101111011111110110011111111101001111111111101111111111111101111111111001011111111111111111101111111111110001101111111111111111111101111111111111111 +01111111111111111011010111111110011111111111111101111101111011111011111111111111111111101111101011111100111111111111110101110111111111111111111111011111101111111111111101111111011000111111111011110111101111111111111111110111 +11111111101011111111111111111111011111111111111111111111111101111111111101111101111101111101111111101111111111111111110111111111110111101111111111111111111110111111111101111111011101111111111011111111111111111111011111111111 +11111111010101111110111111111101111101011111011101001111111001111111110100000101110111110110111100111111011111010101111111011010111111111011111111011111111111111111111111111111001111111111100111111111111111111111111111111111 +11111111011011111111101110110111011010111111101101111101111110110111111101001111111011111111101111101111101111111111111111111111111110111111111111111111111111111111011111111111111111111000001111111111111111111111110111111111 +11110111111101111101011101101101111101111111110110110011111101101101111101111110111111111101111111111111110111001111111110101101111111111111111111111111110111111011111111111111111111110001111111111110111111111111111111111111 +11111111111011111011111111111111111101100111101111101111101111111111111101111111101010111111111111111111111111111111111111101111101111101111111110111111111111011111111111111111111111111111111111010110111111111111111101111111 +11111111111111111111100111100110101101111101001111111110111111011111110111111111110011111100111111101111111111011111101101111111110101111011011111111011111111111111111111111111110111111111111010101111111111101111111100111110 +11110110111111111111111011111011100011110111111111111101111100111100111101111111111111111111111011111111001011111111101011111111011100111010011100111111111111111111111111111111111111111111111101111111111111011110111111111111 +11110111111111111111111111111111100111111011110110111111110011111101111011001011011011111110111111011111111111111111101111111111110111111111111011111111111011011111111111111111111111111111111111111111110000101111111111111111 +11111111111101111111111111111011111111001011111111011011110011110111001011110111111111011111111111111111111111111111111011011111011110111111101011111100011111111111111111111111111111111111111111111111011001111111110111111111 +11111011111111111111111101011011011111111111111111111001111111111101111101011111101111111111111111111111111111111011110101101111011001111111111101111111101111101111110111111111111111111111011111111111010111111111100011111111 +01111111111111111111110110111110111111101110101111101011111111111111111111111110110111110111111111111111011110111111111111111111101111111111111111111111111110111110111111111111110111101111111111111111111111010100001111111011 +01111111111111111110011111110111111111111111111111110011110011000011011111011101001111111111111111111111111111000111111111111111110011111110011111111111011111111111111001100101001101111111111101111100111111110101011111110110 +11111111111110110011110010111111111111111111111110011111011101111011111011101111000101111111111111011111111011111101011111111011011111111110011011111111001111111111110101111111111110011111010111111111111111110110101111110100 +11111111111111111101111111111111101011111001101011101011101010101111111110101011101100111101010011111111111010101111111111111111111111111110101111111001101111111110011000111111110111111111100111111111110111110101111100000011 +11101111111111111011111111111111111111111011111111111111111111111111110111111111101111111010110111111111100111111111111111111111111111111111111101111111111111111110110111111111111110111111111011111111111111111111111101101111 +01111001101111111110111110110111111110101111111010101111101101111111111011010010110111100101101111111101101111101101111101111111111111011110111110011111111101101101101111000101101011101111011111111111111111111110111101111111 +01001110101111111111110011101111110101101111111101101111101111011111010110010110111110101110111010101011111100010111111011101110101010111111111111111111111110101110111101111001111111111011111111111011111111111111111111111111 +00101011111111011111111111100101100101011101111111101111101110111110111111101110101101010101001001011111111111111011011111010110010111111111111111111111111111111111111101010001111111111111111111111101111111111110101111101101 +10111111111110001111111100011111011110111111010111111101100111110111111111111110101001011011010001010110111110100111111110110101111111101111101011011111011111111011110001010011010111110001110111101111111111111100111101011111 +11111100100101101111111111111111111111111111111111111111011101111101110001110101111001110110101110101111111111111110110111111010111111111111111111111111101101101101111101101110111111101111111011111011111111111111111111111111 +11111111010011111111111011111111111111111111111111111111111111111111011101011111011111111001111101111111111111101101111111100111111111111111011111111011011101111001111001111101111111101111111101110111101111111111111111111110 +11111111011111111111001011111011111101111101111101111111111111110111110111110111110110010111011011111010111000010011011100011111111011110111110111110111100110110110111110110100111110011111011010011011011111011111111111111101 +11110111111111111011000111011101111111111111111111111111111111111111110111110111110110111111111111011111011111011111111111111111101101111111111111111111111011111011111111111111111111001111001111011001111111111111111111111111 +11111111111111111111111111101100111111111111111111111111111111110111101111101111110111011111011101111111111111011111111111111111111111111111111111111111111101111111111111111111111111011101110110111111111111110111111111111111 +11111101111111111111111111100010111111111110101111111111111111111111111111111111111111111111111110110111111100001100001111111011001011111111110101111010011111110010111111111110111101101101001001111111101111111111011011110111 +11011111111111111111111100001111111111110101111111111100111101111101111101111111111111111111110111110111110001010001001111001011001111101111000110010111111111110111110111111101110011100001001101011111111111011111001111011111 +01111111111111111111110101111111111110101111111111111010111111111111111111111011111111111111111111111111101001111111011111111100111110101111111111111100111111101111111111001011111111011011111111011110111111111101111111111111 +11111111111111111111111111111111110010011111111111010111111001011001111101111111111111101111100111100111000111111001100101110100110100101110101110100111111111011111100101000111100111110111111111110100110100011110011110011111 +01111111111111101111100111100111000111111111111011111111111010011111011111111111011111111111111011111101111001111001111101111111101111101111110111111010011011111111111111111111111110101111111100111111111111111111111011111111 +11011111111111111111111111111001111111111111011011111111111111111011110111111111111111111111111111111111111111111111111110110111110111011110110011010011101010111111110111111111110111111111111111111111111110011111110111111111 +11111111111111111111111111111111111111111001101111111111111111101111111111111111111111111111111101111111111111111111111101101111101111001010000111000111001010111101111111111111101111111111111011101111101011111011111111111110 +11111011111101111111111111111111111111111001111111111100111111111100111110111111111111111111111011111011111011111011111111111111011111010111011111011001111111111111111011111110111011111111010111111111010111110111111111111111 +11111111111111111111111011111011111011111111111111100001111111111011111111111111111111111111101111110101110101110101111111111111111111111111111011111111111111110110110111110111111111111111111110101111111111111110111011011111 +11111111101111101111110011101111111111111111111100011111111111111111111111110101010101110101111001111111111111001011010100000111010111110111111011111001101101011101011101111111111111011111010111010111010111010111011111101101 +11110101110100110101110101111111111101011111010101110111011110001111111111110111111111110111111111111111111101001111001111111111001111110111101111111100111111111100111110111111111111001111001111111111111111011101101111011111 +11111110110011111111111111111011111111111111111111111111100011011111111111110111111101110111111111111111111101011111011111110011111111111111101111111101111110111101111011011110111101111111001111111111101111111101111111111111 +10111111001111111011111111111111101111111111111111111111100001101111011011111111111111111110111101111100111111110111110111011111111111111100100111011111111011111011111111111101111011011111111111111110111101111111111111111110 +11111101111111111111111111111111111111111111111111111111011111111111011111111111110100011111111111111111111111111111110111010111110001110001111100111111101100011111111111111110110110010111110111111111110101100101111101110111 +01110110111101111111011111111111111111111111111110111111111111110010101111111111111111111111111111101111111111111111111111101111011110111011111111111101110111111111011111101111111011110111100011111111101110111111110111010111 +11111110111011111111111111110110111111111111111111111111111011110010111111111000011111111111111101101111111111111101111011110111111110011011011111011111110111111111111111110111111111111111011111011111111111111111011110010110 +00111011111101111100111101111111110111110111110111111111111111110111111111000011111111111101111111111111111111111111111111111111101110111110001110011111111011111111001001111111111111011011011111011111111111111010111110111000 +10111110111110101111101110101111011111111111111111111100110111111111111100011011111111111111111111111111111111111111111111111111011111111111111011111001111001101111111111101011111111111110111111111001111111111111111111110011 +11001111111111110111111110011111111111111111111111110111111111111110111111111011110100001111111111111110111111111111111100111111111111101111111111110011100011111101111111111111111111111111010111101111111110011111100011111111 +11110011001111110111111001111111011010111111111111111111111011111111111101111111110100001111111111110111111111111111111111111111111101111111111110011111111111111111110111111111111111011011111111111111111111111110111111110111 +11111101111111111011011111111111111111111111000111111111111111111111111111111111011011111111111011111111111111111111111111111111111111111001111111111110011100101110101110101101111111111111111111111010111111101111111110111111 +11110111111011111011111111011111111111111111111110111111111111111111111111111111011111111110000111111111111111111111111111111111111111111111111111110111010111110111111111111111111111011101011111011111111110111111111111111111 +11111010010111111111111011111001101101111111101111111111111111111111111111111111111111111010100111111111111111111111111111111111111111111111111110111111011111111111111111111011111011111101111011111111111010101111111111111111 +11111111111001111110111011110001101111111111111111011111111111111011111111111111111111111101111111110000110011111001011111111111011111111110101111100001001111111100111100111100111111110010111111101111101111011110111111100111 +11110111111111010111110011011111111111011111011110011111011110101111100111001111111101110111111111101001011101011101111011001001110101111001111100101111111111110111111111110011111110110111111101101101111111111111111100111111 +11111111111011111111111111111111111011111111111101111001111001111111101101111111111111101011111100110110101011010101001111111111111111011101111111111111101110011110011010111010111110101111111111011111110011111111111111111111 +11111111010011010011111111010101111101110101001101001100111110011111111111111111111111111111110101110101111100111111111111111010111110111111111111111111111111111111111111011111111111111111111111111111011110111111111011111111 +11111111001111111111101110101101111111111101111101101010110010111111111111111111111111111111111111111111100000001111111111111111011111101011011111101111101111110111111111101011101011111011111111110100111101111101111011111011 +11111111111111111101111101011111111111011011111111111000010001010111101111111101101101011111111110111110100001111011010011111111111110111110111011111111111111111111111101011011011011111011110110100101111111100110101001011111 +11110101111111111111111110111110111010011111111110011010010111111101101010101011101011111111111011111111001011111011001011111111110101011101111111111001101011011111111111111011111011101011111101111111111111011111110111111111 +11111111111111111111111111010111111110111111111111110111111101011111111101011111011111111011010110011111011110100001111111111111101011111011110101011111010111110011111111111111111000111111111111111111111010111011111111111110 +11111111111111111111111111111111100001111101111101111111101101011111110111110111111110100110101111111001111101011110111111111101111111111111111111111111111111111111011111111110110111010111011111011110111011011111111111011011 +11111110111111111111111111111111011111111111101111111111111111101110111110111111111111111111111111011111011111111111111111100001111111111111111111111111111111101111111111100111111111111111010111110111110111111110111110011111 +11111111111111111110111110111111111111111111111011111011011001111011111111111101111111111111101111111111111111111111111101100111111111100111111111111011111111011111011110011111011111111001111101111101001101101101111101111111 +10111110111111011101111101111111101111111111110111110111000111110111011111110111111111011111011111011111011011111111111110011111111110011111111111111111111111111111111111111111011111111011111111111101111101101111111111111111 +11111111111111101111111111111111111111111111111011111111110111111111111111011111011111011111111111111111011011111111111111111111110011011111111111111111111111111111110111111111110111111101111001111101111101111111110111011111 +01111111111111111111111111011111011111111111111111111111110111111111111111111111111101111111111111110111111111111111111011111111110111111111111011111111111111111101111111111111011111111111110011111111111111111111111110111111 +11111101111110000111111010101111111101011101011101011111011110110010011110110100110101110101111001111111111111111111111111111110011111111111001011111111110111110111111011111111111111011111011111011111011111111111111110111101 +10110001110001010001001001111111111100011101111101010110110111010111010111110001010111010101111111111111111111011111011111001101111111111001101111111111111111111111111111111111111111111101111111111111111111111111111111111111 +11101111111111011011111101111111111010111111111111111111111111101011111011001111101111111011101111111111111111111111111110111111111111110111111111111100111111110111111111111110111110011110011110011111011111111111111011111001 +01101001110001110001100101110101010111001001111101111111111101101111000101000111100111110111110111110110111110011110000100010111011111111111111011101110111111111111111111111111111111111111100111111111111111110111111111111111 +11111111111100111000111001101000111011111111011111011111111111111011111111111111111000111110101111101111111111110100111110111111100011111111111101011111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111110110110100111100111111111110011111101011111111011111101111110111111101111111110101011111111111111111011111111111111101110101111111111100111111111110001111111111111111111111111111111111111111111111111111111111011111 +11111111110000111000110011101111101110101111100011111101111111111010111111101111111111101111101011101111101110111111111111111111111111111111101111111111110111111111111111111111111111101111101111101111101111111111111111111110 +11111011101011110011011111011110010111011110011010111111111111110111111001111111111111110111110111111111011111111111111111101111101111111111011111111110000011011111111011111111110111111110111111111111111111110011111111111101 +11110100100110111111111111101101111111111111010011110111111111111111111111110110111111111110101110111111111111111111111110111111111111111111111110111111111111111111000011111111010111100111111111111101111101011100011101011011 +01101111101111011101000111010011010111110111010111111101110100110101111101111111111111010111010111010111010110110111101111111101110101011101011101011111111111001010001101111111111110111111111111111111111111111000111011111111 +11111101101111001111111010001111111111111111111111101111111011111111111100111111111110111011111110101111001110111111111111111111111110111111111111111111111111110101111111111000110111111111111111111110111111111110111111111111 +11111111111111001111111110101111111111111111111111111111011110111011111111111111111111111111111111111111111110111111110011111111111110111111111111111111111101110111111111100111111111111111111111111111111111111111011111011010 +01111111110111111111111111111111111111011111110111111111011111111101111111111111111111111111111111111111111110111111111111111111111111011011111011101111111111110111111100101111111111111111111111111110111111111111111110111111 +00011111111111101111110111100001101110101111111111011111101111111101010111111111111111111111111111111111110111111101111111111111111111111111111111111111111111111101111000111111111000011111111111111111111111101111111111111110 +11111111101111011111101111011011111111111111111111111111111111110100101111111110111111111111111111111111111111111111111111111011111111111111111011111011011101111111111111111111100100101111111111111111111111111111111111011111 +11111111101111110011111111111111111111111111111111111111111101110111011101111111111111111111111111111111101111111111110111111111111111011111111111111111110111111111111111111111111001111111110011111111110110111111111111111111 +11110111111110111111111111111111111111111111111111111111111111111111011111110001111111110111110111111111110111111111111111111111111111011111111111111111111111101101111101111111101111111111010011111111111111111111111111111110 +11111111011111111111111111111111111011111011111111111111011111111111111111011111111011111111111111111110111111111111111111111111111111101111101111111011111111111011111111011111111111110010101111111111111111111011111111111110 +11111111111111111100110111011111111111111111110011110011010011110010011111111110111111001101111100111101111111111111111111110011111111110011111111101111111111111111111111111111111111110110111111111100111111111111111111111111 +11111111111111111111111111111101111111111110011111011111011111101111101111101111111111101111101111111101111101111111111110011111111111111111111111110111111111111111111111111111111111111011111111100101111111111111111111111111 +11111111111111111111111111010111111111111110111111101111001101111001111111110111111111111111111111111111110111111111111111111111111101111100101111011111111111011111111111111111111111111111111100011111111111101111111111110111 +11111111111111111111111111111111111111011111111111111111111111111111111111110111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111110011111111110101111111101111111 +11111111111111111111111111111111111111111111111111111111111111110111111111101111111111111111111111101111111111111111111111111111111111111111011111101111111111111111111111111111111111111111111111111111100001111111111111111111 +11111111111111111111011111111111011110101111111110101101111111111101111101111111111010111111111111111110011111111111100111111101001111111111111111111111111111110111111111110111110111110111101011111111101101111101011011111111 +11111111011111111111111011111001000101110101111101101111111111101111010111010110100110111111110011001111111111011100110111111111111111111111100111111111111111111111111110111011111111111110011011111011111010111011001111111110 +11111111111111111111111111111101111111111101011111111111111111111111111111111011111011111001111111111110111111011111111101111111111111111111111111111111111111111111111111011111001011111111110111111111010111110000101111111111 +11111111111111111111111111111111111111111110111111111111111111111111111111011111011111111011111111111011111110111111111111111111111111111111111111111111111111111111111111111111011111101110101111111111111111111100111111111000 +11111111111111111011111111111111111111111111111111101101111101001111111111111110111110111110111100110111011110111011011111101111101111111111111111111111111110111111111110111111111101111111011011111111111011110111111101001110 +11111111111111111111111111111111111111111111111110111011101000111111111011111111111111111111111111101111010101100110111011111101111111111111111111111111111111111111111111111111101111111111101111101111111111111111111101110010 +11111011111111111111111111110111111111111111111101111111010111011111110111111111011110101110101111111101101111011101111011111111111111011111011111111111111111111111100111111111100101111101110111010111111110111111110100110111 +11110000111111111111111101111111111111001111111111001111110111101110101111111111110101001101011100011111001110111001010111111111110111110111111111111111111111110101001111111111011111111110010110111101000111101101111100111111 +11011110111111111111111111111111111111111111111111111111101111111111111111111111111010111010111110111101111111101111101011111111111111111111111111111111111111111110111111111111111111111111111111111111111111111111111111111111 +01001111111101101111111111111111111111111011111111111111111111101111100111101111100111110111111111111110111110011110011111111111111111101111111111111111111111110111111111111110111111111111111111111111111111111111111011111111 +01111111111000111011111111110110110111110111111111111111111111011100011111011111011111101111111011110001110001111001111110111111111111011111011011011111011111111111111110111001111101101101111101111111111110111111110111110111 +11111111100101011111111111110111111111111111111111111111111111111111111111111111111111111101111101111111111111111111110111110111111111111111011011111111111111111111111111111111111101111111111111111111111111111111111111111111 +11111111100111111111110111101111111111111111111101111111111111111111110111111111110111110111111111111111111111111111111111011111111111111111010111111111111111111111111111111111111101011111111111111111111111111111111111111101 +11111111111111111110001111111111111011111111111111110111111101111101111101011111111111111111110101110001110000100001111101111111111111001101111111101111111111111111111111011111110001111110111111111111111111111111111111011111 +11111111111111110100111111111111110111111111111011110111110111110111111111111111111111011111011111011111000101111111111111111101111101110111111111011111111111001111011111111111011111111111111111111101111101111101111101111111 +11111111111111011011111111111010111111111111101111111111111111111111111111111111111111111111111111111101100111111101110001110111111111111111111111111111101110111111111111111110111111111110111110111011111111111111111011111111 +11111111111111111111111111010111111111111111011111100111100111110111111111111110111110011110011110011111100110110111010011111010111010011010011011111111111100011110011110011111011111111110111011111001111001111001111101111111 +11111110111110011110011110001111111111101111111111111110111101111101111111111111111111111111110111111111110111110111111111111110111110011111011101111111111111111111111011110111110111110111111111111111111111101111011111111111 +01111111111111101111111111111111111101111111111111111101101111111111111111111111111111111110111111111111111111111011011111011111111111101011101010101101111111111111110110111101111111111111111111111011111111111011111111111111 +11111111111111111111111111111111100111101111111110110111111111111111111111110111111111111111111111111111111111110110011110111100111100011100101000011011110111111011111111111111111111111111011110111111101111111111111011111111 +11111111111111111111111111111111111111111111110101111111111111111011111111111111111111101111101111101111101111111111111111111101111101111011111101111111111111110111101111001111101111111011111111111111111111111111111110111111 +11111111111111101111101111101111111111111110000100111111111111111111111111111111111111111110111111111111111111111110111111111111111111111111111111111111011111111111111111111111111111111111111111111111111111111111111111111101 +10101111101111001111111111111111111111110011111111111111111111111011010111010111010111110111111111110101111100011101011101011110011111111111110111110101110101110111111111111001111101011101011100011111011111111111110111110101 +11010111010111110111111111111101111101010111111111111001111111111111111111111111011111111111110111011011110001111010111100111111111111111110100011110011010111111111111111111010111111111111111100111111111111111111111111111111 +11111110100111111111111111111010111110111111111110001101111111111111111111111111101111111111111011111111111011111111111001111111110111111101011111011011101111111111111111110111011110111111111111111111111111111111111111111111 +11111111101111111111111100111111111111111111110111100111111101101111111101111111111111111111110111111111111110011111111111111101111101111110111110111111111111111111111111110101111111111110111111111111111100111111111111111111 +11111111101111111110111110111101111111111011111001110111111100111101111111111111111111111111111111111111111011111011111110111111111111110111111111111101111111111111111110111111111111111111111011111111111111111111111111111111 +11111111101111111111111111111111111111111111111111111111001001111111111111111111111011111111111111111111011111111111111111111111111111111111111111010101111110111111111110111111111111101111111111111111111111111111111111111111 +11111111111111111111101111111111111111111111111111111111110011111111100011111111111111111111111110111010011011111111111011111101111111111111111101110111111111111111111111111111111101101111111011111111111001111100111101111101 +10101111111111110101011111111111111011111111111111111111011111111000000111111111111111101111111111111011111111111111110011110010111111111111111110111111111111001111111111111111100111111110111111111111110111111011111111111110 +11111100111111111101111111011111011111111111111111111111111111110010001111111111111111111101111111111111111111111111011101111111111111111111111111111111111101111111111110111111111111111111110111111111111111111111111111111111 +11011111111111111111111111111111111111111111111111111111111111110111111011110000111111111110111111111111111111111111111111111111111111111111111111111111110111110111111111111111111111111100111111111111111111111111111011111111 +11111111111111111111111111011111111111111111111111111111111111111111011111000010111111111111111111111111111110111111111111111111111111111111111111111111111111111111111111111110111101111111111111111111111111111111111111111111 +11111111111111111111111111111111111011111111111111111111111111111011111110111111111111101111110111111111111111111111111110111111111111111111111111111111011111111111101111111111111111111111111111111111101101111111111011111011 +11101111101111111111111111101111101111111111111111111111111111111111111101111111111001101101111111111111111111111111111111111111111111001111111111111111111111111111111111111111111111111111111111111011111111111111011111000111 +00111111011111101111110111111111111111111111111011011011111011111111111111111111101001011111111111111111111111111111111111011111111101111111111111111111111111111111111101111111111111111111101101111111111111011101111111111111 +11111111111110111111101111111111111111111111011110111111111111111111111111111111001110111101110011111111111110011110011110111111011111111111111011101001111011111011111100011111111111101111101111101001111111111111111011111001 +11100111100111110111111111111110111110011110011110011111111111110111111011111010001101111110101011111111110111111111111111111111111111101001010111011111111111111111111111111111111101011111111011011111011111111111111111011111 +01111110111110111111110111110111110011110011111111001111111111101111001111100111111111110101010111111111011111111111111111111101101101111101111101111111110111111111110111111111110111110111111110111111111011111111111101111111 +11111111111111011111011111011111011111111111111111111101111101111001101111111111111111110011111111111000111111111111111111111111111111111101111111111111111111111111111111111111110111111110111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111101111111111111111111111111101111101111011011111010011111111111101111111111111111111111111100100110111010111110111010111110111110111011111011111011111011111111111111111110110 +11011111011111101111111111111101111101111001111101111111111111111111101111111111110111111111111100011111111111100011111111111111111111001111001111001111001111110011111111111100111100111100111100010111111111111111110011001111 +00011111011111111111110011110001110011110011111111111111110111001111001111001111001111111111111111111111011101011111111111111101111101110101111101111011101011111011110110110110110110110110111011111111111101011011011101111111 +11111011111111011111011111011111011111110111111111111101111101111101111101111111111111111110110111111111101011111111111110011111011111101111111111111101101001111001111101111110111111111111110110100111110111110111111111111111 +11110111100111110111111011111010111010011010011110011111011111101111101011111001111101111101111111111111110111111111110011111011111111101111101111101111101110111111111111101110111010110110111110111011111111111111111011111011 +10111111111110111111111011111011111011111011111111111111101111100111101101101111101111111111111111111110111111111110010111111111111111110111111111111111111111011111111111111111111111111111111111111111110111111101111111111111 +11111101111111111111111111110111111111111110101111111111111111001111111111111111110111110111011111111111111111010101011111111111101111111111110111101110111110101110111110111011111011111011111001111011111011101011111111111111 +11010110111011011011110111111111111111101111101111101111101111111111111111111010111110100110111110111111111111011111111111111011111111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111010111111111111111011111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111011101111110111011111111111111111111101111101111101111101111111111111111111110111110111110111110111111 +11111111110111101110111100111010111110111111111011111011111011111011111111111111111111101111101111101111101111111111111110001111111111101111111101111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111011011111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111100111111111111111111111111111111011111111111111111111111101111111111111111111111111111111111 +11111111111111111001011101111111111111111111110111111111111111111111111111111011111111111111111111111111111111111111111111111111100001111111111111110111111111111011111111111111111111111100111111111111111111111111111111111111 +11110111111111111011111111111110111110110111111111111111101111111111111111001111111111111111111111111111111111111111111111111111111111011111110111111111011111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111110110111111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111110110111111111111111111111111111111111111111011111111111111111111111111111111110111110000011111111111111101111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111110111111111011111111111111111111111111111111111111111111111111111111111011111111111111111011111111111111011111000111111111111111111111110111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111000111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001111111111101111111110011111011111001111000011110001111101111101111101111100 +11110000111100010011011100011111011111001100110000000111110111110111111111111111111100111111011111011111011111111111001111000001000001110001111101111111111101101111111011110111110000100000111110111111111111001111011111000111 +00001111101111111111110111110001110000110100111111111100111110101100111100111111111111111111110011110111110111110001111100111111111111001111000011110011100110111111111111111111111111111111111111111111111111111111011111011111 +11111111111111110111111111110111111111111111111111111110111011111111111101111111111111111111111111111111111111110111011111111111111111111111111111111111001111111011110001111111011111111111110111110101111101110101110101111111 +11111101111101011101011101011111011111111111110111011101110111111111111111011111111111011110001101011111111111111111110111111101110101110101111101111111011111111110010111111111111111101111111111011111011111110101101001110111 +1111110111011111011111110111110111111111111101111101111111111111011011011010011111110101110111100111101111110111110101111111011101111111111111111111110100100111010110001111111111111111 diff --git a/usx2yloader/tascam_fpga b/usx2yloader/tascam_fpga new file mode 100644 index 0000000..5249cb8 --- /dev/null +++ b/usx2yloader/tascam_fpga @@ -0,0 +1,14 @@ +#!/bin/sh +# load the firmware into Tascam USB devices (FPGA design) + +LOADER=/usr/local/bin/usx2yloader + +if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "calling $LOADER for $DEVICE" +fi +$LOADER +/usr/local/bin/us428control& +if [ -x /usr/bin/logger ]; then + /usr/bin/logger -t $0 "leaving" +fi + diff --git a/usx2yloader/usx2yloader.c b/usx2yloader/usx2yloader.c new file mode 100644 index 0000000..93c430b --- /dev/null +++ b/usx2yloader/usx2yloader.c @@ -0,0 +1,410 @@ +/* + * FPGA loader for Tascam US-X2Y + * + * Copyright (c) 2003 by Karsten Wiese + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define PROGNAME "usx2yloader" +#define SND_USX2Y_LOADER_ID "USX2Y Loader" + +/* max. number of cards (shouldn't be in the public header?) */ +#define SND_CARDS 8 + + +static int verbose = 0; + +static void usage(void) +{ + printf("FPGA loader for Tascam US-X2Y\n"); + printf("version %s\n", VERSION); + printf("usage: usx2yloader [-c card] [-D device] [-u usb-device]\n"); +} + +static void error(const char *fmt, ...) +{ + if (verbose) { + va_list ap; + va_start(ap, fmt); + fprintf(stderr, "%s: ", PROGNAME); + vfprintf(stderr, fmt, ap); + va_end(ap); + } +} + + +/* + * read a xilinx bitstream file + */ +static int read_xilinx_image(snd_hwdep_dsp_image_t *img, const char *fname) +{ + FILE *fp; + char buf[256]; + int data, c, idx, length; + char *p; + char *imgbuf; + + if ((fp = fopen(fname, "r")) == NULL) { + fprintf(stderr, PROGNAME ": cannot open %s\n", fname); + return -EINVAL; + } + snd_hwdep_dsp_image_set_name(img, fname); + + c = 0; + data = 0; + idx = 0; + length = 0; + while (fgets(buf, sizeof(buf), fp)) { + if (strncmp(buf, "Bits:", 5) == 0) { + for (p = buf + 5; *p && isspace(*p); p++); + if (!*p) { + fprintf(stderr, + PROGNAME + ": corrupted file %s in Bits line\n", + fname); + fclose(fp); + return -EINVAL; + } + length = atoi(p); + length /= 8; + if (length <= 0) { + fprintf(stderr, + PROGNAME + ": corrupted file %s, detected length = %d\n", + fname, length); + fclose(fp); + return -EINVAL; + } + imgbuf = malloc(length); + if (!imgbuf) { + fprintf(stderr, + PROGNAME + ": cannot alloc %d bytes\n", + length); + fclose(fp); + return -ENOMEM; + } + continue; + } + if ((buf[0] != '0') && (buf[0] != '1')) { + //printf("line %d skipped\n", line); + continue; + } + if (length <= 0) { + fprintf(stderr, + PROGNAME + ": corrupted file %s, starting without Bits line\n", + fname); + fclose(fp); + return -EINVAL; + } + //printf("\n idx=%d", idx); + for (p = buf; *p == '0' || *p == '1'; p++) { + data |= (*p - '0') << c; + c++; + if (c >= 8) { + //printf(" %02X", data); + imgbuf[idx++] = data; + data = c = 0; + if (idx > length) + break; + } + } + } + if (c) + imgbuf[idx++] = data; + if (idx != length) { + fprintf(stderr, + PROGNAME ": length doesn't match: %d != %d\n", idx, + length); + fclose(fp); + return -EINVAL; + } + snd_hwdep_dsp_image_set_length(img, length); + snd_hwdep_dsp_image_set_image(img, imgbuf); + fclose(fp); + return 0; +} + + +/* + * read a binary image file + */ +static int read_boot_image(snd_hwdep_dsp_image_t *img, const char *fname) +{ + struct stat st; + int fd, length; + unsigned char *imgbuf; + + snd_hwdep_dsp_image_set_name(img, fname); + if (stat(fname, &st) < 0) { + error("cannot call stat %s\n", fname); + return -ENODEV; + } + length = st.st_size; + if (length == 0) { + error("zero file size %s\n", fname); + return -EINVAL; + } + + imgbuf = malloc(st.st_size); + if (! imgbuf) { + error("cannot malloc %d bytes\n", length); + return -ENOMEM; + } + snd_hwdep_dsp_image_set_length(img, length); + snd_hwdep_dsp_image_set_image(img, imgbuf); + + fd = open(fname, O_RDONLY); + if (fd < 0) { + error("cannot open %s\n", fname); + return -ENODEV; + } + if (read(fd, imgbuf, length) != length) { + error("cannot read %d bytes from %s\n", length, fname); + close(fd); + return -EINVAL; + } + + close(fd); + return 0; +} + + +/* + * parse the index file and get the file to read from the key + */ + +#define MAX_PATH 128 + +static int get_file_name(const char *key, unsigned int idx, char *fname) +{ + FILE *fp; + char buf[128]; + char temp[32], *p; + int len; + + snprintf(buf, sizeof(buf), "%s/%s.conf", DATAPATH, key); + if ((fp = fopen(buf, "r")) == NULL) { + error("cannot open the index file %s\n", buf); + return -ENODEV; + } + + sprintf(temp, "dsp%d", idx); + len = strlen(temp); + + while (fgets(buf, sizeof(buf), fp)) { + int prepad; + if (strncmp(buf, temp, len)) + continue; + + for (p = buf + len; *p && isspace(*p); p++) + ; + if (*p == '/') { + strncpy(fname, p, MAX_PATH); + } else { + snprintf(fname, MAX_PATH, "%s/%s", DATAPATH, p); + } + fname[MAX_PATH-1] = 0; + /* chop the last linefeed */ + for (p = fname; *p && *p != '\n'; p++) + ; + *p = 0; + fclose(fp); + return 0; + } + fclose(fp); + error("cannot find the file entry for %s\n", temp); + return -ENODEV; +} + + +/* + * read and transfer the firmware binary + */ +static int load_firmware(snd_hwdep_t *hw, const char *id, unsigned int idx) +{ + int err, prepad; + char fname[MAX_PATH]; + snd_hwdep_dsp_image_t* dsp; + + if ((prepad = get_file_name(id, idx, fname)) < 0) + return -EINVAL; + + snd_hwdep_dsp_image_alloca(&dsp); + snd_hwdep_dsp_image_set_index(dsp, idx); + if (strcmp(fname + strlen(fname) - 4, ".rbt")) + err = read_boot_image(dsp, fname); + else + err = read_xilinx_image(dsp, fname); + if (err < 0) + return err; + + err = snd_hwdep_dsp_load(hw, dsp); + if (err < 0) + error("error in loading %s\n", fname); + return err; +} + + +/* + * check the name id of the given hwdep handle + */ +static int check_hwinfo(snd_hwdep_t *hw, const char *id, const char* usb_dev_name) +{ + snd_hwdep_info_t *info; + int err; + + snd_hwdep_info_alloca(&info); + if ((err = snd_hwdep_info(hw, info)) < 0) + return err; + if (strcmp(snd_hwdep_info_get_id(info), id)) + return -ENODEV; + if (usb_dev_name) + if (strcmp(snd_hwdep_info_get_name(info), usb_dev_name)) + return -ENODEV; + + return 0; /* ok */ +} + +/* + * load the firmware binaries + */ +static int usx2y_boot(const char *devname) +{ + snd_hwdep_t *hw; + const char *id; + int err, is_pcmcia; + unsigned int idx, dsps, loaded; + snd_hwdep_dsp_status_t *stat; + + if ((err = snd_hwdep_open(&hw, devname, O_RDWR)) < 0) { + error("cannot open hwdep %s\n", devname); + return err; + } + + if (check_hwinfo(hw, SND_USX2Y_LOADER_ID, NULL) < 0) { + error("invalid hwdep %s\n", devname); + snd_hwdep_close(hw); + return -ENODEV; + } + + snd_hwdep_dsp_status_alloca(&stat); + /* get the current status */ + if ((err = snd_hwdep_dsp_status(hw, stat)) < 0) { + error("cannot get version for %s\n", devname); + snd_hwdep_close(hw); + return err; + } + + if (snd_hwdep_dsp_status_get_chip_ready(stat)) + return 0; /* already loaded */ + + id = snd_hwdep_dsp_status_get_id(stat); + + dsps = snd_hwdep_dsp_status_get_num_dsps(stat); + loaded = snd_hwdep_dsp_status_get_dsp_loaded(stat); + + for (idx = 0; idx < dsps; idx++) { + if (loaded & (1 << idx)) + continue; + if ((err = load_firmware(hw, id, idx)) < 0) { + snd_hwdep_close(hw); + return err; + } + } + + + snd_hwdep_close(hw); + return 0; +} + + +int main(int argc, char **argv) +{ + int c; + int card = -1; + char *device_name = NULL, + *usb_device_name = getenv("DEVICE"); + char name[64]; + + while ((c = getopt(argc, argv, "c:D:u:")) != -1) { + switch (c) { + case 'c': + card = atoi(optarg); + break; + case 'D': + device_name = optarg; + break; + case 'u': + usb_device_name = optarg; + break; + default: + usage(); + return 1; + } + } + + if (usb_device_name) { + snd_hwdep_t *hw = NULL; + for (c = 0; c < SND_CARDS; c++) { + sprintf(name, "hw:%d", c); + if ((0 <= snd_hwdep_open(&hw, name, O_RDWR)) + && (0 <= check_hwinfo(hw, SND_USX2Y_LOADER_ID, usb_device_name)) + && (0 <= snd_hwdep_close(hw))){ + card = c; + break; + } + } + } + if (device_name) { + verbose = 1; + return usx2y_boot(device_name) != 0; + } + if (card >= 0) { + sprintf(name, "hw:%d", card); + verbose = 1; + return usx2y_boot(name) != 0; + } + + /* probe the all cards */ + for (c = 0; c < SND_CARDS; c++) { + sprintf(name, "hw:%d", c); + if (! usx2y_boot(name)) + card = c; + } + if (card < 0) { + fprintf(stderr, PROGNAME ": no US-X2Y-compatible cards found\n"); + return 1; + } + return 0; +}