diff --git a/.github/travis_testsuite_1-expected_sha256sums.sh b/.github/travis_testsuite_1-expected_sha256sums.sh index 052f348e..b8dbcbef 100644 --- a/.github/travis_testsuite_1-expected_sha256sums.sh +++ b/.github/travis_testsuite_1-expected_sha256sums.sh @@ -46,164 +46,164 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux. a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\ -320f9c509898e4cf381227faf995e5181fb6c623ffea085f524faf7ff527fef1 *amd64-linux.elf/upx-3.91 -dafaf3849aa3319e727ef6a69f73e38f4c9883f3654192af8d851831d4483e37 *amd64-linux.elf/upx-3.95 +8a0875589f986f7d4d6fb84319a8cb5528e00d4d3b77c7c1e5dc54cf4ab138e1 *amd64-linux.elf/upx-3.91 +726c753e684cdb6d26b6ba75cbfcead54d192fa429cf94d812e6292f345713a5 *amd64-linux.elf/upx-3.95 10c249cd10b4384c8540434b324db4017b722836761fee8033839715d2210e8a *amd64-win64.pe/upx-3.95.exe -401dad780c204f1f7cddab694917e7efdce8465f210071e6ed80b25fcc07243f *arm-linux.elf/upx-3.95 +e6f747a1c6fb42bf5e0f8c61bddef5ea08640b96327c3db326b88fbbd80295f4 *arm-linux.elf/upx-3.95 22c35590d10fc4ce294982a8b5996e812ce799636f8084e7f411a5c9a1f8795e *arm-wince.pe/upx-3.91.exe af51de29680727fed32bdfd318591004727da65697dcb5a6726138d623ab3726 *arm64-linux.elf/upx-3.95 -3f9d487d823eebf5fad1123dadaf241e8338fafb10f83d88a5cf865d3c518172 *armeb-linux.elf/upx-3.91 -436b6ddf8a6e3d4bbaa018d308619fde39b23f6c98c1a4ef5300809ad7028482 *armeb-linux.elf/upx-3.95 +6ac6ba43f2428f904724832edc4d290b8bd18c26223ef5b2809c5b2531b4d578 *armeb-linux.elf/upx-3.91 +c11808952298ad5dda99363c3a3ea8707d19859605287687b2c40499190de2a5 *armeb-linux.elf/upx-3.95 74a88d52307429fddbc53a278fdc49837abf57694fe6fbb0ad6524e20c8f947e *i386-dos32.djgpp2.coff/upx-3.91.exe be9ec18e6cfa53598535d62dc1d2e6dd1a13c04ca4b80846f532780a1e1ea452 *i386-dos32.djgpp2.coff/upx-3.95.exe -628e228a966cbcadc5eabad6524fa0320ecb680a3caba1a4d906fe382bfbe158 *i386-linux.elf/upx-3.91 -4cb4759d16ff2424e76b9aacf91be43b284f9d15f8ffe2b5353ae5c9c98294bf *i386-linux.elf/upx-3.95 +78b59346e56d99fcea9a5fc5ebbc554ab8db9c8a4eb9b93124b7c93dd294f51c *i386-linux.elf/upx-3.91 +f86d0f223e2140d59e9b3357b7b1c67c8214fb0805a15cec580ae3b545a6ace5 *i386-linux.elf/upx-3.95 8540c5ad04459b7d6eb86c3a73254be926f0158d4b2d924bb88604be38b0b40a *i386-win32.pe/upx-3.91.exe 53cf3a356559b6c83157eac7dc5c5d014e5efe633881c1078f7e1ab7518ab2be *i386-win32.pe/upx-3.95.exe 2cbf76119eb9b9f3f7f76abab588b44136cf03bbbcc5df400883189b2c64b6c9 *m68k-atari.tos/upx-3.91.ttp -73cf91a67b4b9da0b0639cd6c22571a0b055ea813eef5a0656d4ffefbb76fc55 *mips-linux.elf/upx-3.95 -babb01cfd0d4917830d60bdfdd54c43710f340610cc900304ed9bbd2930fa3b2 *mipsel-linux.elf/upx-3.91 -5f4f04d8ea14e8ba79396ca21aa638d1ee20a10ca8a70216d847651c8db86024 *mipsel-linux.elf/upx-3.95 -7ab888ed7cfab93be9949c23a20b82563bc2d991862913ca96c5d1ea91547f6e *powerpc-linux.elf/upx-3.91 -8dc5ed8553fd10b75eb0c7354215d070900b0be05822677bc3f1cdee139b37f9 *powerpc-linux.elf/upx-3.95 +5f2daa5b5093d920500bd099e839ed02549e0ee3354a984f71ee267af2a4147a *mips-linux.elf/upx-3.95 +333ceb68fd1c675b5cdcdda5903aeb42829d1907c4d8b411b399c60e153dcbab *mipsel-linux.elf/upx-3.91 +74219287a4da0c7daf736fb0da19a14788a67f25c43b6f6e60901c94f5d7738c *mipsel-linux.elf/upx-3.95 +1030265960e7d4268c9ba6ba24bd2e08c46eeb6ce2df62891522a70ae39be7c4 *powerpc-linux.elf/upx-3.91 +3e8c118d72be2b5ba1bc11f1466645d495cd5988ed8ac5c3636d7e854ba093ba *powerpc-linux.elf/upx-3.95 bd9bd940729b6c3ffade9826ee2f59d049b0f4895fc44ae045cbc27330effc8d *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\ -7aeb6cd47af241b16d8c7561ed32be5eb78874f01f8bb6869f7c0a7d1d044233 *amd64-linux.elf/upx-3.91 -881e6f6b52c9ca81cdec5d4f89ec5a3f66c33f1382bd9d4bdaded1afd688d246 *amd64-linux.elf/upx-3.95 +c6d15db2709bf894251248f7b1b3d9293ee757b25191844d124dc0d2841f9b4a *amd64-linux.elf/upx-3.91 +7e70e99b67139f7f980121cd44c1976712ac391ba3f57c8a3c7cb2908beaf703 *amd64-linux.elf/upx-3.95 9b84f5db6d353eabfe3baecdf1fa052413b6447c2c265ad9fe0a5a1c47da2854 *amd64-win64.pe/upx-3.95.exe -5159da6f8403eb3186884412e6d6880b18f3655a3ba46c6da6b195e8ce7b2849 *arm-linux.elf/upx-3.95 +8fc59b48aff6a08d50aa8faaffc01682ca6a959eb6ab00907ed1517e8a7b99a2 *arm-linux.elf/upx-3.95 6612b9f0e4195ea745d57d016ce6dd5d039c0143c0fff56dd0a4d258015f9699 *arm-wince.pe/upx-3.91.exe 27b1eecf7067d3021caeb8b7a189205dc6fb7217370ed7e0be3fff79a2b3e1f3 *arm64-linux.elf/upx-3.95 -e08990092f6d633735520af211c0efb9f2dc3a3953123e32ed88086593743397 *armeb-linux.elf/upx-3.91 -549edc345d5f082d9d733cdf1d906e14101723db77a6aacff2ad4ec9d69f75b0 *armeb-linux.elf/upx-3.95 +8a742dcfccb72a497556ceece071bbd8a09f2b52b8a196fbf427ed856c87e752 *armeb-linux.elf/upx-3.91 +13972d06e8e8b54b43525a526f52bb277b8dfa12d76028fa47043d11a8c8eda2 *armeb-linux.elf/upx-3.95 a9b78c16954759bb694a633e9e4c95ad325c0e17efee402d8efba1045f9b4f5e *i386-dos32.djgpp2.coff/upx-3.91.exe 529d5467590d02f4a0a887fed79703945ddabdde1c1ffec6fcf23da3f1bbcb4d *i386-dos32.djgpp2.coff/upx-3.95.exe -995a2787fef366fe4755cc70fa1e8dd4c201099f29e4039b383e117dd90ea9c1 *i386-linux.elf/upx-3.91 -ccee78bc18f3415864a556adc453969b10891834ecbebd9505a5e268ef9110a9 *i386-linux.elf/upx-3.95 +feb91cd6cc12024bb287ea811d08bc4cf832ef0149ebd912aa011ece8d910260 *i386-linux.elf/upx-3.91 +25b1a8c63a9715f385e99cfbbb3d7d5d24cd2e3b1b786395e9d911c5d0dfd9ce *i386-linux.elf/upx-3.95 c3b0b992d5ffe170304321c9e8bd683d17056252baa7d87972563476a0af8159 *i386-win32.pe/upx-3.91.exe 6c075b3bdf2bad436f842df119684fcbfe4567b2695131d01beb803265f69b44 *i386-win32.pe/upx-3.95.exe db4de6847df3bcd294a6a5e683ff670706ad09ea241c8344612b6527c402e6cf *m68k-atari.tos/upx-3.91.ttp -6bca50becf5e4024a481723baa9bf5491bdbdab8de10a700e253579266d48629 *mips-linux.elf/upx-3.95 -208ff71f4f5f4de7842d355ab7a4ef73fc11eb47648ff4af6634b8749ac4a83e *mipsel-linux.elf/upx-3.91 -f259e5757af695dca5f3eaa9d0d6b43b3c3d5e29591a74139104f443da3c0a26 *mipsel-linux.elf/upx-3.95 -4efd88a81012dc80ca62868c6a12e103321e4aae983ca84bff6f31d941f93204 *powerpc-linux.elf/upx-3.91 -6c696b2b625199e3e42702c38ccaa405fcc1a89561606ead1a4861098c05eccf *powerpc-linux.elf/upx-3.95 +5b831010c7a761199225308959108e1d2e42e5065c4b6eedd5bb281caa06bf9b *mips-linux.elf/upx-3.95 +be9216ffeaf92c7fde924c67c23dfb6d19207bace3940c234524e2f4ea2992cb *mipsel-linux.elf/upx-3.91 +caca6ccb720c42dedeac0a77dd5a4db331d9418e9f1c7d18fc70c16b418656c8 *mipsel-linux.elf/upx-3.95 +8899ebc1003ef692a8e3bdb4899a69f379c0ba0394bc93ebffd3627b6f253b5f *powerpc-linux.elf/upx-3.91 +5626c25e8a7424c3174273c3b1f8c0771c2a71d7af5f6d6bd61ea9d794a2e3c5 *powerpc-linux.elf/upx-3.95 7f7e05ec5d2e4fe861992c10ae4d52eec8fe7f1d791cdf46a0d09c9414d6f351 *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\ -22382f7d7a3cff9ef6a59faba356cdf0c649da1721f9222492bd4e3e20564d0e *amd64-linux.elf/upx-3.91 -91925a179772ed2adc6f8c40dc19dc1d912a384977d9f02ca0f99f1a68c3b353 *amd64-linux.elf/upx-3.95 +604aad36449e2fa1338148a92ac423279773c0125c38542b351aba32bb0d74cc *amd64-linux.elf/upx-3.91 +19134827f132ded6a002a188d4f289d462b0afb5695bb0bd29a66c5f2fbdbcce *amd64-linux.elf/upx-3.95 c61d1957de3ed6dea8d06918fe437b07eb006e46fc8a79754e28b64d72bd1923 *amd64-win64.pe/upx-3.95.exe -b58702d1ccd65221e3fce0108c202f595bb7e3871d4ef37e4600e8394d3b12ef *arm-linux.elf/upx-3.95 +6b7e97e3902a04ce5695e2db0384c9b8aeb026a814c9214e0989d42e73676dbd *arm-linux.elf/upx-3.95 99fff7fd265615e50c815187e6cecc75225f97db813ee675e2e302cbb0215a60 *arm-wince.pe/upx-3.91.exe b6b1888e918d2a5f64f86beed717d6a2d90dfabbdb64c1769263b920e84e4650 *arm64-linux.elf/upx-3.95 -7f559b8615eeb2bb4a05d816430e0b3daa5df618f2304bba69f1465097b72b6b *armeb-linux.elf/upx-3.91 -171f0f7c265347b9cfccbe0628d81056b3005945f76753c819205bc8e2ba0490 *armeb-linux.elf/upx-3.95 +f596d4d75204183bd5c9b0a38bdd07136976746b6bca8b4fdbb06d44c284dcd4 *armeb-linux.elf/upx-3.91 +496d8bf581289a06dad7e9922f31d02ce56b08a0e6af5c0a72e14dc44956487c *armeb-linux.elf/upx-3.95 039c5f378921a30f96d1e5cb394ed6b1726fb75949d8abf0eee30e776a2701b2 *i386-dos32.djgpp2.coff/upx-3.91.exe e76b23ad8c8b68b170ff723f3e43a9dde230f5b0ad2dc08cdd6e31aa5f5f1b1d *i386-dos32.djgpp2.coff/upx-3.95.exe -dda6eed5dc36bd0b4d2b508b2bd8cda98819717772ecadfbc30dff502626f697 *i386-linux.elf/upx-3.91 -ba0f8fa838572388fed9be47489fe79c71a9f98ababd99f6e94aebf957aff864 *i386-linux.elf/upx-3.95 +e679260308819d33296a5cf1a55fc05a03cea374621f06f08ec987fd79c5719b *i386-linux.elf/upx-3.91 +a00fef71dce36418c80d192389153d7c0af7f0327ef784adb19d532c798a18db *i386-linux.elf/upx-3.95 037a3d31b8279d9aaf36cfc73e208e7bf0b3166c2ecbc82702b0cbb2afd97a39 *i386-win32.pe/upx-3.91.exe d020ebadaef57cd48ef09e934a496475b6d6cd09e5883a754975faa750177881 *i386-win32.pe/upx-3.95.exe 345ce9f8dc5e431391c65443a7f71f1f43a0f79e55498d541ddce051dc52f8ed *m68k-atari.tos/upx-3.91.ttp -b35422e3ba68a2307e688ba432412da6c1f5e1c2fa1e0b0ef71dd0dffe34350e *mips-linux.elf/upx-3.95 -05467a78e17f604c08bfb8b81e694036173462f6253d45c516fb126d110f8b24 *mipsel-linux.elf/upx-3.91 -4ea00738de87f4584bedb33593ccb5bc246f278c06948f9cedc223f3bce57ae8 *mipsel-linux.elf/upx-3.95 -98f138e5053b62afb612135c1829f6bd5bf7b5bb9903e7504486a77de493acd2 *powerpc-linux.elf/upx-3.91 -ef8516d17935d6482f13978f32c9b88e4de52d8e4d580adf911d2bb0268e0327 *powerpc-linux.elf/upx-3.95 +a6c581eb10ce757175e8ac671528bab9d2353f9113443135a5705932e78d953d *mips-linux.elf/upx-3.95 +8b3aa1c4bf390663d5e540a5d8aafc43eb16ed8120e030ad6aa5c3636324b47d *mipsel-linux.elf/upx-3.91 +489706f09d7c89c66a5152d80c4fc0e87ec0d636a476b37e94ea119aa7ef0820 *mipsel-linux.elf/upx-3.95 +84b23f560b9b9f4ca894a5448f28f28323303616028a7981b463a935eeb5281f *powerpc-linux.elf/upx-3.91 +ce66edbe1d7baefe35b6cdec4d4f1a29f1e27a7712b70a863e981116ef832339 *powerpc-linux.elf/upx-3.95 df703783b8cf43462f49330a96e729a91569a5ddb41d18e8793a57565026783c *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t140_compress_lzma_2_no_filter="\ -e60bcd49971b06d6c4a3992f60d766cb32d1109ee1596793bcd8cbe5a984d3c0 *amd64-linux.elf/upx-3.91 -e937cf18b39a2b87fa8a897b3f1dc65b6c2859290c41ab913002007daf3be549 *amd64-linux.elf/upx-3.95 +384c1d6770b4cce5fe9e8b8eabc26bb1ec87176addb106e6f8f8d10aafe69fa4 *amd64-linux.elf/upx-3.91 +d03e6e4c65653387381d3fbba5457b13eb49935d987de72c711bce57dbfb554e *amd64-linux.elf/upx-3.95 2e452434de48446341582a16ff5408ebbf382463c2c9fe779e2db070d11f0be3 *amd64-win64.pe/upx-3.95.exe -7eca50858cfa35d1ddc9040b5f1c87366d8012892fcd620515eb40fcc2c41e58 *arm-linux.elf/upx-3.95 +2b71b263460c6ef26d4be6b2606f18fd18504f5586a5cb6205e7b905c7dd5eda *arm-linux.elf/upx-3.95 bd6fa52a5eac47662323d5f5dd3632c6273f6e4fab9b996f8349102763e14b47 *arm-wince.pe/upx-3.91.exe 7512a3553735711516321463ed5da06335a4ee8e185eeb0c648f847bbf8402b8 *arm64-linux.elf/upx-3.95 -fa581a830ceb55887d9a7e6d4eb4d0c0d42a21f8054d8903c326339845f3cdb2 *armeb-linux.elf/upx-3.91 -20ecc7ff6cfb5a10fe0275b66ed6bbd1a03feb0b76dd6fa3769ec40a5b817012 *armeb-linux.elf/upx-3.95 +752bb314d747f96e5d3981b328e1c27a6b45bba7cb334befa3b9ddc1831f3150 *armeb-linux.elf/upx-3.91 +946d5bb8e092e00363f951302be722908d294cb3bf40e3e166a2b1b3552c4b49 *armeb-linux.elf/upx-3.95 2b4df508546ce016ffe08172144ebfa5a9f5de7c09e909a6dfea83d8e733869a *i386-dos32.djgpp2.coff/upx-3.91.exe 304d0e6a873101b58e77b7c1c6605c2f5a1601dee78c620572716d72d493bf47 *i386-dos32.djgpp2.coff/upx-3.95.exe -8768404377aa1f95e385dfcc061b259bf10c1dfe0dd2eda53b006e581207c1cd *i386-linux.elf/upx-3.91 -7116616639a2effb158495649f433ac69c1301d2254ef79187a656b98e285c1e *i386-linux.elf/upx-3.95 +d112e901ac027be42214a849ef4a07d8536e4cfd9a1649115bdf88e2deb587ef *i386-linux.elf/upx-3.91 +0641f34db6760580433e38d12e124a605aa64a358efc2404e59eba6f4384ae13 *i386-linux.elf/upx-3.95 115c67104bd8050e4e0eef3ed1c4d03db4d949188434bbfd1587d0483abb7c17 *i386-win32.pe/upx-3.91.exe cfd1bb7a6ef840d6161a2aef032b14c947d78a9c8eee43143d7cecc9241854d1 *i386-win32.pe/upx-3.95.exe 69e047dc3f180b185c2b30f0211b25a8b29605913ca1abbaf6fb037194ba404e *m68k-atari.tos/upx-3.91.ttp -f7f0d1d41f5d95c98c9c865e9b5d4c3de20964ad05844ddba3d3995239542bd1 *mips-linux.elf/upx-3.95 -ece8fe3008a61e88ea8bb4aa2001268f6ebea4d963a4cf75b8af4ce24cdf72fc *mipsel-linux.elf/upx-3.91 -180e9e9ace46e977cf4be1bfb1d12dcb1142fd48f9027de11e0470667222fd9f *mipsel-linux.elf/upx-3.95 -bd4967e7afdef58ec82d64f630ad1b6228afabd2eb37215bfaf34b0b601a0cee *powerpc-linux.elf/upx-3.91 -0894b6b1f883ab095e4462d367ddcdc8b90d3e1c15bc4e61857c3418c55ece75 *powerpc-linux.elf/upx-3.95 +7fdda0490ea604f5e6e4f12c5405ac2bbdd7737d58f3dd4108aec726da5c0447 *mips-linux.elf/upx-3.95 +faf78df698024f8edb6dc743d3bdce7228cf3d14c6737f0048270be95a5bec07 *mipsel-linux.elf/upx-3.91 +cea60033785f69fd0cc45a8274a9c03ec275f9b6fa989393fbdf2b2dce3248d1 *mipsel-linux.elf/upx-3.95 +8eb5e75e894fd2e612ca97254f2d0cd562ef6703706261a0f3dbd252186ff7ac *powerpc-linux.elf/upx-3.91 +b9aa29f2b360e59dba77d385d1fc670f0edaf29973f3cfe83012e75815d04cef *powerpc-linux.elf/upx-3.95 af125ea99fede83099c45c04bcf60f9f766457eb334c5b01aaf703010b00c855 *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t150_compress_ucl_2_all_filters="\ -bc396c075cbb0ad42c8d13111d0a9141f973f96e2920d94f831d39569aa23c37 *amd64-linux.elf/upx-3.91 -3802a3ab0466e0584190297d62555b2d9707fc519210c57eb4f855c45fbdbcc1 *amd64-linux.elf/upx-3.95 +9d759450d75191ab74c92d4e47d0c2b233e8bb3751eca87255ce9d99ddc6f976 *amd64-linux.elf/upx-3.91 +551e5258cf38650864f237e72e0a73ea7c76233f9f5e5053c3c3ce27c56c1791 *amd64-linux.elf/upx-3.95 ad15b341d20307332f2350a2645a450faedad76006e035c895e16b04cd3f4f01 *amd64-win64.pe/upx-3.95.exe -cb9c42b4419712d1e4feeee3be6d38ec997558627f0c05adb4cb0da323e6227e *arm-linux.elf/upx-3.95 +455611fe08bf72e9a5c48682d0646b75678119f4c79176773314bd8b7d0d8a38 *arm-linux.elf/upx-3.95 15dbf7ed4608d9eb0859a07d70eae0ddb1cb17d01a8cca719d85c480a6bfccba *arm-wince.pe/upx-3.91.exe -46f266faed39ca5bf1a5cf73f67858234c1208f9bdd166b333ae195456722690 *arm64-linux.elf/upx-3.95 -4482037b3508f2cd615a3975a134bf0ed897ba2363fb1f2c8e5695f4be5405f0 *armeb-linux.elf/upx-3.91 -52d111b9989e2b711849d7eaa24bc623b91f280de18a0e78c0566885333430b9 *armeb-linux.elf/upx-3.95 +625d2545c2aa79f90cf1e68574e0e064e9bd0889c03ab5b0ab848d1905b4c4d4 *arm64-linux.elf/upx-3.95 +a18c3cb34440cf94138d7f0a1055376f6626de82a5a94819e73ef29e34593087 *armeb-linux.elf/upx-3.91 +3d791d2b0ac2946dcd7d302c6da2f47b75244efa19cb33db4f68fd7934f703a8 *armeb-linux.elf/upx-3.95 5ec8168062b88fb09488e90db7db2756f1b5260a88a67bbfcd9f27a91caf5b11 *i386-dos32.djgpp2.coff/upx-3.91.exe e260e9e5ed5021ee938c8d6e8626a4423582a8601f18ba95c8e85ad187dace46 *i386-dos32.djgpp2.coff/upx-3.95.exe -d11e05235b534d85e9ca74969442b5dbf0655aaf1e5d1a8772e84c8d597c60a6 *i386-linux.elf/upx-3.91 -38c26adda04fa6ab4934c8cb29fe225c7902c53f0b7938baa5a1dc2b6d818425 *i386-linux.elf/upx-3.95 +94af02d0df90d7b23e4ad84b95c92a6fa369c5bace47c9b6b4bf26b43a276e5f *i386-linux.elf/upx-3.91 +d7a28e45e0ea2eecc0246da68c63dd4cb06d4c386180ded95c5d2bfb1d4dede3 *i386-linux.elf/upx-3.95 b9586543dba85f26e1bcf6c6670a26729a1534879ca2f821cd385749aec4d925 *i386-win32.pe/upx-3.91.exe 5d69a231bf70ac4cf3e1f49067c61ab11086721fa8fd64dd750fd685987432e5 *i386-win32.pe/upx-3.95.exe 42488024e1730c93d78a54f272346239b3236eaf3a57a7fe6ba83f642a539c65 *m68k-atari.tos/upx-3.91.ttp -f449ad60497d932af9104f80315ba52a85c221157ef787d93270056c6f279ae7 *mips-linux.elf/upx-3.95 -1379a33b8abd461df9cc05c93d6ab3f6cd0a094bba033e28761f17c6e12a2126 *mipsel-linux.elf/upx-3.91 -1bf1a6c87b1ea209a4e318959e9708f35e05d792057b4ca58421e5cd216c10e3 *mipsel-linux.elf/upx-3.95 -d0ed8e2893cc8564883f46d4c729fc267c306fa943487e00142904ed49d32449 *powerpc-linux.elf/upx-3.91 -d8d05ca8084dab37b42776dc99a122dd69320312f0b7eb34cf34d64ce182964a *powerpc-linux.elf/upx-3.95 +399675919c670c327139a3390e4e91d10cc0039940c980ae564f03ca0eec777e *mips-linux.elf/upx-3.95 +1f4a2a83c1d2a12f1cb5ba53304528e8686d5f1212d184a3bc4008597785075f *mipsel-linux.elf/upx-3.91 +80284f75f60c1fa91434e9114d96551ce64846f940725523c4e35dac962d979a *mipsel-linux.elf/upx-3.95 +156e6bffa73dc2a82fd5b89d22470926f75e12c56a7e9e3f1a6401ea24d053ae *powerpc-linux.elf/upx-3.91 +68f6f13062f028a31a2e71b3f176712976e5d6e19ea89ab63eff285bfc6f04d7 *powerpc-linux.elf/upx-3.95 7b89d451bba6816d1ba5d5ec912345d20ec9c511efee1cc78690351df578db2e *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t160_compress_all_methods_1_no_filter="\ -4fdb4b7b2fc7204db99514461dde7d0674bccbd604b6cde222de85de7efd47a8 *amd64-linux.elf/upx-3.91 -3319e15fedace9fbb0eb87a10c265e5f0cb0344e567172a4cce3d83b9bb20087 *amd64-linux.elf/upx-3.95 +ef9cd723d29d6c867e0ee4bfb01052dda57a2af0f52319c855153f1949307e27 *amd64-linux.elf/upx-3.91 +5bbbcbf741c1d0b3d72938624b3f611764f4a6ed6a5df0746818db9582a82ef7 *amd64-linux.elf/upx-3.95 d8c5e63e38fa76628fa0b7382bac038b3d490afa0b66b85ab2f3c12f362a81e9 *amd64-win64.pe/upx-3.95.exe -1e60977c9b915db6a038bb04dbf6c2588c233c2f5a84cea2b1b839e27961a205 *arm-linux.elf/upx-3.95 +537be789a80ce7d3cd5cced211fa24ae3fe756ada2ec936eeb540fe553d5e7e1 *arm-linux.elf/upx-3.95 79fac525c9020641c98faab36ce50cc7b244cf9d47f53b892294807c2a5c5499 *arm-wince.pe/upx-3.91.exe e2b8e912f09fd20f5b02fdd1876e4b5a0561881747d2bb5dfd35c0356577d27c *arm64-linux.elf/upx-3.95 -4637c49a7b468090408c261c6f3efea4be7a0de5da841f97490112ff61a970ac *armeb-linux.elf/upx-3.91 -708bb10d83fe266258cb3f2336abbd3d0c702b6f77949b8c4ba7fe8a6cd6463d *armeb-linux.elf/upx-3.95 +96930217610a097f3673de10a49ab4e41d445dd6ae4ee8d71eb74164f1735d08 *armeb-linux.elf/upx-3.91 +ca6a96e489cbde10ae8225041c3f3b714eee64ac1a284dea24d490cad5944286 *armeb-linux.elf/upx-3.95 a518753d85e0b86047454ee0670faa074e7a1202757331266518a2db3a453ceb *i386-dos32.djgpp2.coff/upx-3.91.exe aae9339ea05625db49baf5cac5101ca84219aac781cda1c22fa160e79f0dd4a1 *i386-dos32.djgpp2.coff/upx-3.95.exe -715c4d56c97abce4f8965f8e5fabe7bc7bf50f32a5ffe95df3a3a2401bc286a5 *i386-linux.elf/upx-3.91 -e83f2b2debbe8d41f21254f4ec9dc195c989eae7704694512eea25b0a73a2e12 *i386-linux.elf/upx-3.95 +3298953a106be84418749238038a3d797b3a7bed43a7d2db221598a8b4e61d78 *i386-linux.elf/upx-3.91 +d9db021b23f85a1d98f5fcacb14e3bc0b1478958bf1eae3ef597f16e3b73ae92 *i386-linux.elf/upx-3.95 fa611285da63c3ca078deec6d3622b231837884a3f580f35986992626f68d133 *i386-win32.pe/upx-3.91.exe 193f07b796958a494a25f6097515f877045fb6985b39af4c391835e1baf0cf18 *i386-win32.pe/upx-3.95.exe 011e049c4a5c253536df8654f842119b4b6bc1ea93fb4711367f1b25d73ef584 *m68k-atari.tos/upx-3.91.ttp -009b8d59850c261699a979115e829a6eb0b425e68b2b0af3cb7c383eb509fcc9 *mips-linux.elf/upx-3.95 -972b0af370fe16a86d08a4cc3f803777bd4302035b7c0a55b54dd35b6f51c019 *mipsel-linux.elf/upx-3.91 -8a4784838aaff6e0aed5b571beb0e304537f8b9611fcf9db67bd5dd28d42ff63 *mipsel-linux.elf/upx-3.95 -c5ab5b335a11739233371844079a1932c89ae4a69ace217452e8ccc5fddd65bc *powerpc-linux.elf/upx-3.91 -66e03cfca15f04b64b34d0fa0496e2bfbf1b64fd0d2814789d694bea25cde23f *powerpc-linux.elf/upx-3.95 +b5ebc226e95990260c7a2677781126241865c4b286829e5d92955c190578eea9 *mips-linux.elf/upx-3.95 +f09943ef1ce7647d3bb5dec9fbadf6ff51a35df3feaff07dae8b2be31d57ed94 *mipsel-linux.elf/upx-3.91 +7719958150acb601758214f0f41f2c55704db4f1e62d5fa37fc6e5b1b8c51d06 *mipsel-linux.elf/upx-3.95 +7b0ec441b31579acde09ffe2c6c008359ac8ef883f29a2d94899d8eecbc33542 *powerpc-linux.elf/upx-3.91 +3cec0ac7eb994d2a52fb0ea79dee75f4f74e3476079398502f225b43cc845c9c *powerpc-linux.elf/upx-3.95 cf5af7bb401c8ff205d295028c4c92775922f76a79db1ac7b14226238cb520a7 *powerpc64le-linux.elf/upx-3.95 " expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\ -a6d1cf7aa64cc96c4ca70c372826e6deeb537a26af5b96651ab5635321acdc3f *amd64-linux.elf/upx-3.91 -55905dcb58f68a64bda7ac2b23612ea1217f972034cfe5f238fd295af0cf668d *amd64-linux.elf/upx-3.95 +0ea0a990a5e81c7baa28aa2e540c7e7e7ece8a39f05e967e8c34ef95bf129e60 *amd64-linux.elf/upx-3.91 +3abee6e9e03707750631def02c369d3ac7c08918eeba80d37c6d3f93f40c0bef *amd64-linux.elf/upx-3.95 5fef75b0d5934ad148310cb21837cb910572a6c71c9c6ea4c477cfeb42891ce1 *amd64-win64.pe/upx-3.95.exe -0ae294979edf8f443a4933d387f22a48f76ca105a2492e0ffb3e11a0e592cedd *arm-linux.elf/upx-3.95 +18e73a97ca8efde050e08f3c74aabae5647dea1bd68bb18d57669e3ad8142578 *arm-linux.elf/upx-3.95 7f14beec284b7d92726ed753e71a2ad1f47c43e1c05d7a5e70b6fbc649d39e03 *arm-wince.pe/upx-3.91.exe add2eb2a6318e046363f0eb6f0026b51c2cdf843800f4e24c7cd9063684f05be *arm64-linux.elf/upx-3.95 -a59cbbcf8fae056f3fdb21f43d28ae66aa143ccc5173910d1875363ac7f7299e *armeb-linux.elf/upx-3.91 -9b6f771906d3c6f70e62da0f1b643096f50d833392ac94cb19c230e76d4d4058 *armeb-linux.elf/upx-3.95 +2da3c4664f78eea15cb4984406b36eeb747ea145b643fd2bf68d95f2f56c35de *armeb-linux.elf/upx-3.91 +28cf5c5d8350ca42aaa662a15827db82d65a7f0a5d9de225e515d041e76e7022 *armeb-linux.elf/upx-3.95 d72a3534852d8620a6961faefd2fba3f01f02c3f9c5fdae4f15c5b98ef3ee9e0 *i386-dos32.djgpp2.coff/upx-3.91.exe 4bb473e2ff5ba446d502a44ea6617e3223aa76ffc97bbd6f9ab69d2bcbd730b9 *i386-dos32.djgpp2.coff/upx-3.95.exe -0d01eeda022144edc87648a5d6b0b7f9f5cfa53662e27cd49d4a9c9c2dfdde8f *i386-linux.elf/upx-3.91 -86258bfd1fa413422b34997a5cc8728152e7fbb69c06b8cfa76e130854af0e07 *i386-linux.elf/upx-3.95 +3d511771ca7fba2bbef9445cb5302a4accf29cd1d81e0e54ace32a0c111a8408 *i386-linux.elf/upx-3.91 +945d74c3e1befd3adcfad9b59defeadd1e9384a30765c4a716cb9652e783487e *i386-linux.elf/upx-3.95 6c1d386aec8f6166bdbad91611ef4f741fc78ed0e34fc39dd21d3bda5de233e4 *i386-win32.pe/upx-3.91.exe 51e0a496f3b69c40fd0a3265f7992227cf40f5904185490ca02bd1b3d6ce0dbb *i386-win32.pe/upx-3.95.exe 73a1390a01a764ed9647bfdd27beab43f3212bea1622b50ad3e823163f1c07f2 *m68k-atari.tos/upx-3.91.ttp -8c90812459c3dbff8e7476d32e45c1fd4b8852f623df35822b33fb6face49a60 *mips-linux.elf/upx-3.95 -b13d5150b3c5c97cfba0efe07cb8c807a7d9d09625ec29edd3c81b9cf7c265cb *mipsel-linux.elf/upx-3.91 -ba77b6089be3300a41491036a309ffca1aa873938cef4a54a9ff4f3bd8da3e34 *mipsel-linux.elf/upx-3.95 -f9fadc68c9f00f6a2b67b18d9c6a213bfa4cda0ff8c8f1e5dafb210794b429bf *powerpc-linux.elf/upx-3.91 -b7487a251368cc862530a10bd5918bbaa8711502039ea42d2989f372e7396e60 *powerpc-linux.elf/upx-3.95 +45a177a7e658efdfea0e747f475fc847e6a432313f73c7c0300e2137897f1b96 *mips-linux.elf/upx-3.95 +70b20763e378a061196a56b00649484698eb9109a5b63d72f48be7eab208ec7d *mipsel-linux.elf/upx-3.91 +343aebb2dd0a726ea726556ce93a9cf4b8fafedb11791df23d08f918246eee66 *mipsel-linux.elf/upx-3.95 +96f69ed7a8f9e123989e3dcdb44e7d578fa27361118c279ac2e98f23d4fecff3 *powerpc-linux.elf/upx-3.91 +8aaf5115416bddc532b758a1502acb416477de07716b71f17827be1c060d7a95 *powerpc-linux.elf/upx-3.95 4d06bbb5871a2ae4eca105730596059f721cdd5cb5002aea07faca2ad23a088f *powerpc64le-linux.elf/upx-3.95 " ########## end .sha256sums.recreate diff --git a/README.SRC b/README.SRC index 4a5ff4ad..3112f909 100644 --- a/README.SRC +++ b/README.SRC @@ -71,6 +71,37 @@ If you want to modify the stub sources you'll also need https://github.com/upx/upx-stubtools/releases +Developer quick start +--------------------- + 1) $ mkdir my-upx; cd my-upx # new directory for safety and convenience + 2) $ git clone https://github.com/upx/upx.git + 3) $ git clone https://github.com/upx/upx-testsuite.git + 4) # Optional for re-building stubs: + 4a) $ pushd upx/src/stub # my-upx/upx/src/stub + 4b) $ wget https://github.com/upx/upx-stubtools/releases/download/v20221212/bin-upx-20221212.tar.xz + # Extract to $HOME/bin/bin-upx or $HOME/local/bin/bin-upx. + # See directions in: https://github.com/upx/upx-stubtools + 4c) $ make clean; make # verify that you can re-build stubs + 4d) $ popd # my-upx + 5) $ cd upx # my-upx/upx + 6) $ git submodule update --init # compression algorithms, etc. + # DO NOT TOUCH vendor/... + # After a git merge/pull/etc, then use "git status" + # to check whether the vendor directory is clean; + # if not, then update via "git submodule update". + # If stuck, then reset via "rm -rf vendor; git submodule update --init". + 7) $ mkdir -p build/debug build/release + 8) $ pushd build/debug # my-upx/upx/build/debug + 9) $ cmake ../.. # configure cmake +10) $ cmake --build . --verbose # optional "--verbose" + # This relies on stub/*.h, which YOU must re-build if necessary. + # When in doubt, then use "cd src/stub; make clean; make". +11) $ popd # my-upx/upx +12) $ cd src # my-upx/upx/src +13) $ make run-testsuite 2>&1 | tee testsuite.log + + + Misc. notes ----------- diff --git a/src/bele.h b/src/bele.h index 91078257..12a0edbf 100644 --- a/src/bele.h +++ b/src/bele.h @@ -167,6 +167,8 @@ inline void set_le24(void *p, unsigned v) { } inline unsigned get_le26(const void *p) { return get_le32(p) & 0x03ffffff; } +inline unsigned get_le19_5(const void *p) { return 0x7ffff & (get_le32(p) >> 5); } +inline unsigned get_le14_5(const void *p) { return 0x03fff & (get_le32(p) >> 5); } inline void set_le26(void *p, unsigned v) { // preserve the top 6 bits @@ -178,6 +180,12 @@ inline void set_le26(void *p, unsigned v) { (ne32_to_le32(v) & ne32_to_le32(0x03ffffff))); #endif } +inline void set_le19_5(void *p, unsigned v) { + set_le32(p, (get_le32(p) & 0xff00001f) | ((v & 0x07ffff) << 5)); +} +inline void set_le14_5(void *p, unsigned v) { + set_le32(p, (get_le32(p) & 0xfff8001f) | ((v & 0x003fff) << 5)); +} /************************************************************************* // get signed values diff --git a/src/filter/ct.h b/src/filter/ct.h index 0a8be429..756cb3c2 100644 --- a/src/filter/ct.h +++ b/src/filter/ct.h @@ -463,6 +463,7 @@ static int s_ct24arm_be(Filter *f) // 26-bit ARM calltrick ("naive") **************************************************************************/ +#if 1 //{ old reliable #define CT26ARM_LE(f, cond, addvalue, get, set) \ byte *b = f->buf; \ byte *b_end = b + f->buf_len - 4; \ @@ -479,7 +480,6 @@ static int s_ct24arm_be(Filter *f) if (f->lastcall) f->lastcall += 4; \ return 0; - #define ARMCT_COND (((b[3] & 0x7C) == 0x14)) static int f_ct26arm_le(Filter *f) @@ -497,6 +497,56 @@ static int s_ct26arm_le(Filter *f) CT26ARM_LE(f, ARMCT_COND, a + f->addvalue, get_le26, set_dummy) } +#else //}{ new enhanced but DIFFERENT; need new filter type! + +static int CTarm64(Filter *f, int dir) // dir: 1, 0, -1 +{ + upx_byte *b = f->buf; // will be incremented + upx_byte *const b_end = b + f->buf_len - 4; + do { + unsigned const a = b - f->buf; + int const d = dir * (f->addvalue + (a >> 2)); + unsigned const v = get_le32(f->buf); // the 32-bit instruction + if (0x05 == (0x1f & (v >> 26))) { // b, bl + f->lastcall = a; + if (dir) set_le26(b, v + d); + f->calls++; + } + else if ( (0x54 == (v >> 24) ) // b.cond + || (0x1a == ((v >> 25) & 0x3f)) // cb{z,nz} + ) { + f->lastcall = a; + if (dir) set_le19_5(b, (v >> 5) + d); + f->calls++; + } + else if (0x1b == ((v >> 25) & 0x3f)) { // tb{z,nz} + f->lastcall = a; + if (dir) set_le14_5(b, (v >> 5) + d); + f->calls++; + } + b += 4; + } while (b < b_end); + if (f->lastcall) f->lastcall += 4; + return 0; +} + +static int f_CTarm64_le(Filter *f) +{ + return CTarm64(f, 1); +} + +static int u_CTarm64_le(Filter *f) +{ + return CTarm64(f, -1); +} + +static int s_CTarm64_le(Filter *f) +{ + return CTarm64(f, 0); +} + +#endif //} + #undef CT26ARM_LE #undef ARMCT_COND diff --git a/src/filter/filter_impl.cpp b/src/filter/filter_impl.cpp index 8a4f730b..1acd2163 100644 --- a/src/filter/filter_impl.cpp +++ b/src/filter/filter_impl.cpp @@ -228,8 +228,13 @@ umin(unsigned const a, unsigned const b) { 0x50, 8, 0x01ffffff, f_ct24arm_le, u_ct24arm_le, s_ct24arm_le }, { 0x51, 8, 0x01ffffff, f_ct24arm_be, u_ct24arm_be, s_ct24arm_be }, +#if 1 //{ old reliable // 26-bit calltrick for arm64 { 0x52, 8, 0x03ffffff, f_ct26arm_le, u_ct26arm_le, s_ct26arm_le }, +#else //}{ new enhanced, but needs new filter id + // 26-bit calltrick for arm64; also 19-bit and 14-bit + { 0x52, 8, 0x03ffffff, f_CTarm64_le, u_CTarm64_le, s_CTarm64_le }, +#endif //} // 32-bit cto calltrick with jmp and jcc(swap 0x0f/0x8Y) and relative renumbering { 0x80, 8, 0x00ffffff, f_ctojr32_e8e9_bswap_le, u_ctojr32_e8e9_bswap_le, s_ctojr32_e8e9_bswap_le }, diff --git a/src/linker.cpp b/src/linker.cpp index 28bf3d21..f2758c06 100644 --- a/src/linker.cpp +++ b/src/linker.cpp @@ -62,8 +62,10 @@ ElfLinker::Section::Section(const char *n, const void *i, unsigned s, unsigned a assert(name != nullptr); input = malloc(s + 1); assert(input != nullptr); - if (s != 0) + if (s != 0) { + assert(i != nullptr); memcpy(input, i, s); + } ((char *) input)[s] = 0; } @@ -197,7 +199,7 @@ void ElfLinker::preprocessSections(char *start, char const *end) { unsigned offset, size, align; char name[1024]; - if (sscanf(start, "%*d %1023s %x %*d %*d %x 2**%d", name, &size, &offset, &align) == 4) { + if (sscanf(start, "%*d %1023s %x %*x %*x %x 2**%d", name, &size, &offset, &align) == 4) { char *n = strstr(start, name); n[strlen(name)] = 0; addSection(n, input + offset, size, align); diff --git a/src/p_elf_enum.h b/src/p_elf_enum.h index 4a722c33..31ff0b17 100644 --- a/src/p_elf_enum.h +++ b/src/p_elf_enum.h @@ -249,9 +249,11 @@ R_PPC64_JMP_SLOT = R_PPC_JMP_SLOT, R_X86_64_JUMP_SLOT = 7, + R_386_32 = 1, R_ARM_ABS32 = 2, R_ARM_GLOB_DAT = 21, + R_386_GLOB_DAT = 6, R_AARCH64_ABS64 = 257, R_AARCH64_GLOB_DAT = 1025, diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index cd8fb6b1..f7caf1a1 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -52,6 +52,7 @@ typedef upx_uint64_t u64_t; // easier to type; more narrow #define PT_NOTE64 Elf64_Phdr::PT_NOTE #define PT_GNU_STACK32 Elf32_Phdr::PT_GNU_STACK #define PT_GNU_STACK64 Elf64_Phdr::PT_GNU_STACK +#define PT_GNU_RELRO32 Elf32_Phdr::PT_GNU_RELRO #define PT_GNU_RELRO64 Elf64_Phdr::PT_GNU_RELRO //static unsigned const EF_ARM_HASENTRY = 0x02; @@ -89,22 +90,38 @@ up8(unsigned x) } static off_t -fpad4(OutputFile *fo) +fpadN(OutputFile *fo, unsigned len) { + if (len) { + MemBuffer pad(len); pad.clear(); + fo->write(pad, len); + } + return fo->st_size(); +} + +static off_t +fpad4(OutputFile *fo, unsigned pos) +{ + (void)pos; // debug: compare 'pos' with "shell grep pos /proc/PID/fdinfo/FD" off_t len = fo->st_size(); unsigned d = 3u & (0 - len); - unsigned zero = 0; - fo->write(&zero, d); + if (d) { + unsigned zero = 0; + fo->write(&zero, d); + } return d + len; } static off_t -fpad8(OutputFile *fo) +fpad8(OutputFile *fo, unsigned pos) { + (void)pos; // debug: compare 'pos' with "shell grep pos /proc/PID/fdinfo/FD" off_t len = fo->st_size(); unsigned d = 7u & (0 - len); - upx_uint64_t zero = 0; - fo->write(&zero, d); + if (d) { + upx_uint64_t zero = 0; + fo->write(&zero, d); + } return d + len; } @@ -228,7 +245,7 @@ PackLinuxElf::PackLinuxElf(InputFile *f) : super(f), e_phnum(0), dynstr(nullptr), sz_phdrs(0), sz_elf_hdrs(0), sz_pack2(0), sz_pack2a(0), lg2_page(12), page_size(1u<seek(0, SEEK_SET); f->readx(file_image, file_size); phdri= (Elf32_Phdr *)(e_phoff + file_image); // do not free() !! - shdri= (Elf32_Shdr *)(e_shoff + file_image); // do not free() !! - if (opt->cmd != CMD_COMPRESS) { + if (opt->cmd != CMD_COMPRESS || !e_shoff || file_size < e_shoff) { shdri = nullptr; } + else { + fi->seek(e_shoff, SEEK_SET); + if (mb_shdr.getSize() != sizeof(Elf32_Shdr) * e_shnum) { + mb_shdr.alloc( sizeof(Elf32_Shdr) * e_shnum); + } + shdri = (Elf32_Shdr *)mb_shdr.getVoidPtr(); + fi->readx(shdri, sizeof(Elf32_Shdr) * e_shnum); + } sec_dynsym = elf_find_section_type(Elf32_Shdr::SHT_DYNSYM); if (sec_dynsym) { unsigned t = get_te32(&sec_dynsym->sh_link); @@ -346,16 +372,23 @@ PackLinuxElf32::PackLinuxElf32help1(InputFile *f) off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output { unsigned disp; - unsigned const zero = 0; unsigned len = sz_pack2a; // after headers and all PT_LOAD unsigned const t = (4 & len) ^ ((!!xct_off)<<2); // 0 or 4 - fo->write(&zero, t); - len += t; // force sz_pack2 (0 mod 8) [see below] + if (t) { + if (fo) { + unsigned const zero = 0; + fo->write(&zero, t); + } + len += t; // force sz_pack2 (0 mod 8) [see below] + } set_te32(&disp, sz_elf_hdrs + usizeof(p_info) + usizeof(l_info) + (!!xct_off & !!opt->o_unix.android_shlib)); // |1 iff android shlib fo->write(&disp, sizeof(disp)); // offset(b_info) + // FIXME: If is_shlib then that is useful only for the is_asl bit. + // Better info is the word below with (overlay_offset - sizeof(linfo)). + len += sizeof(disp); set_te32(&disp, len); // distance back to beginning (detect dynamic reloc) fo->write(&disp, sizeof(disp)); @@ -369,8 +402,8 @@ off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output fo->write(&disp, sizeof(disp)); // DT_INIT.d_val len += sizeof(disp); - set_te32(&disp, hatch_off); - fo->write(&disp, sizeof(disp)); // offset(hatch) + set_te32(&disp, xct_off); + fo->write(&disp, sizeof(disp)); // offset(lowest_executable_instr) len += sizeof(disp); if (opt->o_unix.android_shlib) { @@ -380,13 +413,56 @@ off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output fo->write(&disp, sizeof(disp)); // &{l_info; p_info; b_info} len += sizeof(disp); } + total_out += len - sz_pack2a; sz_pack2 = len; // 0 mod 8 [see above] + // FIXME: debugging aid: entry to decompressor + if (lowmem.getSize()) { + Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)&lowmem[0]; + set_te32(&ehdr->e_entry, sz_pack2); + } + // end debugging aid + super::pack3(fo, ft); // append the decompressor set_te16(&linfo.l_lsize, up4( // MATCH03: up4 get_te16(&linfo.l_lsize) + len - sz_pack2a)); - return fpad4(fo); // MATCH03 + total_out = fpad4(fo, total_out); // MATCH03 + return total_out; +} + +Elf32_Phdr * +PackLinuxElf32::elf_find_Phdr_for_va(unsigned addr, Elf32_Phdr *phdr, unsigned phnum) +{ + for (unsigned j = 0; j < phnum; ++phdr) { + if ((addr - get_te32(&phdr->p_vaddr)) < get_te32(&phdr->p_filesz)) { + return phdr; + } + } + return nullptr; +} + +Elf64_Phdr * +PackLinuxElf64::elf_find_Phdr_for_va(upx_uint64_t addr, Elf64_Phdr *phdr, unsigned phnum) +{ + for (unsigned j = 0; j < phnum; ++phdr) { + if ((addr - get_te64(&phdr->p_vaddr)) < get_te64(&phdr->p_filesz)) { + return phdr; + } + } + return nullptr; +} + +void +PackLinuxElf32::asl_slide_Shdrs() +{ + Elf32_Shdr *shdr = shdro; + for (unsigned j = 0; j < e_shnum; ++shdr, ++j) { + unsigned sh_offset = get_te32(&shdr->sh_offset); + if (xct_off < sh_offset) { + set_te32(&shdr->sh_offset, so_slide + sh_offset); + } + } } // C_BASE covers the convex hull of the PT_LOAD of the uncompressed module. @@ -410,12 +486,13 @@ enum { // ordinals in ELFxx_Phdr[] of compressed output off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) { - off_t flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs + if (!overlay_offset) { + overlay_offset = sizeof(linfo) + (xct_off ? xct_off : sz_elf_hdrs); + } + + total_out = super::pack3(fo, ft); // loader follows compressed PT_LOADs // NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page - unsigned v_hole = sz_pack2 + lsize; - set_te32(&elfout.phdr[C_TEXT].p_filesz, v_hole); - set_te32(&elfout.phdr[C_TEXT].p_memsz, v_hole); // Then compressed gaps (including debuginfo.) for (unsigned k = 0; k < e_phnum; ++k) { Extent x; @@ -430,20 +507,20 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) b_info hdr; memset(&hdr, 0, sizeof(hdr)); set_le32(&hdr.sz_cpr, UPX_MAGIC_LE32); fo->write(&hdr, sizeof(hdr)); - flen = fpad4(fo); + total_out = fpad4(fo, total_out); - set_te32(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); - set_te32(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize); if (0==xct_off) { // not shared library set_te32(&elfout.phdr[C_BASE].p_align, 0u - page_mask); elfout.phdr[C_BASE].p_paddr = elfout.phdr[C_BASE].p_vaddr; elfout.phdr[C_BASE].p_offset = 0; + unsigned abrk = getbrk(phdri, e_phnum); // vbase handles ET_EXEC. FIXME: pre-linking? unsigned vbase = get_te32(&elfout.phdr[C_BASE].p_vaddr); - unsigned abrk = getbrk(phdri, e_phnum); set_te32(&elfout.phdr[C_BASE].p_filesz, 0x1000); // Linux kernel SIGSEGV if (0==.p_filesz) set_te32(&elfout.phdr[C_BASE].p_memsz, abrk - vbase); set_te32(&elfout.phdr[C_BASE].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); + set_te32(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); + set_te32(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize); set_te32(&elfout.phdr[C_TEXT].p_vaddr, abrk= (page_mask & (~page_mask + abrk))); elfout.phdr[C_TEXT].p_paddr = elfout.phdr[C_TEXT].p_vaddr; set_te32(&elfout.ehdr.e_entry, abrk + get_te32(&elfout.ehdr.e_entry) - vbase); @@ -452,13 +529,15 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) unsigned word = (Elf32_Ehdr::EM_ARM==e_machine) + load_va + sz_pack2; // Thumb mode set_te32(&file_image[user_init_off], word); // set the hook - Elf32_Phdr *phdr = (Elf32_Phdr *)lowmem.subref( + Elf32_Phdr *const phdr0 = (Elf32_Phdr *)lowmem.subref( "bad e_phoff", e_phoff, e_phnum * sizeof(Elf32_Phdr)); - unsigned off = fo->st_size(); + Elf32_Phdr *phdr = phdr0; + upx_off_t off = fo->st_size(); // 64 bits so_slide = 0; for (unsigned j = 0; j < e_phnum; ++j, ++phdr) { + // p_vaddr and p_paddr do not change! unsigned const len = get_te32(&phdr->p_filesz); - unsigned const ioff = get_te32(&phdr->p_offset); + unsigned const ioff = get_te64(&phdri[j].p_offset); // without asl_delta unsigned align= get_te32(&phdr->p_align); unsigned const type = get_te32(&phdr->p_type); if (Elf32_Phdr::PT_INTERP==type) { @@ -473,9 +552,13 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) continue; } if (PT_LOAD32 == type) { - if ((xct_off - ioff) < len) { // Change length of compressed PT_LOAD. - set_te32(&phdr->p_filesz, sz_pack2 + lsize - ioff); - set_te32(&phdr->p_memsz, sz_pack2 + lsize - ioff); + if (!ioff) { // first PT_LOAD must contain everything written so far + set_te32(&phdr->p_filesz, sz_pack2 + lsize); // is this correct? + set_te32(&phdr->p_memsz, sz_pack2 + lsize); + } + else if ((xct_off - ioff) < len) { // Change length of compressed PT_LOAD. + set_te32(&phdr->p_filesz, total_out - ioff); // FIXME (sz_pack2 + lsize - ioff) ? + set_te32(&phdr->p_memsz, total_out - ioff); if (user_init_off < xct_off) { // MIPS puts PT_DYNAMIC here // Allow for DT_INIT in a new [stolen] slot unsigned off2 = user_init_off - sizeof(word); @@ -484,61 +567,85 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) } } else if (xct_off < ioff) { // Slide subsequent PT_LOAD. - if ((1u<<12) < align) { + if ((1u<<12) < align + && ( Elf32_Ehdr::EM_386 == e_machine + || Elf32_Ehdr::EM_ARM == e_machine) // FIXME: other $ARCH ? + ) { align = 1u<<12; set_te32(&phdr->p_align, align); } - off += (align-1) & (ioff - off); - fo->seek( off, SEEK_SET); + off = fpadN(fo, (-1 + align) & (ioff - off)); + if (!so_slide) { + so_slide = off - ((is_asl ? asl_delta : 0) + ioff); + //asl_slide_Shdrs(); + } + set_te32(&phdr->p_offset, off); + fo->seek(off, SEEK_SET); fo->write(&file_image[ioff], len); - so_slide = off - ioff; - set_te32(&phdr->p_offset, so_slide + ioff); + off += len; + total_out = off; } continue; // all done with this PT_LOAD } - if (xct_off < ioff) - set_te32(&phdr->p_offset, so_slide + ioff); + if (xct_off < ioff) { + set_te32(&phdr->p_offset, so_slide + (is_asl ? asl_delta : 0) + ioff); + } } // end each Phdr - if (opt->o_unix.android_shlib) { - // Update {DYNAMIC}.sh_offset by so_slide. - Elf32_Shdr *shdr = (Elf32_Shdr *)lowmem.subref( - "bad e_shoff", xct_off - asl_delta, e_shnum * sizeof(Elf32_Shdr)); + if (sec_arm_attr || is_asl) { // must update Shdr.sh_offset for so_slide + Elf32_Shdr *shdr = shdri; for (unsigned j = 0; j < e_shnum; ++shdr, ++j) { unsigned sh_type = get_te32(&shdr->sh_type); - if (Elf32_Shdr::SHT_DYNAMIC == get_te32(&shdr->sh_type)) { - unsigned offset = get_te32(&shdr->sh_offset); - set_te32(&shdr->sh_offset, so_slide + offset ); - fo->seek((j * sizeof(Elf32_Shdr)) + xct_off - asl_delta, SEEK_SET); - fo->rewrite(shdr, sizeof(*shdr)); - fo->seek(0, SEEK_END); - } if (Elf32_Shdr::SHT_REL == sh_type - && n_jmp_slot + && n_jmp_slot // FIXME who sets this? && !strcmp(".rel.plt", get_te32(&shdr->sh_name) + shstrtab)) { - unsigned f_off = elf_get_offset_from_address(plt_va); - fo->seek(so_slide + f_off, SEEK_SET); // FIXME: assumes PT_LOAD[1] - fo->rewrite(&file_image[f_off], n_jmp_slot * 4); + unsigned va = elf_unsigned_dynamic(Elf32_Dyn::DT_PLTGOT) + - (is_asl ? asl_delta : 0); + // Now use the old Phdrs (phdri) + Elf32_Phdr *phva; + phva = elf_find_Phdr_for_va(va, phdri, e_phnum); + unsigned old_off = (va - get_te32(&phva->p_vaddr)) + + get_te32(&phva->p_offset); + + // Now use the new Phdrs (phdr0) + va += (is_asl ? asl_delta : 0); + phva = elf_find_Phdr_for_va(va, phdr0, e_phnum); + unsigned new_off = (va - get_te32(&phva->p_vaddr)) + + get_te32(&phva->p_offset); + + if (fo && n_jmp_slot) { + fo->seek(new_off, SEEK_SET); + fo->rewrite(&file_image[old_off], n_jmp_slot * 4); + } } } + fo->seek(total_out, SEEK_SET); + if (xct_off < e_shoff) { + set_te32(&((Elf32_Ehdr *)lowmem.getVoidPtr())->e_shoff, total_out); + if (fo) { + fo->write(shdri, e_shnum * sizeof(*shdr)); + total_out += e_shnum * sizeof(*shdr); + } + } } - else { // !opt->o_unix.android_shlib) + else { // output has no Shdr ehdri.e_shnum = 0; ehdri.e_shoff = 0; ehdri.e_shstrndx = 0; } } - return flen; + return total_out; } off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) { - off_t flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs + if (!overlay_offset) { + overlay_offset = sizeof(linfo) + (xct_off ? xct_off : sz_elf_hdrs); + } + + total_out = super::pack3(fo, ft); // loader follows compressed PT_LOADs // NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page - unsigned v_hole = sz_pack2 + lsize; - set_te64(&elfout.phdr[C_TEXT].p_filesz, v_hole); - set_te64(&elfout.phdr[C_TEXT].p_memsz, v_hole); // Then compressed gaps (including debuginfo.) for (unsigned k = 0; k < e_phnum; ++k) { Extent x; @@ -553,10 +660,8 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) b_info hdr; memset(&hdr, 0, sizeof(hdr)); set_le32(&hdr.sz_cpr, UPX_MAGIC_LE32); fo->write(&hdr, sizeof(hdr)); - flen = fpad4(fo); + total_out = fpad4(fo, total_out); - set_te64(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); - set_te64(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize); if (0==xct_off) { // not shared library set_te64(&elfout.phdr[C_BASE].p_align, ((upx_uint64_t)0) - page_mask); elfout.phdr[C_BASE].p_paddr = elfout.phdr[C_BASE].p_vaddr; @@ -566,7 +671,9 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) upx_uint64_t const vbase = get_te64(&elfout.phdr[C_BASE].p_vaddr); set_te64(&elfout.phdr[C_BASE].p_filesz, 0x1000); // Linux kernel SIGSEGV if (0==.p_filesz) set_te64(&elfout.phdr[C_BASE].p_memsz, abrk - vbase); - set_te32(&elfout.phdr[C_BASE].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); + set_te64(&elfout.phdr[C_BASE].p_flags, Elf64_Phdr::PF_W|Elf64_Phdr::PF_R); + set_te64(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); + set_te64(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize); set_te64(&elfout.phdr[C_TEXT].p_vaddr, abrk= (page_mask & (~page_mask + abrk))); elfout.phdr[C_TEXT].p_paddr = elfout.phdr[C_TEXT].p_vaddr; set_te64(&elfout.ehdr.e_entry, abrk + get_te64(&elfout.ehdr.e_entry) - vbase); @@ -575,13 +682,15 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) upx_uint64_t word = load_va + sz_pack2; set_te64(&file_image[user_init_off], word); // set the hook - Elf64_Phdr *phdr = (Elf64_Phdr *)lowmem.subref( + Elf64_Phdr *const phdr0 = (Elf64_Phdr *)lowmem.subref( "bad e_phoff", e_phoff, e_phnum * sizeof(Elf64_Phdr)); - unsigned off = fo->st_size(); + Elf64_Phdr *phdr = phdr0; + upx_off_t off = fo->st_size(); // 64 bits so_slide = 0; for (unsigned j = 0; j < e_phnum; ++j, ++phdr) { + // p_vaddr and p_paddr do not change! upx_uint64_t const len = get_te64(&phdr->p_filesz); - upx_uint64_t const ioff = get_te64(&phdri[j].p_offset); + upx_uint64_t const ioff = get_te64(&phdri[j].p_offset); // without asl_delta upx_uint64_t align= get_te64(&phdr->p_align); unsigned const type = get_te32(&phdr->p_type); if (Elf64_Phdr::PT_INTERP==type) { @@ -596,14 +705,13 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) continue; } if (PT_LOAD64 == type) { - if ((sz_pack2 + lsize) < page_size // really small - && ioff <= page_size) { // first or second PT_LOAD - set_te64(&phdr->p_filesz, page_size); - set_te64(&phdr->p_memsz, page_size); + if (!ioff) { // first PT_LOAD must contain everything written so far + set_te64(&phdr->p_filesz, sz_pack2 + lsize); // is this correct? + set_te64(&phdr->p_memsz, sz_pack2 + lsize); } else if ((xct_off - ioff) < len) { // Change length of compressed PT_LOAD. - set_te64(&phdr->p_filesz, sz_pack2 + lsize - ioff); - set_te64(&phdr->p_memsz, sz_pack2 + lsize - ioff); + set_te64(&phdr->p_filesz, total_out - ioff); // FIXME (sz_pack2 + lsize - ioff) ? + set_te64(&phdr->p_memsz, total_out - ioff); if (user_init_off < xct_off) { // MIPS puts PT_DYNAMIC here // Allow for DT_INIT in a new [stolen] slot unsigned off2 = user_init_off - sizeof(word); @@ -611,30 +719,29 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) fo->rewrite(&file_image[off2], 2*sizeof(word)); } } - else if (j && (Elf64_Phdr::PF_W & get_te64(&phdr->p_flags)) - && xct_off < ioff) { // Slide subsequent PT_LOAD. - // AMD64 chip supports page sizes of 4KiB, 2MiB, and 1GiB; - // the operating system chooses one. .p_align typically - // is a forward-looking 2MiB. In 2009 Linux chooses 4KiB. - // We choose 4KiB to waste less space. If Linux chooses - // 2MiB later, then our output will not run. + else if (xct_off < ioff) { // Slide subsequent PT_LOAD. if ((1u<<12) < align - && Elf64_Ehdr::EM_X86_64 ==e_machine + && Elf64_Ehdr::EM_X86_64 == e_machine // FIXME: other $ARCH ? ) { align = 1u<<12; set_te64(&phdr->p_align, align); } - off += (align-1) & (ioff - off); + off = fpadN(fo, (-1 + align) & (ioff - off)); + if (!so_slide) { + so_slide = off - (asl_delta + ioff); + //asl_slide_Shdrs(); + } set_te64(&phdr->p_offset, off); - so_slide = off - ioff; - fo->seek( off, SEEK_SET); + fo->seek(off, SEEK_SET); fo->write(&file_image[ioff], len); off += len; + total_out = off; } continue; // all done with this PT_LOAD } - if (xct_off < ioff) - set_te64(&phdr->p_offset, so_slide + ioff); + if (xct_off < ioff) { + set_te64(&phdr->p_offset, so_slide + asl_delta + ioff); + } } // end each Phdr if (opt->o_unix.android_shlib) { @@ -643,6 +750,7 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) "bad e_shoff", xct_off - asl_delta, e_shnum * sizeof(Elf64_Shdr)); for (unsigned j = 0; j < e_shnum; ++shdr, ++j) { unsigned sh_type = get_te32(&shdr->sh_type); +#if 0 //{ ? old 2018-01-15 if (Elf64_Shdr::SHT_DYNAMIC == sh_type) { upx_uint64_t offset = get_te64(&shdr->sh_offset); set_te64(&shdr->sh_offset, so_slide + offset); @@ -650,13 +758,40 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) fo->rewrite(shdr, sizeof(*shdr)); fo->seek(0, SEEK_END); } - if (Elf64_Shdr::SHT_RELA == sh_type - && n_jmp_slot - && !strcmp(".rela.plt", get_te32(&shdr->sh_name) + shstrtab)) { - upx_uint64_t f_off = elf_get_offset_from_address(plt_va); - fo->seek(so_slide + f_off, SEEK_SET); // FIXME: assumes PT_LOAD[1] - fo->rewrite(&file_image[f_off], n_jmp_slot * 8); +#endif //} + unsigned sh_flags = get_te32(&shdr->sh_flags); + unsigned sh_offset = get_te64(&shdr->sh_offset); // already asl_delta + if (Elf64_Shdr::SHF_ALLOC & sh_flags + && Elf64_Shdr::SHF_WRITE & sh_flags + && xct_off < sh_offset) { + set_te64(&shdr->sh_offset, so_slide + sh_offset); } + if (Elf64_Shdr::SHT_RELA == sh_type + && n_jmp_slot // FIXME: does this apply to SHT_RELA ? + && !strcmp(".rel.plt", get_te32(&shdr->sh_name) + shstrtab)) { + upx_uint64_t va = elf_unsigned_dynamic(Elf64_Dyn::DT_PLTGOT) - asl_delta; + // Now use the old Phdrs (phdri) + Elf64_Phdr *phva; + phva = elf_find_Phdr_for_va(va, phdri, e_phnum); + upx_uint64_t old_off = (va - get_te64(&phva->p_vaddr)) + + get_te64(&phva->p_offset); + + // Now use the new Phdrs (phdr0) + va += asl_delta; + phva = elf_find_Phdr_for_va(va, phdr0, e_phnum); + upx_uint64_t new_off = (va - get_te64(&phva->p_vaddr)) + + get_te64(&phva->p_offset); + + if (fo) { + fo->seek(new_off, SEEK_SET); + fo->rewrite(&file_image[old_off], n_jmp_slot * 8); + } + } + } + if (fo) { + fo->seek((unsigned char *)shdro - (unsigned char *)(void *)lowmem, SEEK_SET); + fo->rewrite(shdro, e_shnum * sizeof(*shdr)); + fo->seek(0, SEEK_END); } } else { // !opt->o_unix.android_shlib) @@ -665,7 +800,7 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) ehdri.e_shstrndx = 0; } } - return flen; + return total_out; } void @@ -731,9 +866,11 @@ PackLinuxElf32::PackLinuxElf32(InputFile *f) gashtab(nullptr), gashend(nullptr), dynsym(nullptr), jni_onload_sym(nullptr), sec_strndx(nullptr), sec_dynsym(nullptr), sec_dynstr(nullptr) + , sec_arm_attr(nullptr) , symnum_end(0) { memset(&ehdri, 0, sizeof(ehdri)); + n_jmp_slot = 0; if (f) { f->seek(0, SEEK_SET); f->readx(&ehdri, sizeof(ehdri)); @@ -755,6 +892,7 @@ PackLinuxElf64::PackLinuxElf64(InputFile *f) , symnum_end(0) { memset(&ehdri, 0, sizeof(ehdri)); + n_jmp_slot = 0; if (f) { f->seek(0, SEEK_SET); f->readx(&ehdri, sizeof(ehdri)); @@ -818,10 +956,15 @@ PackLinuxElf64::PackLinuxElf64help1(InputFile *f) f->seek(0, SEEK_SET); f->readx(file_image, file_size); phdri= (file_size <= (unsigned)e_phoff) ? nullptr : (Elf64_Phdr *)(e_phoff + file_image); // do not free() !! - shdri= (file_size <= (unsigned)e_shoff) ? nullptr : (Elf64_Shdr *)(e_shoff + file_image); // do not free() !! - if (opt->cmd != CMD_COMPRESS) { + if (!(opt->cmd == CMD_COMPRESS && e_shoff < (upx_uint64_t)file_size && mb_shdr.getSize() == 0)) { shdri = nullptr; } + else { + fi->seek(e_shoff, SEEK_SET); + mb_shdr.alloc( sizeof(Elf64_Shdr) * e_shnum); + shdri = (Elf64_Shdr *)mb_shdr.getVoidPtr(); + fi->readx(shdri, sizeof(Elf64_Shdr) * e_shnum); + } sec_dynsym = elf_find_section_type(Elf64_Shdr::SHT_DYNSYM); if (sec_dynsym) { unsigned t = get_te32(&sec_dynsym->sh_link); @@ -1191,76 +1334,6 @@ PackLinuxElf32::buildLinuxLoader( unsigned const szfold, Filter const *ft ) -{ - initLoader(proto, szproto); - - if (0 < szfold) { - struct b_info h; memset(&h, 0, sizeof(h)); - unsigned fold_hdrlen = 0; - cprElfHdr1 const *const hf = (cprElfHdr1 const *)fold; - fold_hdrlen = umax(0x80, usizeof(hf->ehdr) + - get_te16(&hf->ehdr.e_phentsize) * get_te16(&hf->ehdr.e_phnum) + - sizeof(l_info) ); - h.sz_unc = ((szfold < fold_hdrlen) ? 0 : (szfold - fold_hdrlen)); - h.b_method = (unsigned char) ph.method; - h.b_ftid = (unsigned char) ph.filter; - h.b_cto8 = (unsigned char) ph.filter_cto; - unsigned char const *const uncLoader = fold_hdrlen + fold; - - MemBuffer mb_cprLoader; - mb_cprLoader.allocForCompression(h.sz_unc + (0==h.sz_unc)); - h.sz_cpr = mb_cprLoader.getSize(); - unsigned char *const cprLoader = (unsigned char *)mb_cprLoader; - { - unsigned h_sz_cpr = h.sz_cpr; - int r = upx_compress(uncLoader, h.sz_unc, sizeof(h) + cprLoader, &h_sz_cpr, - nullptr, ph.method, 10, nullptr, nullptr ); - h.sz_cpr = h_sz_cpr; - if (r != UPX_E_OK || h.sz_cpr >= h.sz_unc) - throwInternalError("loader compression failed"); - } -#if 0 //{ debugging only - if (M_IS_LZMA(ph.method)) { - ucl_uint tmp_len = h.sz_unc; // LZMA uses this as EOF - MemBuffer mb_tmp(tmp_len); - unsigned char *tmp = (unsigned char *)mb_tmp; - memset(tmp, 0, tmp_len); - int r = upx_decompress(sizeof(h) + cprLoader, h.sz_cpr, tmp, &tmp_len, h.b_method, nullptr); - if (r == UPX_E_OUT_OF_MEMORY) - throwOutOfMemoryException(); - printf("\n%d %d: %d %d %d\n", h.b_method, r, h.sz_cpr, h.sz_unc, tmp_len); - for (unsigned j=0; j < h.sz_unc; ++j) if (tmp[j]!=uncLoader[j]) { - printf("%d: %x %x\n", j, tmp[j], uncLoader[j]); - } - } -#endif //} - unsigned const sz_cpr = h.sz_cpr; - set_te32(&h.sz_cpr, h.sz_cpr); - set_te32(&h.sz_unc, h.sz_unc); - memcpy(cprLoader, &h, sizeof(h)); - - // This adds the definition to the "library", to be used later. - linker->addSection("FOLDEXEC", cprLoader, sizeof(h) + sz_cpr, 0); - } - else { - linker->addSection("FOLDEXEC", "", 0, 0); - } - - addStubEntrySections(ft, 0); - - if (0==xct_off) - defineSymbols(ft); // main program only, not for shared lib - relocateLoader(); -} - -void -PackLinuxElf64::buildLinuxLoader( - upx_byte const *const proto, - unsigned const szproto, - upx_byte const *const fold, - unsigned const szfold, - Filter const *ft -) { MemBuffer mb_cprLoader; unsigned sz_cpr = 0; @@ -1270,7 +1343,8 @@ PackLinuxElf64::buildLinuxLoader( if (0 < szfold) { if (xct_off // shlib - && this->e_machine==Elf32_Ehdr::EM_X86_64 // experimental + && ( this->e_machine==Elf32_Ehdr::EM_ARM + || this->e_machine==Elf32_Ehdr::EM_386) ) { initLoader(fold, szfold); // Typical layout of 'sections' in compressed stub code for shared library: @@ -1305,7 +1379,9 @@ PackLinuxElf64::buildLinuxLoader( uncLoader = linker->getLoader(&sz_unc_int); sz_unc = sz_unc_int; } - method = M_NRV2B_LE32; + method = M_NRV2B_LE32; // requires unaligned fetch + if (this->e_machine==Elf32_Ehdr::EM_ARM) + method = M_NRV2B_8; //only ARM v6 and above has unaligned fetch } else { cprElfHdr1 const *const hf = (cprElfHdr1 const *)fold; @@ -1319,8 +1395,7 @@ PackLinuxElf64::buildLinuxLoader( struct b_info h; memset(&h, 0, sizeof(h)); h.b_method = method; - h.b_ftid = (unsigned char) ph.filter; - h.b_cto8 = (unsigned char) ph.filter_cto; + // _Ehdr and _Phdr are NOT filtered, so Leave h.b_ftid and h.b_cto8 as zero. mb_cprLoader.allocForCompression(sizeof(h) + sz_unc); unsigned char *const cprLoader = (unsigned char *)mb_cprLoader; // less typing @@ -1342,8 +1417,116 @@ PackLinuxElf64::buildLinuxLoader( initLoader(proto, szproto, -1, sz_cpr); NO_printf("FOLDEXEC unc=%#x cpr=%#x\n", sz_unc, sz_cpr); linker->addSection("FOLDEXEC", mb_cprLoader, sizeof(b_info) + sz_cpr, 0); - if (xct_off && this->e_machine==Elf32_Ehdr::EM_X86_64) { // experimental - addLoader("ELFMAINX,IDENTSTR,ELFMAINZ,FOLDEXEC"); + if (xct_off + && ( this->e_machine==Elf32_Ehdr::EM_ARM + || this->e_machine==Elf32_Ehdr::EM_386) + ) { + addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR"); + } + else { + addStubEntrySections(ft, (methods_used ? methods_used + : (1u << forced_method(ph.method))) ); + if (!xct_off) { + defineSymbols(ft); + } + } + relocateLoader(); +} + +void +PackLinuxElf64::buildLinuxLoader( + upx_byte const *const proto, + unsigned const szproto, + upx_byte const *const fold, + unsigned const szfold, + Filter const *ft +) +{ + MemBuffer mb_cprLoader; + unsigned sz_cpr = 0; + unsigned sz_unc = 0; + unsigned method = 0; + upx_byte const *uncLoader = nullptr; + + if (0 < szfold) { + if (xct_off // shlib + && ( this->e_machine==Elf64_Ehdr::EM_X86_64 + || this->e_machine==Elf64_Ehdr::EM_AARCH64) + ) { + initLoader(fold, szfold); +// Typical layout of 'sections' in compressed stub code for shared library: +// SO_HEAD +// ptr_NEXT +// EXP_HEAD NRV getbit(), copy +// NRV2B etc: daisy chain of de-compressor for each method used +// EXP_TAIL FIXME: unfilter +// SO_TAIL +// SO_MAIN C-language supervision based on PT_LOADs + char sec[120]; + int len = 0; + unsigned m_decompr = (methods_used ? methods_used : (1u << ph.method)); + len += snprintf(sec, sizeof(sec), "%s", "SO_HEAD,ptr_NEXT,EXP_HEAD"); + if (((1u<getLoader(&sz_unc_int); + sz_unc = sz_unc_int; + } + method = M_NRV2B_LE32; // requires unaligned fetch + } + else { + cprElfHdr1 const *const hf = (cprElfHdr1 const *)fold; + unsigned fold_hdrlen = umax(0x80, usizeof(hf->ehdr) + + get_te16(&hf->ehdr.e_phentsize) * get_te16(&hf->ehdr.e_phnum) + + sizeof(l_info) ); + uncLoader = fold_hdrlen + fold; + sz_unc = ((szfold < fold_hdrlen) ? 0 : (szfold - fold_hdrlen)); + method = ph.method; + } + + struct b_info h; memset(&h, 0, sizeof(h)); + h.b_method = method; + // _Ehdr and _Phdr are NOT filtered, so Leave h.b_ftid and h.b_cto8 as zero. + + mb_cprLoader.allocForCompression(sizeof(h) + sz_unc); + unsigned char *const cprLoader = (unsigned char *)mb_cprLoader; // less typing + + h.sz_unc = sz_unc; + h.sz_cpr = mb_cprLoader.getSize(); // max that upx_compress may use + { + int r = upx_compress(uncLoader, sz_unc, sizeof(h) + cprLoader, &sz_cpr, + nullptr, forced_method(method), 10, nullptr, nullptr ); + h.sz_cpr = sz_cpr; // actual length used + if (r != UPX_E_OK || h.sz_cpr >= h.sz_unc) + throwInternalError("loader compression failed"); + } + set_te32(&h.sz_cpr, h.sz_cpr); + set_te32(&h.sz_unc, h.sz_unc); + memcpy(cprLoader, &h, sizeof(h)); // cprLoader will become FOLDEXEC + } + + initLoader(proto, szproto, -1, sz_cpr); + NO_printf("FOLDEXEC unc=%#x cpr=%#x\n", sz_unc, sz_cpr); + linker->addSection("FOLDEXEC", mb_cprLoader, sizeof(b_info) + sz_cpr, 0); + if (xct_off + && ( this->e_machine==Elf64_Ehdr::EM_X86_64 + || this->e_machine==Elf64_Ehdr::EM_AARCH64) + ) { + addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR"); } else { addStubEntrySections(ft, (methods_used ? methods_used @@ -1364,8 +1547,12 @@ PackLinuxElf64amd::defineSymbols(Filter const *ft) static const #include "stub/i386-linux.elf-entry.h" static const +#include "stub/i386-linux.elf-so_entry.h" +static const #include "stub/i386-linux.elf-fold.h" static const +#include "stub/i386-linux.elf-so_fold.h" +static const #include "stub/i386-linux.shlib-init.h" void @@ -1373,8 +1560,8 @@ PackLinuxElf32x86::buildLoader(const Filter *ft) { if (0!=xct_off) { // shared library buildLinuxLoader( - stub_i386_linux_shlib_init, sizeof(stub_i386_linux_shlib_init), - nullptr, 0, ft ); + stub_i386_linux_elf_so_entry, sizeof(stub_i386_linux_elf_so_entry), + stub_i386_linux_elf_so_fold, sizeof(stub_i386_linux_elf_so_fold), ft); return; } unsigned char tmp[sizeof(stub_i386_linux_elf_fold)]; @@ -1486,14 +1673,22 @@ PackOpenBSDElf32x86::buildLoader(const Filter *ft) static const #include "stub/arm.v5a-linux.elf-entry.h" static const +#include "stub/arm.v5a-linux.elf-so_entry.h" +static const #include "stub/arm.v5a-linux.elf-fold.h" static const +#include "stub/arm.v5a-linux.elf-so_fold.h" +static const #include "stub/arm.v5t-linux.shlib-init.h" static const #include "stub/arm.v4a-linux.elf-entry.h" static const +#include "stub/arm.v4a-linux.elf-so_entry.h" +static const #include "stub/arm.v4a-linux.elf-fold.h" +static const +#include "stub/arm.v4a-linux.elf-so_fold.h" #if 0 static const #include "stub/arm.v4a-linux.shlib-init.h" @@ -1516,11 +1711,10 @@ void PackLinuxElf32armLe::buildLoader(Filter const *ft) { if (Elf32_Ehdr::ELFOSABI_LINUX==ei_osabi) { - if (0!=xct_off) { // shared library - buildLinuxLoader( - stub_arm_v5t_linux_shlib_init, sizeof(stub_arm_v5t_linux_shlib_init), - nullptr, 0, ft ); + buildLinuxLoader( // FIXME: 4 vs 5 ? + stub_arm_v5a_linux_elf_so_entry, sizeof(stub_arm_v5a_linux_elf_so_entry), + stub_arm_v5a_linux_elf_so_fold, sizeof(stub_arm_v5a_linux_elf_so_fold), ft); return; } buildLinuxLoader( @@ -1643,8 +1837,12 @@ PackLinuxElf64amd::buildLoader(const Filter *ft) static const #include "stub/arm64-linux.elf-entry.h" static const +#include "stub/arm64-linux.elf-so_entry.h" +static const #include "stub/arm64-linux.elf-fold.h" static const +#include "stub/arm64-linux.elf-so_fold.h" +static const #include "stub/arm64-linux.shlib-init.h" void @@ -1652,8 +1850,8 @@ PackLinuxElf64arm::buildLoader(const Filter *ft) { if (0!=xct_off) { // shared library buildLinuxLoader( - stub_arm64_linux_shlib_init, sizeof(stub_arm64_linux_shlib_init), - nullptr, 0, ft ); + stub_arm64_linux_elf_so_entry, sizeof(stub_arm64_linux_elf_so_entry), + stub_arm64_linux_elf_so_fold, sizeof(stub_arm64_linux_elf_so_fold), ft); return; } buildLinuxLoader( @@ -1837,7 +2035,6 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, unsigned headway) throwCantPack(msg); } } - unsigned const e_shstrndx = get_te16(&ehdri.e_shstrndx); if (e_shnum <= e_shstrndx && !(0==e_shnum && 0==e_shstrndx) ) { char msg[40]; snprintf(msg, sizeof(msg), @@ -1916,11 +2113,11 @@ Elf64_Shdr const *PackLinuxElf64::elf_find_section_name( return nullptr; } -Elf32_Shdr const *PackLinuxElf32::elf_find_section_type( +Elf32_Shdr *PackLinuxElf32::elf_find_section_type( unsigned const type ) const { - Elf32_Shdr const *shdr = shdri; + Elf32_Shdr *shdr = shdri; if (!shdr) { return nullptr; } @@ -1933,11 +2130,11 @@ Elf32_Shdr const *PackLinuxElf32::elf_find_section_type( return nullptr; } -Elf64_Shdr const *PackLinuxElf64::elf_find_section_type( +Elf64_Shdr *PackLinuxElf64::elf_find_section_type( unsigned const type ) const { - Elf64_Shdr const *shdr = shdri; + Elf64_Shdr *shdr = shdri; if (!shdr) { return nullptr; } @@ -2050,6 +2247,28 @@ bool PackLinuxElf32::canPack() } u; COMPILE_TIME_ASSERT(sizeof(u.buf) <= 512) +// Design with "extra" Shdrs in output at xct_off DOES NOT WORK +// because code for EM_ARM has embedded relocations +// that are not made visible, such as: +// ----- glibc-2.31/sysdeps/arm/crti.S +// .type call_weak_fn, %function +// call_weak_fn: +// ldr r3, .LGOT +// ldr r2, .LGOT+4 +// .LPIC: +// add r3, pc, r3 +// ldr r2, [r3, r2] +// cmp r2, #0 +// bxeq lr +// b PREINIT_FUNCTION +// .p2align 2 +// .LGOT: +// .word _GLOBAL_OFFSET_TABLE_-(.LPIC+8) // unseen reloc! +// .word PREINIT_FUNCTION(GOT) +// ----- +// So, PackUnix::PackUnix() disables (but silently accepts) --android-shlib, +// and see if appending ARM_ATTRIBUTES Shdr is good enough. + fi->seek(0, SEEK_SET); fi->readx(u.buf, sizeof(u.buf)); fi->seek(0, SEEK_SET); @@ -2145,6 +2364,40 @@ bool PackLinuxElf32::canPack() return false; } + upx_uint32_t max_LOADsz = 0, max_offset = 0; + phdr = phdri; + for (unsigned j=0; j < e_phnum; ++phdr, ++j) { + if (j >= 14) { + throwCantPack("too many ElfXX_Phdr; try '--force-execve'"); + return false; + } + unsigned const p_type = get_te32(&phdr->p_type); + if (PT_LOAD32 == p_type) { + // The first PT_LOAD32 must cover the beginning of the file (0==p_offset). + if (1!= exetype) { + exetype = 1; + load_va = get_te32(&phdr->p_vaddr); // class data member + upx_uint32_t const p_offset = get_te32(&phdr->p_offset); + upx_uint32_t const off = ~page_mask & (upx_uint32_t)load_va; + if (off && off == p_offset) { // specific hint + throwCantPack("Go-language PT_LOAD: try hemfix.c, or try '--force-execve'"); + // Fixing it inside upx fails because packExtent() reads original file. + return false; + } + if (0 != p_offset) { // 1st PT_LOAD must cover Ehdr and Phdr + throwCantPack("first PT_LOAD.p_offset != 0; try '--force-execve'"); + return false; + } + // FIXME: bad for shlib! + hatch_off = ~3ul & (3+ get_te32(&phdr->p_memsz)); + } + max_LOADsz = UPX_MAX(max_LOADsz, get_te32(&phdr->p_filesz)); + max_offset = UPX_MAX(max_offset, get_te32(&phdr->p_filesz) + get_te32(&phdr->p_offset)); + } + } + if (canUnpack() > 0) { + throwAlreadyPacked(); + } // We want to compress position-independent executable (gcc -pie) // main programs, but compressing a shared library must be avoided // because the result is no longer usable. In theory, there is no way @@ -2171,7 +2424,6 @@ bool PackLinuxElf32::canPack() sec_strndx = nullptr; shstrtab = nullptr; if (e_shnum) { - unsigned const e_shstrndx = get_te16(&ehdr->e_shstrndx); if (e_shstrndx) { if (e_shnum <= e_shstrndx) { char msg[40]; snprintf(msg, sizeof(msg), @@ -2280,6 +2532,10 @@ bool PackLinuxElf32::canPack() opt->info_mode--; } } + if (Elf32_Ehdr::EM_MIPS == get_te16(&ehdr->e_machine) + || Elf32_Ehdr::EM_PPC == get_te16(&ehdr->e_machine)) { + throwCantPack("This test UPX cannot pack .so for MIPS or PowerPC; coming soon."); + } Elf32_Shdr const *shdr = shdri; xct_va = ~0u; if (e_shnum) { @@ -2455,7 +2711,9 @@ proceed: ; exetype = 0; // set options - opt->o_unix.blocksize = blocksize = file_size; + // this->blocksize: avoid over-allocating. + // (file_size - max_offset): debug info, non-globl symbols, etc. + opt->o_unix.blocksize = blocksize = UPX_MAX(max_LOADsz, (unsigned)(file_size - max_offset)); return true; } @@ -2498,6 +2756,9 @@ PackLinuxElf64::canPack() } u; COMPILE_TIME_ASSERT(sizeof(u) <= 1024) + // See explanation at PackLinuxElf32::canPack + opt->o_unix.android_shlib = 0; + fi->readx(u.buf, sizeof(u.buf)); fi->seek(0, SEEK_SET); Elf64_Ehdr const *const ehdr = (Elf64_Ehdr *) u.buf; @@ -2676,6 +2937,9 @@ PackLinuxElf64::canPack() opt->info_mode--; } } + if (Elf64_Ehdr::EM_PPC64 == get_te16(&ehdr->e_machine)) { + throwCantPack("This test UPX cannot pack .so for PowerPC64; coming soon."); + } Elf64_Shdr const *shdr = shdri; xct_va = ~0ull; if (e_shnum) { @@ -3322,16 +3586,113 @@ PackLinuxElf64::adjABS(Elf64_Sym *sym, unsigned long delta) return 0; } -void PackLinuxElf32::pack1(OutputFile *fo, Filter & /*ft*/) +void PackLinuxElf32::pack1(OutputFile * /*fo*/, Filter &ft) { fi->seek(0, SEEK_SET); fi->readx(&ehdri, sizeof(ehdri)); assert(e_phoff == sizeof(Elf32_Ehdr)); // checked by canPack() sz_phdrs = e_phnum * get_te16(&ehdri.e_phentsize); - // Remember all PT_NOTE, and find lg2_page from PT_LOAD. - Elf32_Phdr *phdr = phdri; +// We compress separate pieces (usually each PT_LOAD, plus the gaps in the file +// that are not covered by any PT_LOAD), but currently at run time there can be +// only one decompressor method. +// Therefore we must plan ahead because Packer::compressWithFilters tries +// to find the smallest result among the available methods, for one piece only. +// In the future we may allow more than one decompression method at run time. +// For now we must choose only one, and force PackUnix::packExtent +// (==> compressWithFilters) to use it. + int nfilters = 0; + { + int const *fp = getFilters(); + while (FT_END != *fp++) { + ++nfilters; + } + } + { + int npieces = 1; // tail after highest PT_LOAD + Elf32_Phdr *phdr = phdri; + for (unsigned j=0; j < e_phnum; ++phdr, ++j) { + if (PT_LOAD32 == get_te32(&phdr->p_type)) { + unsigned const flags = get_te32(&phdr->p_flags); + unsigned offset = get_te32(&phdr->p_offset); + if (!xct_off // not shlib + // new-style shlib: PT_LOAD[0] has symbol table + // which must not be compressed, but also lacks PF_X + || (Elf32_Phdr::PF_X & flags) + // Read-only, non-first PT_LOAD is _assumed_ to be compressible + || (!(Elf32_Phdr::PF_W & flags) && 0!=offset)) + { + ++npieces; // will attempt compression of this PT_LOAD + } + } + } + uip->ui_total_passes += npieces; + } + int methods[256]; + unsigned nmethods = prepareMethods(methods, ph.method, getCompressionMethods(M_ALL, ph.level)); + if (1 < nmethods) { // Many are available, but we must choose only one + uip->ui_total_passes += 1; // the batch for output + uip->ui_total_passes *= nmethods * (1+ nfilters); // finding smallest total + PackHeader orig_ph = ph; + Filter orig_ft = ft; + unsigned max_offset = 0; + unsigned sz_best= ~0u; + int method_best = 0; + for (unsigned k = 0; k < nmethods; ++k) { // FIXME: parallelize; cost: working space + unsigned sz_this = 0; + Elf32_Phdr *phdr = phdri; + for (unsigned j=0; j < e_phnum; ++phdr, ++j) { + if (PT_LOAD32 == get_te32(&phdr->p_type)) { + unsigned const flags = get_te32(&phdr->p_flags); + unsigned offset = get_te32(&phdr->p_offset); + unsigned filesz = get_te32(&phdr->p_filesz); + max_offset = UPX_MAX(max_offset, filesz + offset); + if (!xct_off // not shlib + // new-style shlib: PT_LOAD[0] has symbol table + // which must not be compressed, but also lacks PF_X + || (Elf32_Phdr::PF_X & flags) + // Read-only, non-first PT_LOAD is _assumed_ to be compressible + || (!(Elf32_Phdr::PF_W & flags) && 0!=offset)) + { + if (xct_off && 0==offset) { // old-style shlib + offset = xct_off; + filesz -= xct_off; + } + fi->seek(offset, SEEK_SET); + fi->readx(ibuf, filesz); + ft = orig_ft; + ph = orig_ph; + ph.method = force_method(methods[k]); + ph.u_len = filesz; + compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true); + sz_this += ph.c_len; + } + } + } + unsigned const sz_tail = file_size - max_offset; // debuginfo, etc. + if (sz_tail) { + fi->seek(max_offset, SEEK_SET); + fi->readx(ibuf, sz_tail); + ft = orig_ft; + ph = orig_ph; + ph.method = force_method(methods[k]); + ph.u_len = sz_tail; + compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true); + sz_this += ph.c_len; + } + // FIXME: loader size also depends on method + if (sz_best > sz_this) { + sz_best = sz_this; + method_best = methods[k]; + } + } + ft = orig_ft; + ph = orig_ph; + ph.method = force_method(method_best); + } + note_size = 0; + Elf32_Phdr *phdr = phdri; for (unsigned j=0; j < e_phnum; ++phdr, ++j) { if (PT_NOTE32 == get_te32(&phdr->p_type)) { note_size += up4(get_te32(&phdr->p_filesz)); @@ -3356,264 +3717,30 @@ void PackLinuxElf32::pack1(OutputFile *fo, Filter & /*ft*/) ++lg2_page; } } + if (PT_GNU_RELRO32 == type) { + // .p_align can be like 2M, which is a huge over-estimate. + // RELRO ends on a page boundary: usually close to actual page_size + unsigned offset = get_te32(&phdr->p_offset); + unsigned filesz = get_te32(&phdr->p_filesz); + if (!(0xfff & (filesz + offset))) { // a 4KiB boundary + unsigned b = 12; + while (!(~(~0u << b) & (filesz + offset))) { + ++b; + } + lg2_page = umin(lg2_page, -1+ b); + } + } if (PT_GNU_STACK32 == type) { - // MIPS stub cannot handle GNU_STACK yet. - if (Elf32_Ehdr::EM_MIPS != this->e_machine) { - gnu_stack = phdr; - } + gnu_stack = phdr; } } - page_size = 1u<o_unix.android_shlib - ? 0 - : e_shnum * sizeof(Elf32_Shdr))); - memcpy(lowmem, file_image, xct_off); // android omits Shdr here - fo->write(lowmem, xct_off); // < SHF_EXECINSTR (typ: in .plt or .init) - if (opt->o_unix.android_shlib) { - // In order to pacify the runtime linker on Android "O" ("Oreo"), - // we will splice-in a 4KiB page that contains an "extra" copy - // of the Shdr, any PT_NOTE above xct_off, and shstrtab. - // File order: Ehdr, Phdr[], section contents below xct_off, - // Shdr_copy[], PT_NOTEs.hi, shstrtab. - xct_va += asl_delta; - //xct_off += asl_delta; // not yet - // Relocate PT_DYNAMIC (in 2nd PT_LOAD) - Elf32_Dyn *dyn = const_cast(dynseg); - for (; dyn->d_tag; ++dyn) { - unsigned d_tag = get_te32(&dyn->d_tag); - if (Elf32_Dyn::DT_FINI == d_tag - || Elf32_Dyn::DT_FINI_ARRAY == d_tag - || Elf32_Dyn::DT_INIT_ARRAY == d_tag - || Elf32_Dyn::DT_PREINIT_ARRAY == d_tag - || Elf32_Dyn::DT_PLTGOT == d_tag) { - unsigned d_val = get_te32(&dyn->d_val); - set_te32(&dyn->d_val, asl_delta + d_val); - } - } - - // Relocate dynsym (DT_SYMTAB) which is below xct_va - unsigned const off_dynsym = get_te32(&sec_dynsym->sh_offset); - unsigned const sz_dynsym = get_te32(&sec_dynsym->sh_size); - Elf32_Sym *dyntym = (Elf32_Sym *)lowmem.subref( - "bad dynsym", off_dynsym, sz_dynsym); - Elf32_Sym *sym = dyntym; - for (int j = sz_dynsym / sizeof(Elf32_Sym); --j>=0; ++sym) { - unsigned symval = get_te32(&sym->st_value); - unsigned symsec = get_te16(&sym->st_shndx); - if (Elf32_Sym::SHN_UNDEF != symsec - && Elf32_Sym::SHN_ABS != symsec - && xct_off <= symval) { - set_te32(&sym->st_value, asl_delta + symval); - } - if (Elf32_Sym::SHN_ABS == symsec && xct_off <= symval) { - adjABS(sym, asl_delta); - } - } - - // Relocate Phdr virtual addresses, but not physical offsets and sizes - unsigned char buf_notes[512]; memset(buf_notes, 0, sizeof(buf_notes)); - unsigned len_notes = 0; - phdr = (Elf32_Phdr *)lowmem.subref( - "bad e_phoff", e_phoff, e_phnum * sizeof(Elf32_Phdr)); - for (unsigned j = 0; j < e_phnum; ++j, ++phdr) { - upx_uint32_t offset = get_te32(&phdr->p_offset); - if (xct_off <= offset) { // above the extra page - if (PT_NOTE32 == get_te32(&phdr->p_type)) { - upx_uint32_t memsz = get_te32(&phdr->p_memsz); - if (sizeof(buf_notes) < (memsz + len_notes)) { - throwCantPack("PT_NOTEs too big"); - } - set_te32(&phdr->p_vaddr, - len_notes + (e_shnum * sizeof(Elf32_Shdr)) + xct_off); - phdr->p_offset = phdr->p_paddr = phdr->p_vaddr; - memcpy(&buf_notes[len_notes], &file_image[offset], memsz); - len_notes += memsz; - } - else { - //set_te32(&phdr->p_offset, asl_delta + offset); // physical - upx_uint32_t addr = get_te32(&phdr->p_paddr); - set_te32(&phdr->p_paddr, asl_delta + addr); - addr = get_te32(&phdr->p_vaddr); - set_te32(&phdr->p_vaddr, asl_delta + addr); - } - } - // .p_filesz,.p_memsz are updated in ::pack3 - } - - Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)&lowmem[0]; - upx_uint32_t e_entry = get_te32(&ehdr->e_entry); - if (xct_off < e_entry) { - set_te32(&ehdr->e_entry, asl_delta + e_entry); - } - // Relocate Shdr; and Rela, Rel (below xct_off) - set_te32(&ehdr->e_shoff, xct_off); - memcpy(&lowmem[xct_off], shdri, e_shnum * sizeof(Elf32_Shdr)); - Elf32_Shdr *const shdro = (Elf32_Shdr *)&lowmem[xct_off]; - Elf32_Shdr *shdr = shdro; - unsigned sz_shstrtab = get_te32(&sec_strndx->sh_size); - for (unsigned j = 0; j < e_shnum; ++j, ++shdr) { - - unsigned sh_type = get_te32(&shdr->sh_type); - unsigned sh_size = get_te32(&shdr->sh_size); - unsigned sh_offset = get_te32(&shdr->sh_offset); - unsigned sh_entsize = get_te32(&shdr->sh_entsize); - unsigned sh_flags = get_te32(&shdr->sh_flags); - if (xct_off <= sh_offset - // Omit .comment (0==.sh_addr; !SHF_ALLOC) etc. - && (shdr->sh_addr || Elf32_Shdr::SHF_ALLOC & sh_flags) - ) { - //set_te32(&shdr->sh_offset, asl_delta + sh_offset); // FIXME ?? - upx_uint32_t addr = get_te32(&shdr->sh_addr); - set_te32(&shdr->sh_addr, asl_delta + addr); - } - if (Elf32_Shdr::SHT_RELA== sh_type) { - if (sizeof(Elf32_Rela) != sh_entsize) { - char msg[50]; - snprintf(msg, sizeof(msg), "bad Rela.sh_entsize %u", sh_entsize); - throwCantPack(msg); - } - n_jmp_slot = 0; - plt_va = ~0u; - Elf32_Rela *const relb = (Elf32_Rela *)lowmem.subref( - "bad Rela offset", sh_offset, sh_size); - Elf32_Rela *rela = relb; - for (int k = sh_size / sh_entsize; --k >= 0; ++rela) { - unsigned r_addend = get_te32(&rela->r_addend); - unsigned r_offset = get_te32(&rela->r_offset); - unsigned r_info = get_te32(&rela->r_info); - unsigned r_type = ELF32_R_TYPE(r_info); - if (xct_off <= r_offset) { - set_te32(&rela->r_offset, asl_delta + r_offset); - } - if (Elf32_Ehdr::EM_ARM == e_machine) { - if (R_ARM_RELATIVE == r_type) { - if (xct_off <= r_addend) { - set_te32(&rela->r_addend, asl_delta + r_addend); - } - } - if (R_ARM_JUMP_SLOT == r_type) { - // .rela.plt contains offset of the "first time" target - if (plt_va > r_offset) { - plt_va = r_offset; - } - unsigned d = elf_get_offset_from_address(r_offset); - unsigned w = get_te32(&file_image[d]); - if (xct_off <= w) { - set_te32(&file_image[d], asl_delta + w); - } - ++n_jmp_slot; - } - } - } - fo->seek(sh_offset, SEEK_SET); - fo->rewrite(relb, sh_size); - } - if (Elf32_Shdr::SHT_REL == sh_type) { - if (sizeof(Elf32_Rel) != sh_entsize) { - char msg[50]; - snprintf(msg, sizeof(msg), "bad Rel.sh_entsize %u", sh_entsize); - throwCantPack(msg); - } - n_jmp_slot = 0; - plt_va = ~0u; - Elf32_Rel *const rel0 = (Elf32_Rel *)lowmem.subref( - "bad Rel offset", sh_offset, sh_size); - Elf32_Rel *rel = rel0; - for (int k = sh_size / sh_entsize; --k >= 0; ++rel) { - unsigned r_offset = get_te32(&rel->r_offset); - unsigned r_info = get_te32(&rel->r_info); - unsigned r_type = ELF32_R_TYPE(r_info); - unsigned d = elf_get_offset_from_address(r_offset); - unsigned w = get_te32(&file_image[d]); - if (xct_off <= r_offset) { - set_te32(&rel->r_offset, asl_delta + r_offset); - } - if (Elf32_Ehdr::EM_ARM == e_machine) switch (r_type) { - default: { - char msg[90]; snprintf(msg, sizeof(msg), - "unexpected relocation %#x [%#x]", - r_type, -1 + (sh_size / sh_entsize) - k); - throwCantPack(msg); - } break; - case R_ARM_ABS32: // FALL THROUGH - case R_ARM_GLOB_DAT: // FALL THROUGH - case R_ARM_RELATIVE: { - if (xct_off <= w) { - set_te32(&file_image[d], asl_delta + w); - } - } break; - case R_ARM_JUMP_SLOT: { - if (plt_va > r_offset) { - plt_va = r_offset; - } - if (xct_off <= w) { - set_te32(&file_image[d], asl_delta + w); - } - ++n_jmp_slot; - }; break; - } - } - fo->seek(sh_offset, SEEK_SET); - fo->rewrite(rel0, sh_size); - } - if (Elf32_Shdr::SHT_NOTE == sh_type) { - if (!(Elf32_Shdr::SHF_ALLOC & get_te32(&shdr->sh_flags))) { - // example: version number of 'gold' linker (static binder) - if (sizeof(buf_notes) < (sh_size + len_notes)) { - throwCantPack("SHT_NOTEs too big"); - } - set_te32(&shdro[j].sh_offset, - len_notes + (e_shnum * sizeof(Elf32_Shdr)) + xct_off); - memcpy(&buf_notes[len_notes], &file_image[sh_offset], sh_size); - len_notes += sh_size; - } - else { // SHF_ALLOC, thus already in PT_LOAD - // Not sure why we need this conditional. - // Anyway, some Android have multiple SHT_NOTE sections. - if (xct_off <= sh_offset) { - upx_uint32_t pos = xct_off + e_shnum * sizeof(Elf32_Shdr); - set_te32(&shdr->sh_addr, pos); - set_te32(&shdr->sh_offset, pos); - } - } - } - } - // shstrndx will move - set_te32(&shdro[get_te16(&ehdri.e_shstrndx)].sh_offset, - len_notes + e_shnum * sizeof(Elf32_Shdr) + xct_off); - - // (Re-)write all changes below xct_off - fo->seek(0, SEEK_SET); - fo->rewrite(lowmem, xct_off); - - // New copy of Shdr - Elf32_Shdr blank; memset(&blank, 0, sizeof(blank)); - set_te32(&blank.sh_offset, xct_off); // hint for "upx -d" - fo->write(&blank, sizeof(blank)); - fo->write(&shdro[1], (-1+ e_shnum) * sizeof(Elf32_Shdr)); - - if (len_notes) { - fo->write(buf_notes, len_notes); - } - - // New copy of Shdr[.e_shstrndx].[ sh_offset, +.sh_size ) - fo->write(shstrtab, sz_shstrtab); - - sz_elf_hdrs = fpad4(fo); - //xct_off += asl_delta; // wait until ::pack3 - } - memset(&linfo, 0, sizeof(linfo)); - fo->write(&linfo, sizeof(linfo)); - } - - // if the preserve build-id option was specified + // only execute if option present if (opt->o_unix.preserve_build_id) { // set this so we can use elf_find_section_name e_shnum = get_te16(&ehdri.e_shnum); @@ -3628,7 +3755,7 @@ void PackLinuxElf32::pack1(OutputFile *fo, Filter & /*ft*/) //set the shstrtab sec_strndx = &shdri[get_te16(&ehdri.e_shstrndx)]; - unsigned sh_size = get_te32(&sec_strndx->sh_size); + upx_uint32_t sh_size = get_te32(&sec_strndx->sh_size); mb_shstrtab.alloc(sh_size); shstrtab = (char *)mb_shstrtab.getVoidPtr(); fi->seek(0,SEEK_SET); fi->seek(sec_strndx->sh_offset,SEEK_SET); @@ -3840,9 +3967,10 @@ void PackLinuxElf64::asl_pack2_Shdrs(OutputFile *fo, unsigned pre_xct_top) set_te64(&ehdr->e_entry, asl_delta + e_entry); } // Relocate Shdr; and Rela, Rel (below xct_off) - set_te64(&ehdr->e_shoff, up8(pre_xct_top)); // Shdr alignment - memcpy(&lowmem[pre_xct_top], shdri, e_shnum * sizeof(Elf64_Shdr)); - Elf64_Shdr *const shdro = (Elf64_Shdr *)&lowmem[pre_xct_top]; + unsigned const pal_xct_top = up8(pre_xct_top); + set_te64(&ehdr->e_shoff, up8(pal_xct_top)); // Shdr alignment + memcpy(&lowmem[pal_xct_top], shdri, e_shnum * sizeof(Elf64_Shdr)); + shdro = (Elf64_Shdr *)&lowmem[pal_xct_top]; Elf64_Shdr *shdr = shdro; upx_uint64_t sz_shstrtab = get_te64(&sec_strndx->sh_size); for (unsigned j = 0; j < e_shnum; ++j, ++shdr) { @@ -3870,7 +3998,6 @@ void PackLinuxElf64::asl_pack2_Shdrs(OutputFile *fo, unsigned pre_xct_top) snprintf(msg, sizeof(msg), "bad Rela.sh_entsize %lu", (long)sh_entsize); throwCantPack(msg); } - n_jmp_slot = 0; plt_va = ~0ull; Elf64_Rela *const relb = (Elf64_Rela *)lowmem.subref( "bad Rela offset", sh_offset, sh_size); @@ -3963,17 +4090,17 @@ void PackLinuxElf64::asl_pack2_Shdrs(OutputFile *fo, unsigned pre_xct_top) } // shstrndx will move set_te64(&shdro[get_te16(&ehdri.e_shstrndx)].sh_offset, - len_notes + e_shnum * sizeof(Elf64_Shdr) + pre_xct_top); + len_notes + e_shnum * sizeof(Elf64_Shdr) + pal_xct_top); - // ("Re-")write all changes below pre_xct_top + // ("Re-")write all changes below pal_xct_top fo->seek(0, SEEK_SET); - fo->write(lowmem, pre_xct_top); - total_in = pre_xct_top; + fo->write(lowmem, pal_xct_top); + total_in = pal_xct_top; // New copy of Shdr Elf64_Shdr blank; memset(&blank, 0, sizeof(blank)); set_te64(&blank.sh_offset, xct_off); // hint for "upx -d" - fpad8(fo); // Shdr alignment + fpad8(fo, total_out); // Shdr alignment fo->write(&blank, sizeof(blank)); fo->write(&shdro[1], (-1+ e_shnum) * sizeof(Elf64_Shdr)); @@ -3984,14 +4111,357 @@ void PackLinuxElf64::asl_pack2_Shdrs(OutputFile *fo, unsigned pre_xct_top) // New copy of Shdr[.e_shstrndx].[ sh_offset, +.sh_size ) fo->write(shstrtab, sz_shstrtab); - sz_elf_hdrs = fpad8(fo); + sz_elf_hdrs = fpad8(fo, total_out); total_out = sz_elf_hdrs; //xct_off += asl_delta; // wait until ::pack3 - unsigned d = asl_delta + pre_xct_top - sz_elf_hdrs; + unsigned d = asl_delta + pal_xct_top - sz_elf_hdrs; fo->seek(d, SEEK_CUR); total_out += d; } +void PackLinuxElf32::asl_pack2_Shdrs(OutputFile *fo, unsigned pre_xct_top) +{ + // In order to pacify the runtime linker on Android "O" ("Oreo"), + // we will splice-in a 4KiB page that contains an "extra" copy + // of the Shdr, any PT_NOTE above xct_off, and shstrtab. + // File order: Ehdr, Phdr[], section contents below xct_off, + // Shdr_copy[], PT_NOTEs.hi, shstrtab. + xct_va += asl_delta; + //xct_off += asl_delta; // not until ::pack3() + + total_in = pre_xct_top; + + // Relocate PT_DYNAMIC (in PT_LOAD with PF_W) + Elf32_Dyn *dyn = const_cast(dynseg); + for (; dyn->d_tag; ++dyn) { + upx_uint32_t d_tag = get_te32(&dyn->d_tag); + if (Elf32_Dyn::DT_FINI == d_tag + || Elf32_Dyn::DT_FINI_ARRAY == d_tag + || Elf32_Dyn::DT_INIT_ARRAY == d_tag + || Elf32_Dyn::DT_PREINIT_ARRAY == d_tag + || Elf32_Dyn::DT_PLTGOT == d_tag) { + upx_uint32_t d_val = get_te32(&dyn->d_val); + set_te32(&dyn->d_val, asl_delta + d_val); + } + } + // Updated dynseg (.dynamic, in PT_DYNAMIC (PT_LOAD{PF_W})) has not been written. + // dynseg is in file_image[] but not in low_mem[]. + + // Relocate dynsym (DT_SYMTAB) which is below xct_va + upx_uint32_t const off_dynsym = get_te32(&sec_dynsym->sh_offset); + upx_uint32_t const sz_dynsym = get_te32(&sec_dynsym->sh_size); + if ((upx_uint32_t)file_size < sz_dynsym + || (upx_uint32_t)file_size < off_dynsym + || ((upx_uint32_t)file_size - off_dynsym) < sz_dynsym) { + throwCantPack("bad DT_SYMTAB"); + } + Elf32_Sym *dyntym = (Elf32_Sym *)lowmem.subref( + "bad dynsym", off_dynsym, sz_dynsym); + Elf32_Sym *sym = dyntym; + for (int j = sz_dynsym / sizeof(Elf32_Sym); --j>=0; ++sym) { + upx_uint32_t symval = get_te32(&sym->st_value); + unsigned symsec = get_te16(&sym->st_shndx); + if (Elf32_Sym::SHN_UNDEF != symsec + && Elf32_Sym::SHN_ABS != symsec + && xct_off <= symval) { + set_te32(&sym->st_value, asl_delta + symval); + } + if (Elf32_Sym::SHN_ABS == symsec && xct_off <= symval) { + adjABS(sym, asl_delta); + } + } + + // Relocate Phdr virtual addresses, but not physical offsets and sizes + unsigned char buf_notes[512]; memset(buf_notes, 0, sizeof(buf_notes)); + unsigned len_notes = 0; + Elf32_Phdr *phdr = (Elf32_Phdr *)lowmem.subref( + "bad e_phoff", e_phoff, e_phnum * sizeof(Elf32_Phdr)); + for (unsigned j = 0; j < e_phnum; ++j, ++phdr) { + upx_uint32_t offset = get_te32(&phdr->p_offset); + if (xct_off <= offset) { // above the extra page + if (PT_NOTE32 == get_te32(&phdr->p_type)) { + upx_uint32_t memsz = get_te32(&phdr->p_memsz); + if (sizeof(buf_notes) < (memsz + len_notes)) { + throwCantPack("PT_NOTES too big"); + } + set_te32(&phdr->p_vaddr, + len_notes + (e_shnum * sizeof(Elf32_Shdr)) + xct_off); + phdr->p_offset = phdr->p_paddr = phdr->p_vaddr; + memcpy(&buf_notes[len_notes], &file_image[offset], memsz); + len_notes += memsz; + } + else { + //set_te32(&phdr->p_offset, asl_delta + offset); // physical + upx_uint32_t v_addr = get_te32(&phdr->p_vaddr); + set_te32(&phdr->p_vaddr, asl_delta + v_addr); + upx_uint32_t p_addr = get_te32(&phdr->p_paddr); + set_te32(&phdr->p_paddr, asl_delta + p_addr); + } + } + // .p_filesz,.p_memsz are updated in ::pack3 + } + + Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)&lowmem[0]; + upx_uint32_t e_entry = get_te32(&ehdr->e_entry); + if (xct_off <= e_entry) { // FIXME: --android-shlib is different + set_te32(&ehdr->e_entry, asl_delta + e_entry); + } + // Relocate Shdr; and Rela, Rel (below xct_off) + unsigned const pal_xct_top = up4(pre_xct_top); + set_te32(&ehdr->e_shoff, pal_xct_top); // Shdr alignment + memcpy(&lowmem[pal_xct_top], shdri, e_shnum * sizeof(Elf32_Shdr)); + shdro = (Elf32_Shdr *)&lowmem[pal_xct_top]; + Elf32_Shdr *shdr = shdro; + upx_uint32_t sz_shstrtab = get_te32(&sec_strndx->sh_size); + for (unsigned j = 0; j < e_shnum; ++j, ++shdr) { + unsigned sh_type = get_te32(&shdr->sh_type); + upx_uint32_t sh_size = get_te32(&shdr->sh_size); + upx_uint32_t sh_offset = get_te32(&shdr->sh_offset); + upx_uint32_t sh_entsize = get_te32(&shdr->sh_entsize); + if ((upx_uint32_t)file_size < sh_size + || (upx_uint32_t)file_size < sh_offset + || (Elf32_Shdr::SHT_NOBITS != sh_type + && ((upx_uint32_t)file_size - sh_offset) < sh_size) ) { + throwCantPack("bad SHT_STRNDX"); + } + + if (xct_off <= sh_offset && Elf32_Shdr::SHF_ALLOC & get_te32(&shdr->sh_flags)) { + upx_uint32_t addr = get_te32(&shdr->sh_addr); + set_te32(&shdr->sh_addr, asl_delta + addr); + set_te32(&shdr->sh_offset, asl_delta + sh_offset); + } + switch (sh_type) { + default: break; + case Elf32_Shdr::SHT_RELA: { // 32-bit Elf_Rela is unused (by convention) + if (sizeof(Elf32_Rela) != sh_entsize) { + char msg[50]; + snprintf(msg, sizeof(msg), "bad Rela.sh_entsize %lu", (long)sh_entsize); + throwCantPack(msg); + } + plt_va = ~0ull; + Elf32_Rela *const relb = (Elf32_Rela *)lowmem.subref( + "bad Rela offset", sh_offset, sh_size); + Elf32_Rela *rela = relb; + for (int k = sh_size / sh_entsize; --k >= 0; ++rela) { + upx_uint32_t r_addend = get_te32(&rela->r_addend); + upx_uint32_t r_offset = get_te32(&rela->r_offset); + upx_uint32_t r_info = get_te32(&rela->r_info); + unsigned r_type = ELF32_R_TYPE(r_info); + if (xct_off <= r_offset) { + set_te32(&rela->r_offset, asl_delta + r_offset); + } + if (Elf32_Ehdr::EM_386 == e_machine) switch (r_type) { + default: { + char msg[90]; snprintf(msg, sizeof(msg), + "unexpected relocation %#x [%#x]", + r_type, -1 + (unsigned)(sh_size / sh_entsize) - k); + throwCantPack(msg); + } break; + case R_386_32: // FALL THROUGH + case R_386_GLOB_DAT: // FALL THROUGH + case R_386_RELATIVE: { + if (xct_off <= r_addend) { + set_te32(&rela->r_addend, asl_delta + r_addend); + } + } break; + case R_386_JMP_SLOT: { + // .rela.plt contains offset of the "first time" target + if (plt_va > r_offset) { + plt_va = r_offset; + } + upx_uint32_t d = elf_get_offset_from_address(r_offset); + upx_uint32_t w = get_te32(&file_image[d]); + if (xct_off <= w) { + set_te32(&file_image[d], asl_delta + w); + } + ++n_jmp_slot; + } break; + } // end EM_386 r_type + else if (Elf32_Ehdr::EM_ARM == e_machine) switch (r_type) { + default: { + char msg[90]; snprintf(msg, sizeof(msg), + "unexpected relocation %#x [%#x]", + r_type, -1 + (unsigned)(sh_size / sh_entsize) - k); + throwCantPack(msg); + } break; + case R_ARM_ABS32: // FALL THROUGH + case R_ARM_GLOB_DAT: // FALL THROUGH + case R_ARM_RELATIVE: { + if (xct_off <= r_addend) { + set_te32(&rela->r_addend, asl_delta + r_addend); + } + } break; + case R_ARM_JUMP_SLOT: { + // .rela.plt contains offset of the "first time" target + if (plt_va > r_offset) { + plt_va = r_offset; + } + upx_uint32_t d = elf_get_offset_from_address(r_offset); + upx_uint32_t w = get_te32(&file_image[d]); + if (xct_off <= w) { + set_te32(&file_image[d], asl_delta + w); + } + ++n_jmp_slot; + } break; + } // end EM_ARM r_type + else { + char msg[40]; snprintf(msg, sizeof(msg), + "Unknown architecture %d", this->e_machine); + throwCantPack(msg); + } // end e_machine + } + }; break; // end Elf32_Shdr::SHT_RELA + case Elf32_Shdr::SHT_REL: { + if (sizeof(Elf32_Rel) != sh_entsize) { + char msg[50]; + snprintf(msg, sizeof(msg), "bad Rel.sh_entsize %lu", (long)sh_entsize); + throwCantPack(msg); + } + Elf32_Rel *rel = (Elf32_Rel *)lowmem.subref( + "bad Rel sh_offset", sh_offset, sh_size); + for (int k = sh_size / sh_entsize; --k >= 0; ++rel) { + upx_uint32_t r_offset = get_te32(&rel->r_offset); + if (xct_off <= r_offset) { + set_te32(&rel->r_offset, asl_delta + r_offset); + } + // r_offset must be in 2nd PT_LOAD; .p_vaddr was already relocated + if (0x9055c == r_offset || 0x9155c==r_offset) { + //printf("Here!\n"); + } + upx_uint32_t d = elf_get_offset_from_address(r_offset); + upx_uint32_t w = get_te32(&file_image[d]); + upx_uint32_t r_info = get_te32(&rel->r_info); + unsigned r_type = ELF32_R_TYPE(r_info); + //printf("d=%#x w=%#x r_info=%#x\n", d, w, r_info); + if (Elf32_Ehdr::EM_386 == e_machine) switch (r_type) { + default: { + char msg[90]; snprintf(msg, sizeof(msg), + "unexpected relocation %#x [%#x]", + r_type, -1 + (unsigned)(sh_size / sh_entsize) - k); + throwCantPack(msg); + } break; + case R_386_32: // FALL THROUGH + case R_386_GLOB_DAT: // FALL THROUGH + case R_386_RELATIVE: { + if (xct_off <= w) { + set_te32(&file_image[d], asl_delta + w); + } + } break; + case R_386_JMP_SLOT: { + // .rela.plt contains offset of the "first time" target + if (plt_va > r_offset) { + plt_va = r_offset; + } + if (xct_off <= w) { + set_te32(&file_image[d], asl_delta + w); + } + ++n_jmp_slot; + } break; + } // end EM_386 r_type + else if (Elf32_Ehdr::EM_ARM == e_machine) switch (r_type) { + default: { + char msg[90]; snprintf(msg, sizeof(msg), + "unexpected relocation %#x [%#x]", + r_type, -1 + (unsigned)(sh_size / sh_entsize) - k); + throwCantPack(msg); + } break; + case R_ARM_ABS32: // FALL THROUGH + case R_ARM_GLOB_DAT: // FALL THROUGH + case R_ARM_RELATIVE: { + if (xct_off <= w) { + set_te32(&file_image[d], asl_delta + w); + } + } break; + case R_ARM_JUMP_SLOT: { + // .rela.plt contains offset of the "first time" target + if (plt_va > r_offset) { + plt_va = r_offset; + } + if (xct_off <= w) { + set_te32(&file_image[d], asl_delta + w); + } + ++n_jmp_slot; + } break; + } // end EM_ARM r_type + else { + char msg[40]; snprintf(msg, sizeof(msg), + "Unknown architecture %d", this->e_machine); + throwCantPack(msg); + } // end e_machine + } // end rel + }; break; // end Elf32_Shdr::SHT_REL + case Elf32_Shdr::SHT_NOTE: { + if (!(Elf32_Shdr::SHF_ALLOC & get_te32(&shdr->sh_flags))) { + // example: version numer of 'gold' linker (static binder) + if (sizeof(buf_notes) < (sh_size + len_notes)) { + throwCantPack("SHT_NOTEs too big"); + } + set_te32(&shdro[j].sh_offset, + len_notes + (e_shnum * sizeof(Elf32_Shdr)) + xct_off); + memcpy(&buf_notes[len_notes], &file_image[sh_offset], sh_size); + len_notes += sh_size; + } + else { // SHF_ALLOC: in PT_LOAD; but move sh_addr and sh_offset + // Not sure why we need this conditional. + // Anyway, some Android have multiple SHT_NOTE sections. + if (xct_off <= sh_offset) { + upx_uint32_t pos = xct_off + e_shnum * sizeof(Elf32_Shdr); + set_te32(&shdr->sh_addr, pos); + set_te32(&shdr->sh_offset, pos); + } + } + }; break; // end Elf32_Shdr::SHT_NOTE + case Elf32_Shdr::SHT_ARM_ATTRIBUTES: { + sec_arm_attr = shdr; + }; break; + } // end switch (sh_type) + } + // shstrndx will move + set_te32(&shdro[get_te16(&ehdri.e_shstrndx)].sh_offset, + len_notes + e_shnum * sizeof(Elf32_Shdr) + up8(pal_xct_top)); + + // Write all changes below pal_xct_top + // FIXME: why is this any more than Ehdr + Phdrs? + if (fo) { + fo->seek(0, SEEK_SET); + fo->write(lowmem, pal_xct_top); + } + total_out = pal_xct_top; + total_in = pal_xct_top; + + // New copy of Shdr + Elf32_Shdr blank; memset(&blank, 0, sizeof(blank)); + set_te32(&blank.sh_offset, xct_off); // hint for "upx -d" + set_te32(&shdro->sh_offset, xct_off); // hint for "upx -d" + total_out = fpad8(fo, total_out); // Shdr alignment + unsigned arm_attr_off = 0; + if (sec_arm_attr) { + arm_attr_off = get_te32(&sec_arm_attr->sh_offset); + set_te32(&sec_arm_attr->sh_offset, + total_out + e_shnum*sizeof(Elf32_Shdr) + + len_notes + sz_shstrtab); + } + if (fo) { + fo->write(&blank, sizeof(blank)); + fo->write(&shdro[1], (-1+ e_shnum) * sizeof(Elf32_Shdr)); + if (len_notes) { + fo->write(buf_notes, len_notes); + } + // New copy of Shdr[.e_shstrndx].[ sh_offset, +.sh_size ) + fo->write(shstrtab, sz_shstrtab); + + if (sec_arm_attr) { + fo->write(&file_image[arm_attr_off], + get_te32(&sec_arm_attr->sh_size)); + } + } + + sz_elf_hdrs = fpad8(fo, total_out); + total_out = sz_elf_hdrs; + //xct_off += asl_delta; // wait until ::pack3 + total_out = fpadN(fo, asl_delta - (sz_elf_hdrs - pal_xct_top)); +} + void PackLinuxElf64::pack1(OutputFile * /*fo*/, Filter &ft) { fi->seek(0, SEEK_SET); @@ -4251,34 +4721,71 @@ int PackLinuxElf32::pack2(OutputFile *fo, Filter &ft) { Extent x; unsigned k; - bool const is_shlib = (0!=xct_off); + is_asl = (!!opt->o_unix.android_shlib) << 1; // bit 1; see is_shlib + unsigned const is_shlib = (0!=xct_off) | is_asl; + unsigned pre_xct_top = 0; // offset of end of PT_LOAD _before_ xct_off + if (Elf32_Ehdr::EM_ARM==get_te16(&ehdri.e_machine)) { + sec_arm_attr = elf_find_section_type(Elf32_Shdr::SHT_ARM_ATTRIBUTES); + } // count passes, set ptload vars uip->ui_total_passes = 0; for (k = 0; k < e_phnum; ++k) { - if (is_LOAD32(&phdri[k])) { - uip->ui_total_passes++; + if (PT_LOAD32==get_te32(&phdri[k].p_type)) { + if (!is_shlib) { + uip->ui_total_passes++; + } + else { + unsigned p_flags = get_te32(&phdri[k].p_flags); + unsigned p_offset = get_te32(&phdri[k].p_offset); + unsigned p_filesz = get_te32(&phdri[k].p_filesz); + if ((xct_off - p_offset) < p_filesz) { // PT_LOAD covers xct_off + if (!pre_xct_top && xct_off != p_offset) { + pre_xct_top = xct_off; + } + } + else if (p_offset < xct_off) { // candidate for pre_xct_top + unsigned top = p_filesz + p_offset; + if (pre_xct_top < top) { + pre_xct_top = top; + } + } + if (Elf32_Phdr::PF_W & p_flags) { + // rtld might write, so cannot compress + } + else { + // First PT_LOAD (partial) only if has instructions + if (k || xct_off < p_filesz) { + uip->ui_total_passes++; + } + } + } if (find_LOAD_gap(phdri, k, e_phnum)) { uip->ui_total_passes++; } } } - uip->ui_total_passes -= !!is_shlib; // not .data of shlib // compress extents - unsigned hdr_u_len = (is_shlib ? xct_off : (sizeof(Elf32_Ehdr) + sz_phdrs)); - - total_in = (is_shlib ? 0 : xct_off); - total_out = (is_shlib ? sz_elf_hdrs : xct_off); + unsigned hdr_u_len = sizeof(Elf32_Ehdr) + sz_phdrs; + total_in = 0; + total_out = 0; uip->ui_pass = 0; ft.addvalue = 0; - unsigned nk_f = 0; unsigned xsz_f = 0; + if (is_shlib) { // prepare to alter Phdrs and Shdrs + lowmem.alloc(up8(xct_off + (!is_asl + ? 0 + : e_shnum * sizeof(Elf32_Shdr)))); + memcpy(lowmem, file_image, xct_off); // android omits Shdr here + + } + unsigned nk_f = 0; upx_uint32_t xsz_f = 0; for (k = 0; k < e_phnum; ++k) - if (is_LOAD32(&phdri[k]) + if (PT_LOAD32==get_te32(&phdri[k].p_type) && Elf32_Phdr::PF_X & get_te32(&phdri[k].p_flags)) { - unsigned xsz = get_te32(&phdri[k].p_filesz); + upx_uint32_t xsz = get_te32(&phdri[k].p_filesz); if (xsz_f < xsz) { xsz_f = xsz; nk_f = k; @@ -4286,13 +4793,90 @@ int PackLinuxElf32::pack2(OutputFile *fo, Filter &ft) } int nx = 0; for (k = 0; k < e_phnum; ++k) - if (is_LOAD32(&phdri[k])) { + if (PT_LOAD32==get_te32(&phdri[k].p_type)) { if (ft.id < 0x40) { // FIXME: ?? ft.addvalue = phdri[k].p_vaddr; } - x.offset = get_te32(&phdri[k].p_offset); - x.size = get_te32(&phdri[k].p_filesz); - if (!is_shlib || hdr_u_len < (u32_t)x.size) { + unsigned p_offset = get_te32(&phdri[k].p_offset); + unsigned p_filesz = get_te32(&phdri[k].p_filesz); + x.offset = p_offset; + x.size = p_filesz; + if (is_shlib) { + if (x.offset < xct_off) { // perhaps compressible: PT_LOAD[0] or PT_LOAD[1] + // Bytes below xct_off belong to rtld, so must be literal. + // Note that asl_pack2_Shdrs() copies up to xct_off, then adds extra info + if (is_asl) { // Copy up to xct_off, then add 2nd copy of Shdrs + asl_pack2_Shdrs(fo, pre_xct_top); + } + else { // Just copy up to xct_off + x.size = umin(x.size, xct_off - x.offset); + fi->seek(x.offset, SEEK_SET); + fi->readx(ibuf, x.size); + total_in += x.size; + + // FIXME: adler2 ? + fo->seek(x.offset, SEEK_SET); + fo->write(ibuf, x.size); + total_out += x.size; + } + if (hdr_u_len) { // first time + linfo.l_checksum = 0; // preliminary + linfo.l_magic = UPX_MAGIC_LE32; + set_le16(&linfo.l_lsize, lsize); // preliminary (0) + linfo.l_version = (unsigned char)ph.version; + linfo.l_format = (unsigned char)ph.format; + linfo_off = total_out; + fo->write(&linfo, sizeof(linfo)); + total_out += sizeof(linfo); + + overlay_offset = total_out; + + p_info hbuf; + set_te32(&hbuf.p_progid, 0); + set_te32(&hbuf.p_filesize, file_size); + set_te32(&hbuf.p_blocksize, blocksize); + fo->write(&hbuf, sizeof(hbuf)); + total_out += sizeof(hbuf); + + x.offset = 0; // save for decompress to restore original Elf headers + x.size = hdr_u_len; + unsigned in_size = hdr_u_len; + packExtent(x, nullptr, fo, 0, 0, true); + total_in -= in_size; + + x.offset = p_offset + hdr_u_len; + x.size = p_filesz - hdr_u_len; + hdr_u_len = 0; // no longer the first time + } + // The remainder above xct_off in first compressible PT_LOAD + if ( p_filesz >= (xct_off - p_offset)) { + x.size = p_filesz - (xct_off - p_offset); + x.offset = xct_off; + packExtent(x, &ft, fo, 0, 0, true); + } + + } + else { // defnitely compressible unless writeable + if (!(Elf32_Phdr::PF_W & get_te32(&phdri[k].p_flags))) { + // Read-only PT_LOAD, assume not written by relocations. + // Also assume not the source for R_*_COPY relocation, + // therefore compress it. + packExtent(x, &ft, fo, 0, 0, true); + // De-compressing will re-create it, but otherwise ignore it. + Elf32_Phdr *phdro = (Elf32_Phdr *)(1+ (Elf32_Ehdr *)&lowmem[0]); + set_te32(&phdro[k].p_type, Elf32_Phdr::PT_NULL); + } + else { + // Read-write PT_LOAD. + // rtld might relocate, so we cannot compress. + // (Could compress if not relocated; complicates run-time.) + // Postpone writing until "slide", but account for its size. + total_in += x.size; + } + } + } + else // main program, not shared library + if (hdr_u_len <= (u32_t)x.size) { if (0 == nx) { // 1st PT_LOAD32 must cover Ehdr at 0==p_offset unsigned const delta = hdr_u_len; if (ft.id < 0x40) { @@ -4304,6 +4888,7 @@ int PackLinuxElf32::pack2(OutputFile *fo, Filter &ft) // &ft arg to packExtent will be zero becaue (k != nk_f) } else { + total_in += delta - hdr_u_len; x.offset += delta; x.size -= delta; } @@ -4313,19 +4898,20 @@ int PackLinuxElf32::pack2(OutputFile *fo, Filter &ft) // sometimes marks as PF_X anyway. So filter only first segment. if (k == nk_f || !is_shlib) { packExtent(x, - (k==nk_f ? &ft : nullptr ), fo, hdr_u_len); + (k==nk_f ? &ft : nullptr ), fo, hdr_u_len, 0, true); } else { total_in += x.size; } + hdr_u_len = 0; } else { total_in += x.size; } - hdr_u_len = 0; ++nx; } - sz_pack2a = fpad4(fo); // MATCH01 + sz_pack2a = fpad4(fo, total_out); // MATCH01 + total_out = up4(total_out); // Accounting only; ::pack3 will do the compression and output for (k = 0; k < e_phnum; ++k) { @@ -4433,14 +5019,10 @@ int PackLinuxElf64::pack2(OutputFile *fo, Filter &ft) ft.addvalue = 0; if (is_shlib) { // prepare to alter Phdrs and Shdrs - lowmem.alloc(xct_off + (!is_asl + lowmem.alloc(up8(xct_off + (!is_asl ? 0 - : e_shnum * sizeof(Elf64_Shdr))); + : e_shnum * sizeof(Elf64_Shdr)))); memcpy(lowmem, file_image, xct_off); // android omits Shdr here - - if (is_asl) { // Android shared library - asl_pack2_Shdrs(fo, pre_xct_top); - } } unsigned nk_f = 0; upx_uint64_t xsz_f = 0; for (k = 0; k < e_phnum; ++k) @@ -4458,26 +5040,29 @@ int PackLinuxElf64::pack2(OutputFile *fo, Filter &ft) if (ft.id < 0x40) { // FIXME: ?? ft.addvalue = phdri[k].p_vaddr; } - x.offset = get_te64(&phdri[k].p_offset); - x.size = get_te64(&phdri[k].p_filesz); + unsigned p_offset = get_te32(&phdri[k].p_offset); + unsigned p_filesz = get_te32(&phdri[k].p_filesz); + x.offset = p_offset; + x.size = p_filesz; if (is_shlib) { - if (x.offset <= xct_off) { // perhaps compressible: PT_LOAD[0] or PT_LOAD[1] + if (x.offset < xct_off) { // perhaps compressible: PT_LOAD[0] or PT_LOAD[1] // Bytes below xct_off belong to rtld, so must be literal. - // Note that asl_pack2_Shdrs() [called above when is_asl] - // copies up to xct_off, then adds extra info - if (x.offset < xct_off) { // still copying rtld data. - if (!is_asl) { // asl_pack2_Shdrs (above) already handled --android-shlib - x.size = umin(x.size, xct_off - x.offset); - fi->seek(x.offset, SEEK_SET); - fi->readx(ibuf, x.size); - total_in += x.size; - - fo->seek(x.offset, SEEK_SET); - fo->write(ibuf, x.size); - total_out += x.size; - } + // Note that asl_pack2_Shdrs() copies up to xct_off, then adds extra info + if (is_asl) { // Copy up to xct_off, then add 2nd copy of Shdrs + asl_pack2_Shdrs(fo, pre_xct_top); } - if (pre_xct_top <= total_out && hdr_u_len) { // first time + else { // Just copy up to xct_off + x.size = umin(x.size, xct_off - x.offset); + fi->seek(x.offset, SEEK_SET); + fi->readx(ibuf, x.size); + total_in += x.size; + + // FIXME: adler2 ? + fo->seek(x.offset, SEEK_SET); + fo->write(ibuf, x.size); + total_out += x.size; + } + if (hdr_u_len) { // first time linfo.l_checksum = 0; // preliminary linfo.l_magic = UPX_MAGIC_LE32; set_le16(&linfo.l_lsize, lsize); // preliminary (0) @@ -4496,17 +5081,18 @@ int PackLinuxElf64::pack2(OutputFile *fo, Filter &ft) fo->write(&hbuf, sizeof(hbuf)); total_out += sizeof(hbuf); - x.offset = 0; // compress Ehdr and Phdrs + x.offset = 0; // save for decompress to restore original Elf headers x.size = hdr_u_len; - unsigned in_size = x.size; + unsigned in_size = hdr_u_len; packExtent(x, nullptr, fo, 0, 0, true); total_in -= in_size; + x.offset = p_offset + hdr_u_len; + x.size = p_filesz - hdr_u_len; + hdr_u_len = 0; // no longer the first time } - // The remainder above xct_offset in first compressible PT_LOAD - unsigned p_offset = get_te64(&phdri[k].p_offset); - unsigned p_filesz = get_te64(&phdri[k].p_filesz); + // The remainder above xct_off in first compressible PT_LOAD if ( p_filesz >= (xct_off - p_offset)) { x.size = p_filesz - (xct_off - p_offset); x.offset = xct_off; @@ -4567,7 +5153,7 @@ int PackLinuxElf64::pack2(OutputFile *fo, Filter &ft) } ++nx; } - sz_pack2a = fpad4(fo); // MATCH01 + sz_pack2a = fpad4(fo, total_out); // MATCH01 total_out = up4(total_out); // Accounting only; ::pack3 will do the compression and output @@ -4696,13 +5282,15 @@ void PackLinuxElf32mipsel::defineSymbols(Filter const *ft) void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) { - overlay_offset = xct_off ? xct_off : (sz_elf_hdrs + sizeof(linfo)); + if (!xct_off) { + overlay_offset = sz_elf_hdrs + sizeof(linfo); + } if (opt->o_unix.preserve_build_id) { // calc e_shoff here and write shdrout, then o_shstrtab //NOTE: these are pushed last to ensure nothing is stepped on //for the UPX structure. - unsigned const len = fpad4(fo); + unsigned const len = fpad4(fo, total_out); set_te32(&elfout.ehdr.e_shoff,len); int const ssize = sizeof(shdrout); @@ -4715,6 +5303,108 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) fo->write(o_shstrtab,shdrout.shdr[2].sh_size); fo->write(buildid_data,shdrout.shdr[1].sh_size); } + if (saved_opt_android_shlib) { // Forward select _Shdr + // Keep _Shdr for rtld data (below xct_off). + // Discard _Shdr for compressed regions. + // Keep _Shdr for SHF_WRITE. + // Discard _Shdr with (0==sh_addr), except _Shdr[0] + // Keep ARM_ATTRIBUTES + Elf32_Ehdr *eho = (Elf32_Ehdr *)lowmem.getVoidPtr(); + MemBuffer mb_ask_for(e_shnum * sizeof(eho->e_shnum)); + memset(mb_ask_for, 0, mb_ask_for.getSize()); + unsigned short *const ask_for = (unsigned short *)mb_ask_for.getVoidPtr(); + + MemBuffer mb_shdro(e_shnum * sizeof(*shdri)); + Elf32_Shdr *sh_out0 = (Elf32_Shdr *)mb_shdro.getVoidPtr(); + Elf32_Shdr *sh_out = sh_out0; + Elf32_Shdr *sh_in = shdri; + + memset(sh_out, 0, sizeof(*sh_out)); // blank sh_out[0] + ++sh_in; ++sh_out; unsigned n_sh_out = 1; + + for (unsigned j = 1; j < e_shnum; ++j, ++sh_in) { + unsigned sh_offset = get_te32(&sh_in->sh_offset); + unsigned sh_flags = get_te32(&sh_in->sh_flags); + unsigned sh_info = get_te16(&sh_in->sh_info); + if (ask_for[j]) { // Some previous _Shdr requested me + // Tell them my new index + set_te16(&sh_out0[ask_for[j]].sh_info, n_sh_out); + } + ask_for[sh_info] = j; // Enter my request, if any + if ( (sh_offset && sh_offset < xct_off) + || (Elf32_Shdr::SHF_WRITE & sh_flags) + || (j == e_shstrndx) + || (sec_arm_attr == sh_in) + ) { + *sh_out = *sh_in; + if (sec_arm_attr == sh_in) { + set_te32(&sh_out->sh_offset, total_out); + fi->seek(get_te32(&sh_in->sh_offset), SEEK_SET); + unsigned len = get_te32(&sh_in->sh_size); + fi->read(ibuf, len); + fo->write(ibuf, len); + total_out += len; + } + if (j == e_shstrndx) { + set_te16(&eho->e_shstrndx, sh_out - (Elf32_Shdr *)mb_shdro.getVoidPtr()); + set_te32(&sh_out->sh_offset, total_out); + fi->seek(get_te32(&sh_in->sh_offset), SEEK_SET); + unsigned len = get_te32(&sh_in->sh_size); + fi->read(ibuf, len); + fo->write(ibuf, len); + total_out += len; + } + if (Elf32_Shdr::SHF_WRITE & sh_flags) { + set_te32(&sh_out->sh_offset, so_slide + get_te32(&sh_out->sh_offset)); + } + ++sh_out; ++n_sh_out; + } + } + total_out = fpad4(fo, total_out); + set_te32(&eho->e_shoff, total_out); + unsigned len = (char *)sh_out - (char *)mb_shdro.getVoidPtr(); + set_te16(&eho->e_shnum, len / sizeof(*sh_out)); + fo->write(mb_shdro, len); + total_out += len; + fo->seek(0, SEEK_SET); + fo->write(eho, sizeof(*eho)); + fo->seek(0, SEEK_END); + } + else if (sec_arm_attr) { + // Forward just ARM_ATTRIBUTES + Elf32_Shdr shdr_aa[3]; + unsigned const attr_len = get_te32(&sec_arm_attr->sh_size); + char const str_aa[] = "\x00" ".shstrtab\x00" ".ARM.attributes\x00"; + + memset(shdr_aa, 0, sizeof shdr_aa); + // shstrtab + set_te32(&shdr_aa[1].sh_name, 1); + set_te32(&shdr_aa[1].sh_type, Elf32_Shdr::SHT_STRTAB); + set_te32(&shdr_aa[1].sh_offset, total_out); + set_te32(&shdr_aa[1].sh_size, sizeof(str_aa)); + set_te32(&shdr_aa[1].sh_addralign, 1); + fo->write(str_aa, sizeof(str_aa)); total_out += sizeof(str_aa); + + // ARM_ATTRIBUTES + set_te32(&shdr_aa[2].sh_name, 11); + set_te32(&shdr_aa[2].sh_type, Elf32_Shdr::SHT_ARM_ATTRIBUTES); + set_te32(&shdr_aa[2].sh_offset, total_out); + set_te32(&shdr_aa[2].sh_size, attr_len); + set_te32(&shdr_aa[2].sh_addralign, 1); + fo->write(&file_image[get_te32(&sec_arm_attr->sh_offset)], attr_len); + total_out = fpad4(fo, total_out += attr_len); + + Elf32_Ehdr *eho = &elfout.ehdr; + set_te16(&eho->e_shnum, 3); + set_te32(&eho->e_shoff, total_out); + set_te16(&eho->e_shstrndx, 1); + fo->write(shdr_aa, sizeof(shdr_aa)); + total_out += sizeof(shdr_aa); + + fo->seek(0, SEEK_SET); + fo->write(eho, sizeof(*eho)); + fo->seek(0, SEEK_END); + } // Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel // tries to make .bss, which requires PF_W. @@ -4732,10 +5422,10 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) } } fo->rewrite(&lowmem[0], sizeof(ehdri) + e_phnum * sizeof(*phdri)); - fo->seek(sz_elf_hdrs, SEEK_SET); - fo->rewrite(&linfo, sizeof(linfo)); + fo->seek(linfo_off, SEEK_SET); + fo->rewrite(&linfo, sizeof(linfo)); // new info: l_checksum, l_size - if (jni_onload_va) { + if (jni_onload_va) { // FIXME Does this apply to 64-bit, too? unsigned tmp = sz_pack2 + get_te32(&elfout.phdr[C_TEXT].p_vaddr); tmp |= (Elf32_Ehdr::EM_ARM==e_machine); // THUMB mode set_te32(&tmp, tmp); @@ -4744,19 +5434,19 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) } } else { - unsigned const reloc = get_te32(&elfout.phdr[C_TEXT].p_vaddr); Elf32_Phdr *phdr = &elfout.phdr[C_NOTE]; - unsigned const o_phnum = get_te16(&elfout.ehdr.e_phnum); - for (unsigned j = 2; j < o_phnum; ++j, ++phdr) { - if (PT_NOTE32 == get_te32(&phdr->p_type)) { - set_te32( &phdr->p_vaddr, - reloc + get_te32(&phdr->p_vaddr)); - set_te32( &phdr->p_paddr, - reloc + get_te32(&phdr->p_paddr)); - } + if (PT_NOTE32== get_te32(&phdr->p_type)) { + upx_uint32_t const reloc = get_te32(&elfout.phdr[C_TEXT].p_vaddr); + set_te32( &phdr->p_vaddr, + reloc + get_te32(&phdr->p_vaddr)); + set_te32( &phdr->p_paddr, + reloc + get_te32(&phdr->p_paddr)); + fo->rewrite(&elfout, sz_elf_hdrs); + // FIXME fo->rewrite(&elfnote, sizeof(elfnote)); + } + else { + fo->rewrite(&elfout, sz_elf_hdrs); } - fo->rewrite(&elfout, sizeof(Elf32_Phdr) * o_phnum + sizeof(Elf32_Ehdr)); - fo->seek(sz_elf_hdrs, SEEK_SET); // skip over PT_NOTE bodies, if any fo->rewrite(&linfo, sizeof(linfo)); } } @@ -4771,7 +5461,7 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft) // calc e_shoff here and write shdrout, then o_shstrtab //NOTE: these are pushed last to ensure nothing is stepped on //for the UPX structure. - unsigned const len = fpad4(fo); + unsigned const len = fpad4(fo, total_out); set_te64(&elfout.ehdr.e_shoff,len); int const ssize = sizeof(shdrout); @@ -4800,19 +5490,18 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft) set_te64(&phdro->p_flags, Elf64_Phdr::PF_X | get_te64(&phdro->p_flags)); } } - fo->rewrite(&lowmem[0], sizeof(ehdri) + e_phnum * sizeof(Elf64_Phdr)); - //fo->seek(xct_off, SEEK_SET); // FIXME - //fo->rewrite(&linfo, sizeof(linfo)); + fo->rewrite(&lowmem[0], sizeof(ehdri) + e_phnum * sizeof(*phdri)); fo->seek(linfo_off, SEEK_SET); fo->rewrite(&linfo, sizeof(linfo)); // new info: l_checksum, l_size } else { - if (PT_NOTE64 == get_te64(&elfout.phdr[C_NOTE].p_type)) { + Elf64_Phdr *phdr = &elfout.phdr[C_NOTE]; + if (PT_NOTE64 == get_te64(&phdr->p_type)) { upx_uint64_t const reloc = get_te64(&elfout.phdr[C_TEXT].p_vaddr); - set_te64( &elfout.phdr[C_NOTE].p_vaddr, - reloc + get_te64(&elfout.phdr[C_NOTE].p_vaddr)); - set_te64( &elfout.phdr[C_NOTE].p_paddr, - reloc + get_te64(&elfout.phdr[C_NOTE].p_paddr)); + set_te64( &phdr->p_vaddr, + reloc + get_te64(&phdr->p_vaddr)); + set_te64( &phdr->p_paddr, + reloc + get_te64(&phdr->p_paddr)); fo->rewrite(&elfout, sz_elf_hdrs); // FIXME fo->rewrite(&elfnote, sizeof(elfnote)); } @@ -4862,6 +5551,27 @@ PackLinuxElf32::unRel32( } } } + if (Elf32_Ehdr::EM_386 == e_machine) { + if (R_386_RELATIVE == r_type) { + unsigned d = r_offset - load_off - asl_delta; + unsigned w = get_te32(&ptload1[d]); + if (xct_off <= w) { + set_te32(&ptload1[d], w - asl_delta); + } + } + if (R_386_JMP_SLOT == r_type) { + ++n_jmp_slot; + // .rel.plt contains offset of the "first time" target + unsigned d = r_offset - load_off - asl_delta; + if (plt_va > d) { + plt_va = d; + } + unsigned w = get_te32(&ptload1[d]); + if (xct_off <= w) { + set_te32(&ptload1[d], w - asl_delta); + } + } + } } fo->seek(dt_rel, SEEK_SET); fo->rewrite(rel0, relsz); @@ -4876,7 +5586,6 @@ PackLinuxElf64::unRela64( OutputFile *const fo ) { - n_jmp_slot = 0; Elf64_Rela *rela = rela0; for (int k = relasz / sizeof(Elf64_Rela); --k >= 0; ++rela) { upx_uint64_t r_addend = get_te64(&rela->r_addend); @@ -4974,17 +5683,60 @@ PackLinuxElf64::un_asl_dynsym( // ibuf has the input } } +void +PackLinuxElf32::un_asl_dynsym( // ibuf has the input + unsigned orig_file_size, + OutputFile *fo // else just leave in ibuf +) +{ + // un-Relocate dynsym (DT_SYMTAB) which is below xct_off + dynstr = (char const *)elf_find_dynamic(Elf32_Dyn::DT_STRTAB); + sec_dynsym = elf_find_section_type(Elf32_Shdr::SHT_DYNSYM); + if (sec_dynsym) { + upx_uint32_t const off_dynsym = get_te32(&sec_dynsym->sh_offset); + upx_uint32_t const sz_dynsym = get_te32(&sec_dynsym->sh_size); + if (orig_file_size < sz_dynsym + || orig_file_size < off_dynsym + || (orig_file_size - off_dynsym) < sz_dynsym) { + throwCantUnpack("bad SHT_DYNSYM"); + } + Elf32_Sym *const sym0 = (Elf32_Sym *)ibuf.subref( + "bad dynsym", off_dynsym, sz_dynsym); + Elf32_Sym *sym = sym0; + for (int j = sz_dynsym / sizeof(Elf32_Sym); --j>=0; ++sym) { + upx_uint32_t symval = get_te32(&sym->st_value); + unsigned symsec = get_te16(&sym->st_shndx); + if (Elf32_Sym::SHN_UNDEF != symsec + && Elf32_Sym::SHN_ABS != symsec + && xct_off <= symval) { + set_te32(&sym->st_value, symval - asl_delta); + } + if (Elf32_Sym::SHN_ABS == symsec && xct_off <= symval) { + adjABS(sym, 0u - (unsigned)asl_delta); + } + } + if (fo) { + unsigned pos = fo->tell(); + fo->seek(off_dynsym, SEEK_SET); + fo->rewrite(sym0, sz_dynsym); + fo->seek(pos, SEEK_SET); + } + } +} + // File layout of compressed .so (new-style: 3 or 4 PT_LOAD) shared library: // 1. new Elf headers: Ehdr, PT_LOAD (r-x), PT_LOAD (rw-, if any), non-PT_LOAD Phdrs // 2. Space for (original - 2) PT_LOAD Phdr // 3. Remaining original contents of file below xct_off // xct_off: (&lowest eXecutable Shdr section; in original PT_LOAD[0] or [1]) +// 3a. If --android-shlib, then 4KiB page of Shdr copy, etc. (asl_pack2_Shdrs) +// And xct_off gets incremented by 4KiB at the right time. // 4. l_info (12 bytes) // overlay_offset: // 5. p_info (12 bytes) // 6. compressed original Elf headers (prefixed by b_info as usual) // 7. compressed remainder of PT_LOAD above xct_off -// 8. compressed read-only PT_LOAD above xct_off (if any) +// 8. compressed read-only PT_LOAD above xct_off (if any) // FIXME: check decompressor // 9. uncompressed Read-Write PT_LOAD (slide down N pages) // 10. int[6] tables for UPX runtime de-compressor // (new) DT_INIT: @@ -4998,9 +5750,7 @@ void PackLinuxElf64::un_shlib_1( MemBuffer &o_elfhdrs, unsigned &c_adler, unsigned &u_adler, - Elf64_Phdr const *const dynhdr, - unsigned const orig_file_size, - unsigned const szb_info + unsigned const orig_file_size ) { // xct_off [input side] was set by ::unpack when is_shlib @@ -5009,16 +5759,18 @@ void PackLinuxElf64::un_shlib_1( // Below xct_off is not compressed (for benefit of rtld.) fi->seek(0, SEEK_SET); - unsigned const limit_dynhdr = get_te64(&dynhdr->p_offset) + get_te64(&dynhdr->p_filesz); - fi->readx(ibuf, limit_dynhdr); - //overlay_offset -= sizeof(linfo); + fi->readx(ibuf, umin(blocksize, file_size)); + e_shoff = get_te64(&ehdri.e_shoff); + // +36: (sizeof(PackHeader) + sizeof(overlay_offset)) + // after Shdrs for ARM_ATTRIBUTES if (e_shoff && e_shnum - && (e_shoff + sizeof(Elf64_Shdr) * e_shnum) <= limit_dynhdr) { // --android-shlib + && ((e_shoff + sizeof(Elf64_Shdr) * e_shnum) + 36) < (upx_uint64_t)file_size) { // --android-shlib is_asl = 1; - ibuf.subref("bad .e_shoff %#lx for %#lx", e_shoff, sizeof(Elf64_Shdr) * e_shnum); - shdri = (Elf64_Shdr /*const*/ *)ibuf.subref( - "bad Shdr table", e_shoff, sizeof(Elf64_Shdr)*e_shnum); + fi->seek(e_shoff, SEEK_SET); + mb_shdr.alloc( sizeof(Elf64_Shdr) * e_shnum); + shdri = (Elf64_Shdr *)mb_shdr.getVoidPtr(); + fi->readx(shdri, sizeof(Elf64_Shdr) * e_shnum); yct_off = get_te64(&shdri->sh_offset); // for the output file (de-compresssed) xct_off = asl_delta + yct_off; // for the input file (compressed) } @@ -5070,7 +5822,7 @@ void PackLinuxElf64::un_shlib_1( // Peek: unpack into ibuf, but do not write unsigned const sz_block1 = unpackExtent(sz_elf_hdrs, nullptr, - c_adler, u_adler, false, szb_info, -1); + c_adler, u_adler, false, -1); if (sz_block1 < sz_elf_hdrs) { throwCantUnpack("corrupt b_info"); } @@ -5112,7 +5864,7 @@ void PackLinuxElf64::un_shlib_1( p_offset += sz_block1; } if (sz_block1 == sz_elf_hdrs) { // new style - unsigned const len = yct_off - sz_elf_hdrs; + unsigned const len = (yct_off ? yct_off : xct_off) - sz_elf_hdrs; unsigned const ipos = fi->tell(); fi->seek(sz_elf_hdrs, SEEK_SET); fi->readx(&ibuf[sz_elf_hdrs], len); @@ -5145,7 +5897,7 @@ void PackLinuxElf64::un_shlib_1( if (fo) { fo->seek(p_offset, SEEK_SET); } - unpackExtent(wanted, fo, c_adler, u_adler, false, szb_info); + unpackExtent(wanted, fo, c_adler, u_adler, false); } funpad4(fi); loader_offset = fi->tell(); @@ -5178,6 +5930,338 @@ void PackLinuxElf64::un_shlib_1( fi->seek(loader_offset, SEEK_SET); } +void PackLinuxElf32::un_shlib_1( + OutputFile *const fo, + MemBuffer &o_elfhdrs, + unsigned &c_adler, + unsigned &u_adler, + unsigned const orig_file_size +) +{ + // xct_off [input side] was set by ::unpack when is_shlib + // yct_off [output side] set here unless is_asl in next 'if' block + unsigned yct_off = xct_off; + + // Below xct_off is not compressed (for benefit of rtld.) + fi->seek(0, SEEK_SET); + fi->readx(ibuf, umin(blocksize, file_size)); + + // Determine if the extra page with copy of _Shdrs was spliced in. + // This used to be the result of --anroid-shlib. + // But in 2023-02 the fowarding of ARM_ATTRIBUTES (by appending) + // takes care of this, so the 5th word before e_entry does not + // have the low bit 1, so is_asl should not be set. + // However, .so that were compressed before 2023-03 + // may be marked. + e_shoff = get_te32(&ehdri.e_shoff); + if (e_shoff && e_shnum + // +36: (sizeof(PackHeader) + sizeof(overlay_offset)) + // after Shdrs for ARM_ATTRIBUTES + && (((e_shoff + sizeof(Elf32_Shdr) * e_shnum) + 36) < (upx_uint32_t)file_size) + ) { // possible --android-shlib + unsigned x = get_te32(&file_image[get_te32(&ehdri.e_entry) - (1+ 4)*sizeof(int)]); + if (1 & x) { // the clincher + is_asl = 1; + fi->seek(e_shoff, SEEK_SET); + mb_shdr.alloc( sizeof(Elf32_Shdr) * e_shnum); + shdri = (Elf32_Shdr *)mb_shdr.getVoidPtr(); + fi->readx(shdri, sizeof(Elf32_Shdr) * e_shnum); + yct_off = get_te32(&shdri->sh_offset); // for the output file (de-compresssed) + xct_off = asl_delta + yct_off; // for the input file (compressed) + } + } + + // Decompress first Extent. Old style covers [0, xct_off) + // which includes rtld constant data and eXecutable app code below DT_INIT. + // In old style, the first compressed Extent is redundant + // except for the compressed original Elf headers. + // New style covers just Elf headers: the rest below xct_off is + // rtld constant data: DT_*HASH, DT_SYMTAB, DT_STRTAB, etc. + // New style puts eXecutable app code in second PT_LOAD + // in order to mark Elf headers and rtld data as non-eXecutable. + fi->seek(overlay_offset - sizeof(l_info), SEEK_SET); + struct { + struct l_info l; + struct p_info p; + } hdr; + fi->readx(&hdr, sizeof(hdr)); + if (hdr.l.l_magic != UPX_MAGIC_LE32 + || hdr.l.l_lsize != (unsigned)lsize + || hdr.p.p_filesize != ph.u_file_size) { + throwCantUnpack("corrupt l_info/p_info"); + } + +// The default layout for a shared library created by binutils-2.29 +// (Fedora 28; 2018) has two PT_LOAD: permissions r-x and rw-. +// xct_off (the lowest address of executable instructions; +// the highest address of read-only data used by rtld (ld-linux)) +// will be somewhere in the first PT_LOAD. +// +// The default layout for a shared library created by binutils-2.31 +// (Fedora 29; 2018) has four PT_LOAD: permissions r--, r-x, r--, rw-. +// xct_off will be the base of the second [r-x] PT_LOAD. +// +// Bytes below xct_off cannot be compressed because they are used +// by rtld *before* the UPX run-time de-compression stub gets control +// via DT_INIT. Bytes in a Writeable PT_LOAD cannot be compressed +// because they may be relocated by rtld, again before stub execution. +// +// We need to know which layout of PT_LOAD. It seems risky to steal +// bits in the input ElfXX_Ehdr or ElfXX_Phdr, so we decompress +// the first compressed block. For an old-style shared library +// the first compressed block covers [0, xct_off) which is redundant +// with the interval [sz_elf_hdrs, xct_off) because those bytes +// must be present for use by rtl (So that is a large inefficiency.) +// Fortunately p_info.p_blocksize fits in ibuf, and unpackExtent +// will just decompress it all. For new style, the first compressed +// block covers [0, sz_elf_hdrs). + + // Peek: unpack into ibuf, but do not write + unsigned const sz_block1 = unpackExtent(sz_elf_hdrs, nullptr, + c_adler, u_adler, false, -1); + if (sz_block1 < sz_elf_hdrs) { + throwCantUnpack("corrupt b_info"); + } + memcpy(o_elfhdrs, ibuf, sz_elf_hdrs); // save de-compressed Elf headers + Elf32_Ehdr const *const ehdro = (Elf32_Ehdr const *)(void const *)o_elfhdrs; + if (ehdro->e_type !=ehdri.e_type + || ehdro->e_machine!=ehdri.e_machine + || ehdro->e_version!=ehdri.e_version + // less strict for EM_PPC to workaround earlier bug + || !( ehdro->e_flags==ehdri.e_flags + || Elf32_Ehdr::EM_PPC == get_te16(&ehdri.e_machine)) + || ehdro->e_ehsize !=ehdri.e_ehsize + // check EI_MAG[0-3], EI_CLASS, EI_DATA, EI_VERSION + || memcmp(ehdro->e_ident, ehdri.e_ident, Elf32_Ehdr::EI_OSABI)) { + throwCantUnpack("ElfXX_Ehdr corrupted"); + } + if (fo) { + fo->write(ibuf, sz_block1); + total_out = sz_block1; + } + Elf32_Phdr const *o_phdr = (Elf32_Phdr const *)(1+ ehdro); + // Handle compressed PT_LOADs (must not have PF_W) + unsigned not_first_LOAD = 0; + for (unsigned j = 0; j < e_phnum; ++j, ++o_phdr) { + unsigned type = get_te32(&o_phdr->p_type); + unsigned flags = get_te32(&o_phdr->p_flags); + if (PT_LOAD32 != type || Elf32_Phdr::PF_W & flags) { + continue; + } + unsigned p_offset = get_te32(&o_phdr->p_offset); + unsigned p_filesz = get_te32(&o_phdr->p_filesz); + unsigned wanted = p_filesz; + if (!not_first_LOAD++) { // first PT_LOAD + wanted -= sz_block1; + if (sz_block1 > sz_elf_hdrs) { // old style + if (is_asl) { + un_asl_dynsym(orig_file_size, fo); + } + p_offset += sz_block1; + } + if (sz_block1 == sz_elf_hdrs) { // new style + unsigned const len = (yct_off ? yct_off : xct_off) - sz_elf_hdrs; + unsigned const ipos = fi->tell(); + fi->seek(sz_elf_hdrs, SEEK_SET); + fi->readx(&ibuf[sz_elf_hdrs], len); + if (is_asl) { + un_asl_dynsym(orig_file_size, nullptr); + } + if (fo) { + fo->write(&ibuf[sz_elf_hdrs], len); + } + total_out += len; + +// github-issue629: (overlay_offset = 0xa500), so initially (xct_off = 0xa494). +// But "yct_off = get_te32(&shdri->sh_offset)" so if _Shdrs are aligned (??) +// then (0x10500 == (xct_off = asl_delta + yct_off)), and we read+write +// more than we need. +// So assume the excess just lives there, or is overwritten later by seek+write. + if (wanted < len) { // FIXME: why does this happen? + wanted = 0; + } + else { + wanted -= len; + } + fi->seek(ipos, SEEK_SET); + if (total_out == p_filesz) { + continue; // already entirely re-generated + } + p_offset = total_out; + } + } + if (fo) { + fo->seek(p_offset, SEEK_SET); + } + unpackExtent(wanted, fo, c_adler, u_adler, false); + } + funpad4(fi); + loader_offset = fi->tell(); + + // Handle PT_LOAD with PF_W: writeable, so not compressed. "Slide" + o_phdr = (Elf32_Phdr const *)(1+ ehdro); + Elf32_Phdr const *i_phdr = phdri; + for (unsigned j = 0; j < e_phnum; ++j, ++o_phdr, ++i_phdr) { + unsigned type = get_te32(&o_phdr->p_type); + unsigned flags = get_te32(&o_phdr->p_flags); + if (PT_LOAD32 != type || !(Elf32_Phdr::PF_W & flags)) { + continue; + } + unsigned filesz = get_te32(&o_phdr->p_filesz); + unsigned o_offset = get_te32(&o_phdr->p_offset); + unsigned i_offset = get_te32(&i_phdr->p_offset); + fi->seek(i_offset, SEEK_SET); + fi->readx(ibuf, filesz); + total_in += filesz; + if (fo) { + fo->seek(o_offset, SEEK_SET); + fo->write(ibuf, filesz); + } + total_out = filesz + o_offset; // high-water mark + } + + // Gaps between PT_LOAD will be handled by ::unpack() + + // position fi at loader offset + fi->seek(loader_offset, SEEK_SET); +} + +void PackLinuxElf32::un_DT_INIT( + unsigned old_dtinit, + Elf32_Phdr const *const phdro, + Elf32_Phdr const *const dynhdr, // in phdri + OutputFile *fo +) +{ + // DT_INIT must be restored. + // If android_shlib, then the asl_delta relocations must be un-done. + unsigned n_plt = 0; + upx_uint32_t dt_pltrelsz(0), dt_jmprel(0), dt_pltgot(0); + upx_uint32_t dt_relsz(0), dt_rel(0); + upx_uint32_t const dyn_len = get_te32(&dynhdr->p_filesz); + upx_uint32_t const dyn_off = get_te32(&dynhdr->p_offset); + if ((unsigned long)file_size < (dyn_len + dyn_off)) { + char msg[50]; snprintf(msg, sizeof(msg), + "bad PT_DYNAMIC .p_filesz %#lx", (long unsigned)dyn_len); + throwCantUnpack(msg); + } + fi->seek(dyn_off, SEEK_SET); + fi->readx(ibuf, dyn_len); + Elf32_Dyn *dyn = (Elf32_Dyn *)(void *)ibuf; + dynseg = dyn; invert_pt_dynamic(dynseg, + umin(dyn_len, file_size - dyn_off)); + for (unsigned j2= 0; j2 < dyn_len; ++dyn, j2 += sizeof(*dyn)) { + upx_uint32_t const tag = get_te32(&dyn->d_tag); + upx_uint32_t val = get_te32(&dyn->d_val); + if (is_asl) switch (tag) { + case Elf32_Dyn::DT_RELASZ: { dt_relsz = val; } break; + case Elf32_Dyn::DT_RELA: { dt_rel = val; } break; + case Elf32_Dyn::DT_JMPREL: { dt_jmprel = val; } break; + case Elf32_Dyn::DT_PLTRELSZ: { dt_pltrelsz = val; + n_plt = 3+ (dt_pltrelsz / sizeof(Elf32_Rel)); // FIXME: "3+" + }; break; + + case Elf32_Dyn::DT_PLTGOT: { plt_va = dt_pltgot = val;} + // FALL THROUGH + case Elf32_Dyn::DT_PREINIT_ARRAY: + case Elf32_Dyn::DT_INIT_ARRAY: + case Elf32_Dyn::DT_FINI_ARRAY: + case Elf32_Dyn::DT_FINI: { + set_te32(&dyn->d_val, val - asl_delta); + }; break; + } // end switch() on tag when is_asl + if (upx_dt_init == tag) { + if (Elf32_Dyn::DT_INIT == tag) { + set_te32(&dyn->d_val, old_dtinit); + if (!old_dtinit) { // compressor took the slot + dyn->d_tag = Elf32_Dyn::DT_NULL; + dyn->d_val = 0; + } + } + else if (Elf32_Dyn::DT_INIT_ARRAY == tag + || Elf32_Dyn::DT_PREINIT_ARRAY == tag) { + // The slot must have a R_*_RELATIVE relocation (is_shlib, + // after all), but ElfXX_Rel ignores the initial contents! + // So changing the value will get ignored. Do it anyway. + // FIXME: we must fix the Rel ? + Elf32_Phdr const *phdr = phdro; + for (unsigned j = 0; j < e_phnum; ++j, ++phdr) { + upx_uint32_t vaddr = get_te32(&phdr->p_vaddr); + upx_uint32_t filesz = get_te32(&phdr->p_filesz); + unsigned q = val - (is_asl ? asl_delta : 0) - vaddr; + if (q < filesz) { + upx_uint32_t offset = get_te32(&phdr->p_offset); + // Rel overwrites the target; assumed default is 0 + if (old_dtinit) { + upx_uint32_t oldval = 0; + set_te32(&oldval, old_dtinit); + // Counter-act unRel32 if asl_delta + // FIXME? the in-memory copy? + if (fo) { + fo->seek(q + offset, SEEK_SET); + fo->write(&oldval, sizeof(oldval)); + } + } + break; + } + } + } + } + } + if (fo) { // Write updated dt_*.val + upx_uint32_t dyn_offo = get_te32(&phdro[dynhdr - phdri].p_offset); + fo->seek(dyn_offo, SEEK_SET); + fo->rewrite(ibuf, dyn_len); + } + if (is_asl) { + MemBuffer ptload1; // FIXME. file_image has the whole file; ibuf is available + lowmem.alloc(xct_off); + fi->seek(0, SEEK_SET); + fi->read(lowmem, xct_off); // contains relocation tables + if (dt_relsz && dt_rel) { + Elf32_Rel *const rel0 = (Elf32_Rel *)lowmem.subref( + "bad Rel offset", dt_rel, dt_relsz); + unRel32(dt_rel, rel0, dt_relsz, ptload1, old_dtinit, fo); + } + if (dt_pltrelsz && dt_jmprel) { // FIXME: overlap w/ DT_REL ? + Elf32_Rel *const jmp0 = (Elf32_Rel *)lowmem.subref( + "bad Jmprel offset", dt_jmprel, dt_pltrelsz); + jump_slots.alloc(n_plt * sizeof(upx_uint32_t)); + Elf32_Phdr const *phdr = phdri; + for (unsigned j = 0; j < e_phnum; ++j, ++phdr) if (is_LOAD32(phdr)) { + upx_uint32_t vaddr = get_te32(&phdr->p_vaddr); + upx_uint32_t filesz = get_te32(&phdr->p_filesz); + upx_uint32_t d = plt_va - vaddr; + if (d < filesz) { + upx_uint32_t offset = get_te32(&phdr->p_offset); + fi->seek(d + offset, SEEK_SET); + fi->readx(jump_slots, n_plt * sizeof(upx_uint32_t)); + break; + } + } + unRel32(dt_jmprel, jmp0, dt_pltrelsz, ptload1, old_dtinit, fo); + + Elf32_Ehdr const *const o_ehdr = (Elf32_Ehdr const *)(void *)lowmem; + unsigned const o_phnum = o_ehdr->e_phnum; + phdr = phdro; + for (unsigned j = 0; j < o_phnum; ++j, ++phdr) if (is_LOAD32(phdr)) { + upx_uint32_t vaddr = get_te32(&phdr->p_vaddr); + upx_uint32_t filesz = get_te32(&phdr->p_filesz); + upx_uint32_t d = plt_va - vaddr - asl_delta; + if (d < filesz) { + upx_uint32_t offset = get_te32(&phdr->p_offset); + if (fo) { + fo->seek(d + offset, SEEK_SET); + fo->rewrite(jump_slots, n_plt * sizeof(upx_uint32_t)); + } + break; + } + } + } + // Modified relocation tables are re-written by unRel32 + } +} + void PackLinuxElf64::un_DT_INIT( unsigned old_dtinit, Elf64_Phdr const *const phdro, @@ -5319,11 +6403,11 @@ void PackLinuxElf64::unpack(OutputFile *fo) unsigned u_phnum = 0; upx_uint64_t old_dtinit = 0; - unsigned szb_info = sizeof(b_info); - { - upx_uint64_t const e_entry = get_te64(&ehdri.e_entry); - if (e_entry < 0x401180 - && get_te16(&ehdri.e_machine)==Elf64_Ehdr::EM_386) { /* old style, 8-byte b_info */ + if (Elf64_Ehdr::ET_EXEC == get_te16(&ehdri.e_type)) { + if (get_te64(&ehdri.e_entry) < 0x401180 + && get_te16(&ehdri.e_machine)==Elf64_Ehdr::EM_X86_64) { + // old style, 8-byte b_info: + // sizeof(b_info.sz_unc) + sizeof(b_info.sz_cpr); szb_info = 2*sizeof(unsigned); } } @@ -5384,7 +6468,7 @@ void PackLinuxElf64::unpack(OutputFile *fo) xct_off = overlay_offset - sizeof(l_info); u_phnum = get_te16(&ehdri.e_phnum); o_elfhdrs.alloc(sz_elf_hdrs); - un_shlib_1(fo, o_elfhdrs, c_adler, u_adler, dynhdr, orig_file_size, szb_info); + un_shlib_1(fo, o_elfhdrs, c_adler, u_adler, orig_file_size); *ehdr = ehdri; } else { // main executable @@ -5427,12 +6511,12 @@ void PackLinuxElf64::unpack(OutputFile *fo) fo->seek(offset, SEEK_SET); if (Elf64_Phdr::PF_X & get_te32(&phdr->p_flags)) { unpackExtent(filesz, fo, - c_adler, u_adler, first_PF_X, szb_info); + c_adler, u_adler, first_PF_X); first_PF_X = false; } else { unpackExtent(filesz, fo, - c_adler, u_adler, false, szb_info); + c_adler, u_adler, false); } } } @@ -5461,7 +6545,7 @@ void PackLinuxElf64::unpack(OutputFile *fo) if (!is_shlib) { if (get_te32(&phdri[0].p_flags) & Elf64_Phdr::PF_X) { // Old style, such as upx-3.91 thru upx-3.95 - switch (this->e_machine) { // FIXME: missing 32-bit EM_386 EM_ARM EM_PPC + switch (this->e_machine) { default: { char msg[40]; snprintf(msg, sizeof(msg), "Unknown architecture %d", this->e_machine); @@ -5515,11 +6599,18 @@ void PackLinuxElf64::unpack(OutputFile *fo) if (fo) fo->seek(where, SEEK_SET); { // Recover from some piracy [also serves as error tolerance :-) ] - b_info b_peek; - fi->readx(&b_peek, sizeof(b_peek)); + b_info b_peek, *bp = &b_peek; + fi->readx(bp, sizeof(b_peek)); upx_off_t pos = fi->seek(-(off_t)sizeof(b_peek), SEEK_CUR); - if (get_te32(&b_peek.sz_unc) != size - || b_peek.b_method != prev_method) { + unsigned sz_unc = get_te32(&bp->sz_unc); + unsigned sz_cpr = get_te32(&bp->sz_cpr); + unsigned word3 = get_te32(&bp->b_method); + unsigned method = bp->b_method; + unsigned ftid = bp->b_ftid; + unsigned cto8 = bp->b_cto8; + if (!( ((sz_cpr == sz_unc) && (0 == word3) && (size == sz_unc)) // incompressible literal + || ((sz_cpr < sz_unc) && (method == prev_method) && (0 == ftid) && (0 == cto8))) + ) { opt->info_mode++; infoWarning("bad b_info at %#zx", (size_t)pos); unsigned const N_PEEK(64), H_PEEK(N_PEEK >> 1); @@ -5528,18 +6619,17 @@ void PackLinuxElf64::unpack(OutputFile *fo) fi->readx(peek_arr, sizeof(peek_arr)); fi->seek(pos, SEEK_SET); int boff = find_le32(peek_arr, sizeof(peek_arr), size); - b_info *bp = (b_info *)(void *)&peek_arr[boff]; + bp = (b_info *)(void *)&peek_arr[boff]; - unsigned sz_unc = get_te32(&bp->sz_unc); - unsigned sz_cpr = get_te32(&bp->sz_cpr); - unsigned word3 = get_te32(&bp->b_method); - unsigned method = bp->b_method; - unsigned ftid = bp->b_ftid; - unsigned cto8 = bp->b_cto8; + sz_unc = get_te32(&bp->sz_unc); + sz_cpr = get_te32(&bp->sz_cpr); + word3 = get_te32(&bp->b_method); + method = bp->b_method; + ftid = bp->b_ftid; + cto8 = bp->b_cto8; if (0 <= boff // found - && (((sz_unc == sz_cpr) && (0 == word3))// uncompressible literal - || ((sz_cpr < sz_unc) && (method == prev_method) - && (0 == ftid) && (0 == cto8))) + && ( ((sz_cpr == sz_unc) && (0 == word3) && (size == sz_unc)) // incompressible literal + || ((sz_cpr < sz_unc) && (method == prev_method) && (0 == ftid) && (0 == cto8))) ) { pos -= H_PEEK; pos += boff; @@ -5550,7 +6640,7 @@ void PackLinuxElf64::unpack(OutputFile *fo) } } unpackExtent(size, fo, - c_adler, u_adler, false, szb_info, + c_adler, u_adler, false, is_shlib && ((phdr[j].p_offset != hi_offset))); // FIXME: should not depend on is_shlib ? } @@ -5751,7 +6841,13 @@ Linker* PackLinuxElf32armBe::newLinker() const unsigned PackLinuxElf32::elf_get_offset_from_address(unsigned addr) const { - Elf32_Phdr const *phdr = phdri; + return elf_get_offset_from_Phdrs(addr, phdri); +} + +unsigned +PackLinuxElf32::elf_get_offset_from_Phdrs(unsigned addr, Elf32_Phdr const *phdr0) const +{ + Elf32_Phdr const *phdr = phdr0; int j = e_phnum; for (; --j>=0; ++phdr) if (is_LOAD32(phdr)) { unsigned const t = addr - get_te32(&phdr->p_vaddr); @@ -6441,25 +7537,37 @@ void PackLinuxElf32::unpack(OutputFile *fo) throwCantUnpack("bad e_phoff"); } unsigned const c_phnum = get_te16(&ehdri.e_phnum); - unsigned old_dtinit = 0; + unsigned u_phnum = 0; + upx_uint32_t old_dtinit = 0; - unsigned szb_info = sizeof(b_info); - { + if (Elf32_Ehdr::ET_EXEC == get_te16(&ehdri.e_type)) { if (get_te32(&ehdri.e_entry) < 0x401180 - && Elf32_Ehdr::EM_386 ==get_te16(&ehdri.e_machine) - && Elf32_Ehdr::ET_EXEC==get_te16(&ehdri.e_type)) { - // Beware ET_DYN.e_entry==0x10f0 (or so) does NOT qualify here. - /* old style, 8-byte b_info */ + && get_te16(&ehdri.e_machine)==Elf32_Ehdr::EM_386) { + // old style, 8-byte b_info: + // sizeof(b_info.sz_unc) + sizeof(b_info.sz_cpr); szb_info = 2*sizeof(unsigned); } } fi->seek(overlay_offset - sizeof(l_info), SEEK_SET); fi->readx(&linfo, sizeof(linfo)); - lsize = get_te16(&linfo.l_lsize); if (UPX_MAGIC_LE32 != get_le32(&linfo.l_magic)) { - throwCantUnpack("l_info corrupted"); + NE32 const *const lp = (NE32 const *)(void const *)&linfo; + // Workaround for bug of extra linfo by some asl_pack2_Shdrs(). + if (0==lp[0] && 0==lp[1] && 0==lp[2]) { // looks like blank extra + fi->readx(&linfo, sizeof(linfo)); + if (UPX_MAGIC_LE32 == get_le32(&linfo.l_magic)) { + overlay_offset += sizeof(linfo); + } + else { + throwCantUnpack("l_info corrupted"); + } + } + else { + throwCantUnpack("l_info corrupted"); + } } + lsize = get_te16(&linfo.l_lsize); p_info hbuf; fi->readx(&hbuf, sizeof(hbuf)); unsigned orig_file_size = get_te32(&hbuf.p_filesize); blocksize = get_te32(&hbuf.p_blocksize); @@ -6476,188 +7584,209 @@ void PackLinuxElf32::unpack(OutputFile *fo) || ph.u_len > orig_file_size) throwCantUnpack("b_info corrupted"); ph.filter_cto = bhdr.b_cto8; + prev_method = bhdr.b_method; // FIXME if multiple de-compressors MemBuffer u(ph.u_len); Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)&u[0]; Elf32_Phdr const *phdr = nullptr; - - // Uncompress Ehdr and Phdrs. - if (ibuf.getSize() < ph.c_len) { - throwCompressedDataViolation(); - } - fi->readx(ibuf, ph.c_len); - decompress(ibuf, (upx_byte *)ehdr, false); - if (ehdr->e_type !=ehdri.e_type - || ehdr->e_machine!=ehdri.e_machine - || ehdr->e_version!=ehdri.e_version - || ehdr->e_flags !=ehdri.e_flags - || ehdr->e_ehsize !=ehdri.e_ehsize - // check EI_MAG[0-3], EI_CLASS, EI_DATA, EI_VERSION - || memcmp(ehdr->e_ident, ehdri.e_ident, Elf32_Ehdr::EI_OSABI)) { - throwCantUnpack("ElfXX_Ehdr corrupted"); - } - fi->seek(- (off_t) (szb_info + ph.c_len), SEEK_CUR); - - unsigned const u_phnum = get_te16(&ehdr->e_phnum); total_in = 0; total_out = 0; unsigned c_adler = upx_adler32(nullptr, 0); unsigned u_adler = upx_adler32(nullptr, 0); -#define MAX_ELF_HDR 512 - if ((umin(MAX_ELF_HDR, ph.u_len) - sizeof(Elf32_Ehdr))/sizeof(Elf32_Phdr) < u_phnum) { - throwCantUnpack("bad compressed e_phnum"); + + unsigned is_shlib = 0; + loader_offset = 0; + MemBuffer o_elfhdrs; + Elf32_Phdr const *const dynhdr = elf_find_ptype(Elf32_Phdr::PT_DYNAMIC, phdri, c_phnum); + // dynseg was set by PackLinuxElf32help1 + if (dynhdr && !(Elf32_Dyn::DF_1_PIE & elf_unsigned_dynamic(Elf32_Dyn::DT_FLAGS_1))) { + // Packed shlib? (ET_DYN without -fPIE) + is_shlib = 1; + xct_off = overlay_offset - sizeof(l_info); + u_phnum = get_te16(&ehdri.e_phnum); + o_elfhdrs.alloc(sz_elf_hdrs); + un_shlib_1(fo, o_elfhdrs, c_adler, u_adler, orig_file_size); + *ehdr = ehdri; } + else { // main executable + // Uncompress Ehdr and Phdrs: info for control of unpacking + if (ibuf.getSize() < ph.c_len) + throwCompressedDataViolation(); + fi->readx(ibuf, ph.c_len); + decompress(ibuf, (upx_byte *)ehdr, false); + if (ehdr->e_type !=ehdri.e_type + || ehdr->e_machine!=ehdri.e_machine + || ehdr->e_version!=ehdri.e_version + // less strict for EM_PPC to workaround earlier bug + || !( ehdr->e_flags==ehdri.e_flags + || Elf32_Ehdr::EM_PPC == get_te16(&ehdri.e_machine)) + || ehdr->e_ehsize !=ehdri.e_ehsize + // check EI_MAG[0-3], EI_CLASS, EI_DATA, EI_VERSION + || memcmp(ehdr->e_ident, ehdri.e_ident, Elf32_Ehdr::EI_OSABI)) { + throwCantUnpack("ElfXX_Ehdr corrupted"); + } + // Rewind: prepare for data phase + fi->seek(- (off_t) (szb_info + ph.c_len), SEEK_CUR); + + u_phnum = get_te16(&ehdr->e_phnum); +#define MAX_ELF_HDR 512 + if ((umin(MAX_ELF_HDR, ph.u_len) - sizeof(Elf32_Ehdr))/sizeof(Elf32_Phdr) < u_phnum) { + throwCantUnpack("bad compressed e_phnum"); + } + o_elfhdrs.alloc(sizeof(Elf32_Ehdr) + u_phnum * sizeof(Elf32_Phdr)); + memcpy(o_elfhdrs, ehdr, o_elfhdrs.getSize()); #undef MAX_ELF_HDR - // Packed ET_EXE has no PT_DYNAMIC. - // Packed ET_DYN has original PT_DYNAMIC for info needed by rtld. - Elf32_Phdr const *const dynhdr = elf_find_ptype(Elf32_Phdr::PT_DYNAMIC, phdri, c_phnum); - bool const is_shlib = !!dynhdr; - if (is_shlib) { - // Unpack and output the Ehdr and Phdrs for real. - // This depends on position within input file fi. - unpackExtent(ph.u_len, fo, - c_adler, u_adler, false, szb_info); - - // The first PT_LOAD. Part is not compressed (for benefit of rtld.) - fi->seek(0, SEEK_SET); - fi->readx(ibuf, get_te32(&dynhdr->p_offset) + get_te32(&dynhdr->p_filesz)); - overlay_offset -= sizeof(linfo); - xct_off = overlay_offset; - e_shoff = get_te32(&ehdri.e_shoff); - ibuf.subref("bad .e_shoff %#x for %#x", e_shoff, sizeof(Elf32_Shdr) * e_shnum); - if (e_shoff && e_shnum) { // --android-shlib - shdri = (Elf32_Shdr /*const*/ *)ibuf.subref( - "bad Shdr table", e_shoff, sizeof(Elf32_Shdr)*e_shnum); - unsigned xct_off2 = get_te32(&shdri->sh_offset); - if (e_shoff == xct_off2) { - xct_off = e_shoff; - } - // un-Relocate dynsym (DT_SYMTAB) which is below xct_off - unsigned dyn_offset = get_te32(&dynhdr->p_offset); - unsigned dyn_filesz = get_te32(&dynhdr->p_filesz); - if (orig_file_size < dyn_offset - || (orig_file_size - dyn_offset) < dyn_filesz) { - throwCantUnpack("bad PT_DYNAMIC"); - } - dynseg = (Elf32_Dyn const *)ibuf.subref("bad DYNAMIC", dyn_offset, dyn_filesz); - dynstr = (char const *)elf_find_dynamic(Elf32_Dyn::DT_STRTAB); - sec_dynsym = elf_find_section_type(Elf32_Shdr::SHT_DYNSYM); - if (sec_dynsym) { - unsigned const off_dynsym = get_te32(&sec_dynsym->sh_offset); - unsigned const sz_dynsym = get_te32(&sec_dynsym->sh_size); - if (orig_file_size < sz_dynsym - || orig_file_size < off_dynsym - || (orig_file_size - off_dynsym) < sz_dynsym) { - throwCantUnpack("bad SHT_DYNSYM"); - } - Elf32_Sym *const sym0 = (Elf32_Sym *)ibuf.subref( - "bad dynsym", off_dynsym, sz_dynsym); - Elf32_Sym *sym = sym0; - for (int j = sz_dynsym / sizeof(Elf32_Sym); --j>=0; ++sym) { - unsigned symval = get_te32(&sym->st_value); - unsigned symsec = get_te16(&sym->st_shndx); - if (Elf32_Sym::SHN_UNDEF != symsec - && Elf32_Sym::SHN_ABS != symsec - && xct_off <= symval) { - set_te32(&sym->st_value, symval - asl_delta); - } - if (Elf32_Sym::SHN_ABS == symsec && xct_off <= symval) { - adjABS(sym, 0u - asl_delta); - } - } - } - } - if (fo) { - fo->write(ibuf + ph.u_len, xct_off - ph.u_len); - } - - total_in = xct_off; - total_out = xct_off; - ph.u_len = 0; - // Position the input for next unpackExtent. - fi->seek(sizeof(linfo) + overlay_offset + sizeof(hbuf) + szb_info + ph.c_len, SEEK_SET); - - // Decompress and unfilter the tail of first PT_LOAD. - phdr = (Elf32_Phdr *) (void *) (1+ ehdr); - for (unsigned j=0; j < u_phnum; ++phdr, ++j) { - if (is_LOAD32(phdr)) { - ph.u_len = get_te32(&phdr->p_filesz) - xct_off; - break; - } - } - unpackExtent(ph.u_len, fo, - c_adler, u_adler, false, szb_info); - } - else { // main executable // Decompress each PT_LOAD. bool first_PF_X = true; phdr = (Elf32_Phdr *) (void *) (1+ ehdr); // uncompressed for (unsigned j=0; j < u_phnum; ++phdr, ++j) { - if (is_LOAD32(phdr)) { + if (PT_LOAD32==get_te32(&phdr->p_type)) { unsigned const filesz = get_te32(&phdr->p_filesz); unsigned const offset = get_te32(&phdr->p_offset); if (fo) fo->seek(offset, SEEK_SET); if (Elf32_Phdr::PF_X & get_te32(&phdr->p_flags)) { unpackExtent(filesz, fo, - c_adler, u_adler, first_PF_X, szb_info); + c_adler, u_adler, first_PF_X); first_PF_X = false; } else { unpackExtent(filesz, fo, - c_adler, u_adler, false, szb_info); + c_adler, u_adler, false); } } } } + + upx_uint32_t const e_entry = get_te32(&ehdri.e_entry); + unsigned off_entry = 0; phdr = phdri; load_va = 0; - for (unsigned j=0; j < c_phnum; ++j) { - if (is_LOAD32(phdr)) { - load_va = get_te32(&phdr->p_vaddr); - break; + for (unsigned j=0; j < c_phnum; ++j, ++phdr) { + if (PT_LOAD32==get_te32(&phdr->p_type)) { + upx_uint32_t offset = get_te32(&phdr->p_offset); + upx_uint32_t vaddr = get_te32(&phdr->p_vaddr); + upx_uint32_t filesz = get_te32(&phdr->p_filesz); + if (!load_va) { + load_va = vaddr; + } + if ((e_entry - vaddr) < filesz) { + off_entry = (e_entry - vaddr) + offset; + break; + } } } + unsigned d_info[6]; + unsigned sz_d_info = sizeof(d_info); + if (!is_shlib) { + if (get_te32(&phdri[0].p_flags) & Elf32_Phdr::PF_X) { + // Old style, such as upx-3.91 thru upx-3.95 + switch (this->e_machine) { + default: { + char msg[40]; snprintf(msg, sizeof(msg), + "Unknown architecture %d", this->e_machine); + throwCantUnpack(msg); + }; break; + case Elf32_Ehdr::EM_MIPS:sz_d_info = 1 * sizeof(unsigned); break; + case Elf32_Ehdr::EM_ARM: sz_d_info = 4 * sizeof(unsigned); break; + case Elf32_Ehdr::EM_PPC: sz_d_info = 3 * sizeof(unsigned); break; + case Elf32_Ehdr::EM_386: sz_d_info = 2 * sizeof(unsigned); break; + } + } + loader_offset = off_entry - sz_d_info; + } + if (0x1000==get_te32(&phdri[0].p_filesz) // detect C_BASE style && 0==get_te32(&phdri[1].p_offset) && 0==get_te32(&phdri[0].p_offset) && get_te32(&phdri[1].p_filesz) == get_te32(&phdri[1].p_memsz)) { - fi->seek(up4(get_te32(&phdr[1].p_memsz)), SEEK_SET); // past the loader + fi->seek(up4(get_te32(&phdri[1].p_memsz)), SEEK_SET); // past the loader } else if (is_shlib - || ((unsigned)(get_te32(&ehdri.e_entry) - load_va) + up4(lsize) + - ph.getPackHeaderSize() + sizeof(overlay_offset)) + || (off_entry + up4(lsize) + ph.getPackHeaderSize() + sizeof(overlay_offset)) < up4(file_size)) { // Loader is not at end; skip past it. - funpad4(fi); // MATCH01 - unsigned d_info[4]; fi->readx(d_info, sizeof(d_info)); - if (0==old_dtinit) { + if (loader_offset) { + fi->seek(loader_offset, SEEK_SET); + } + else { + funpad4(fi); // MATCH01 + } + fi->readx(d_info, sz_d_info); + if (is_shlib && 0==old_dtinit) { old_dtinit = get_te32(&d_info[2 + (0==d_info[0])]); is_asl = 1u& get_te32(&d_info[0 + (0==d_info[0])]); } - fi->seek(lsize - sizeof(d_info), SEEK_CUR); + fi->seek(lsize - sz_d_info, SEEK_CUR); } // The gaps between PT_LOAD and after last PT_LOAD - phdr = (Elf32_Phdr *)&u[sizeof(*ehdr)]; - unsigned hi_offset(0); + phdr = (Elf32_Phdr const *)(1+ (Elf32_Ehdr const *)(void const *)o_elfhdrs); + upx_uint32_t hi_offset(0); for (unsigned j = 0; j < u_phnum; ++j) { - unsigned offset = get_te32(&phdr[j].p_offset); - if (is_LOAD32(&phdr[j]) - && hi_offset < offset) - hi_offset = offset; + if (PT_LOAD32==get_te32(&phdr[j].p_type) + && hi_offset < get_te32(&phdr[j].p_offset)) + hi_offset = get_te32(&phdr[j].p_offset); } for (unsigned j = 0; j < u_phnum; ++j) { unsigned const size = find_LOAD_gap(phdr, j, u_phnum); if (size) { - unsigned const offset = get_te32(&phdr[j].p_offset); - unsigned const where = get_te32(&phdr[j].p_filesz) + offset; + unsigned const where = get_te32(&phdr[j].p_offset) + + get_te32(&phdr[j].p_filesz); if (fo) fo->seek(where, SEEK_SET); + { // Recover from some piracy [also serves as error tolerance :-) ] + b_info b_peek, *bp = &b_peek; + fi->readx(bp, sizeof(b_peek)); + upx_off_t pos = fi->seek(-(off_t)sizeof(b_peek), SEEK_CUR); + unsigned sz_unc = get_te32(&bp->sz_unc); + unsigned sz_cpr = get_te32(&bp->sz_cpr); + unsigned word3 = get_te32(&bp->b_method); + unsigned method = bp->b_method; + unsigned ftid = bp->b_ftid; + unsigned cto8 = bp->b_cto8; + if (!( ((sz_cpr == sz_unc) && (0 == word3) && (size == sz_unc)) // incompressible literal + || ((sz_cpr < sz_unc) && (method == prev_method) && (0 == ftid) && (0 == cto8))) + ) { + opt->info_mode++; + infoWarning("bad b_info at %#zx", (size_t)pos); + unsigned const N_PEEK(64), H_PEEK(N_PEEK >> 1); + unsigned char peek_arr[N_PEEK]; + fi->seek(pos - H_PEEK, SEEK_SET); + fi->readx(peek_arr, sizeof(peek_arr)); + fi->seek(pos, SEEK_SET); + int boff = find_le32(peek_arr, sizeof(peek_arr), size); + if (boff < 0) { + unsigned w; set_be32(&w, size); + boff = find_le32(peek_arr, sizeof(peek_arr), w); + if (boff < 0) { + throwCantUnpack("b_info corrupted"); + } + } + bp = (b_info *)(void *)&peek_arr[boff]; + + sz_unc = get_te32(&bp->sz_unc); + sz_cpr = get_te32(&bp->sz_cpr); + word3 = get_te32(&bp->b_method); + method = bp->b_method; + ftid = bp->b_ftid; + cto8 = bp->b_cto8; + if (0 <= boff // found + && ( ((sz_cpr == sz_unc) && (0 == word3) && (size == sz_unc)) // incompressible literal + || ((sz_cpr < sz_unc) && (method == prev_method) && (0 == ftid) && (0 == cto8))) + ) { + pos -= H_PEEK; + pos += boff; + infoWarning("... recovery at %#zx", (size_t)pos); + fi->seek(pos, SEEK_SET); + } + opt->info_mode--; + } + } unpackExtent(size, fo, - c_adler, u_adler, false, szb_info, - is_shlib && (offset != hi_offset)); + c_adler, u_adler, false, + is_shlib && ((phdr[j].p_offset != hi_offset))); // FIXME: should not depend on is_shlib ? } } @@ -6677,101 +7806,7 @@ void PackLinuxElf32::unpack(OutputFile *fo) } if (is_shlib) { - // DT_INIT must be restored. - // If android_shlib, then the asl_delta relocations must be un-done. - int n_ptload = 0; - unsigned load_off = 0; - phdr = (Elf32_Phdr *)&u[sizeof(*ehdr)]; - for (unsigned j= 0; j < u_phnum; ++j, ++phdr) { - if (is_LOAD32(phdr) && 0!=n_ptload++) { - load_off = get_te32(&phdr->p_offset); - load_va = get_te32(&phdr->p_vaddr); - fi->seek(old_data_off, SEEK_SET); - fi->readx(ibuf, old_data_len); - total_in += old_data_len; - total_out += old_data_len; - - Elf32_Phdr const *udynhdr = (Elf32_Phdr *)&u[sizeof(*ehdr)]; - for (unsigned j3= 0; j3 < u_phnum; ++j3, ++udynhdr) - if (Elf32_Phdr::PT_DYNAMIC==get_te32(&udynhdr->p_type)) { - unsigned dt_pltrelsz(0), dt_jmprel(0); - unsigned dt_relsz(0), dt_rel(0); - unsigned const dyn_len = get_te32(&udynhdr->p_filesz); - unsigned const dyn_off = get_te32(&udynhdr->p_offset); - if ((unsigned long)file_size < (dyn_len + dyn_off)) { - char msg[50]; snprintf(msg, sizeof(msg), - "bad PT_DYNAMIC .p_filesz %#x", dyn_len); - throwCantUnpack(msg); - } - if (dyn_off < load_off) { - continue; // Oops. Not really is_shlib ? [built by 'rust' ?] - } - Elf32_Dyn *dyn = (Elf32_Dyn *)((unsigned char *)ibuf + - (dyn_off - load_off)); - dynseg = dyn; invert_pt_dynamic(dynseg, - umin(dyn_len, file_size - dyn_off)); - for (unsigned j2= 0; j2 < dyn_len; ++dyn, j2 += sizeof(*dyn)) { - unsigned const tag = get_te32(&dyn->d_tag); - unsigned val = get_te32(&dyn->d_val); - if (is_asl) switch (tag) { - case Elf32_Dyn::DT_RELSZ: { dt_relsz = val; } break; - case Elf32_Dyn::DT_REL: { dt_rel = val; } break; - case Elf32_Dyn::DT_PLTRELSZ: { dt_pltrelsz = val; } break; - case Elf32_Dyn::DT_JMPREL: { dt_jmprel = val; } break; - - case Elf32_Dyn::DT_PLTGOT: - case Elf32_Dyn::DT_PREINIT_ARRAY: - case Elf32_Dyn::DT_INIT_ARRAY: - case Elf32_Dyn::DT_FINI_ARRAY: - case Elf32_Dyn::DT_FINI: { - set_te32(&dyn->d_val, val -= asl_delta); - }; break; - } // end switch() - if (upx_dt_init == tag) { - if (Elf32_Dyn::DT_INIT == tag) { - set_te32(&dyn->d_val, old_dtinit); - if (!old_dtinit) { // compressor took the slot - dyn->d_tag = Elf32_Dyn::DT_NULL; - dyn->d_val = 0; - } - } - else if (Elf32_Dyn::DT_INIT_ARRAY == tag - || Elf32_Dyn::DT_PREINIT_ARRAY == tag) { - if (val < load_va || (unsigned)file_size < (unsigned)val) { - char msg[50]; snprintf(msg, sizeof(msg), - "Bad Dynamic tag %#x %#x", - (unsigned)tag, (unsigned)val); - throwCantUnpack(msg); - } - set_te32(&ibuf[val - load_va], old_dtinit - + (is_asl ? asl_delta : 0)); // counter-act unRel32 - } - } - // Modified DT_*.d_val are re-written later from ibuf[] - } - if (is_asl) { - lowmem.alloc(xct_off); - fi->seek(0, SEEK_SET); - fi->read(lowmem, xct_off); // contains relocation tables - if (dt_relsz && dt_rel) { - Elf32_Rel *const rel0 = (Elf32_Rel *)lowmem.subref( - "bad Rel offset", dt_rel, dt_relsz); - unRel32(dt_rel, rel0, dt_relsz, ibuf, load_va, fo); - } - if (dt_pltrelsz && dt_jmprel) { // FIXME: overlap w/ DT_REL ? - Elf32_Rel *const jmp0 = (Elf32_Rel *)lowmem.subref( - "bad Jmprel offset", dt_jmprel, dt_pltrelsz); - unRel32(dt_jmprel, jmp0, dt_pltrelsz, ibuf, load_va, fo); - } - // Modified relocation tables are re-written by unRel32 - } - } - if (fo) { - fo->seek(get_te32(&phdr->p_offset), SEEK_SET); - fo->rewrite(ibuf, old_data_len); - } - } - } + un_DT_INIT(old_dtinit, (Elf32_Phdr *)(1+ (Elf32_Ehdr *)(void *)o_elfhdrs), dynhdr, fo); } // update header with totals diff --git a/src/p_lx_elf.h b/src/p_lx_elf.h index ffbcef40..a4c6d9c5 100644 --- a/src/p_lx_elf.h +++ b/src/p_lx_elf.h @@ -76,6 +76,8 @@ protected: unsigned e_phnum; /* Program header table entry count */ unsigned e_shnum; MemBuffer file_image; // if ET_DYN investigation + MemBuffer lowmem; // at least including PT_LOAD[0] + MemBuffer mb_shdr; // Shdr might not be near Phdr char const *dynstr; // from DT_STRTAB unsigned sz_phdrs; // sizeof Phdr[] @@ -89,6 +91,7 @@ protected: unsigned xct_off; // shared library: file offset of SHT_EXECINSTR unsigned hatch_off; // file offset of escape hatch unsigned o_binfo; // offset to first b_info + upx_off_t so_slide; upx_uint64_t load_va; // PT_LOAD[0].p_vaddr upx_uint64_t xct_va; // minimum SHT_EXECINSTR virtual address upx_uint64_t jni_onload_va; // runtime &JNI_OnLoad @@ -137,10 +140,26 @@ protected: virtual int ARM_is_QNX(void); virtual void pack1(OutputFile *, Filter &) override; // generate executable header + virtual void asl_pack2_Shdrs(OutputFile *, unsigned pre_xct_top); // AndroidSharedLibrary processes Shdrs + virtual void asl_slide_Shdrs(); // by so_slide if above xct_off virtual int pack2(OutputFile *, Filter &) override; // append compressed data virtual off_t pack3(OutputFile *, Filter &) override; // append loader virtual void pack4(OutputFile *, Filter &) override; // append pack header virtual void unpack(OutputFile *fo) override; + virtual void un_asl_dynsym(unsigned orig_file_size, OutputFile *); + virtual void un_shlib_1( + OutputFile *const fo, + MemBuffer &o_elfhdrs, + unsigned &c_adler, + unsigned &u_adler, + unsigned const orig_file_size + ); + virtual void un_DT_INIT( + unsigned old_dtinit, + Elf32_Phdr const *phdro, + Elf32_Phdr const *dynhdr, // in phdri + OutputFile *fo + ); virtual void unRel32(unsigned dt_rel, Elf32_Rel *rel0, unsigned relsz, MemBuffer &membuf, unsigned const load_off, OutputFile *fo); @@ -167,9 +186,12 @@ protected: virtual Elf32_Sym const *elf_lookup(char const *) const; virtual unsigned elf_get_offset_from_address(unsigned) const; + virtual unsigned elf_get_offset_from_Phdrs(unsigned, Elf32_Phdr const *phdr0) const; + virtual Elf32_Phdr *elf_find_Phdr_for_va(unsigned addr, Elf32_Phdr *phdr, unsigned phnum); Elf32_Phdr const *elf_find_ptype(unsigned type, Elf32_Phdr const *phdr0, unsigned phnum); Elf32_Shdr const *elf_find_section_name(char const *) const; - Elf32_Shdr const *elf_find_section_type(unsigned) const; + Elf32_Shdr *elf_find_section_type(unsigned) const; + int is_LOAD32(Elf32_Phdr const *phdr) const; // beware confusion with (1+ LO_PROC) unsigned check_pt_load(Elf32_Phdr const *); unsigned check_pt_dynamic(Elf32_Phdr const *); @@ -183,14 +205,14 @@ protected: char const *get_dynsym_name(unsigned symnum, unsigned relnum) const; protected: Elf32_Ehdr ehdri; // from input file - MemBuffer lowmem; // especially for shlib Elf32_Phdr *phdri; // for input file Elf32_Shdr *shdri; // from input file + Elf32_Shdr *shdro; // for output file Elf32_Phdr const *gnu_stack; // propagate NX unsigned e_phoff; unsigned e_shoff; + unsigned e_shstrndx; unsigned sz_dynseg; // PT_DYNAMIC.p_memsz - unsigned so_slide; unsigned n_jmp_slot; unsigned plt_off; unsigned page_mask; // AND clears the offset-within-page @@ -204,6 +226,7 @@ protected: Elf32_Shdr *sec_strndx; Elf32_Shdr const *sec_dynsym; Elf32_Shdr const *sec_dynstr; + Elf32_Shdr *sec_arm_attr; // SHT_ARM_ATTRIBUTES; unsigned symnum_end; unsigned strtab_end; @@ -285,9 +308,7 @@ protected: MemBuffer &o_elfhdrs, unsigned &c_adler, unsigned &u_adler, - Elf64_Phdr const *const dynhdr, - unsigned const orig_file_size, - unsigned const szb_info + unsigned const orig_file_size ); virtual void un_DT_INIT( unsigned old_dtinit, @@ -320,9 +341,10 @@ protected: virtual Elf64_Sym const *elf_lookup(char const *) const; virtual upx_uint64_t elf_get_offset_from_address(upx_uint64_t) const; + virtual Elf64_Phdr *elf_find_Phdr_for_va(upx_uint64_t addr, Elf64_Phdr *phdr, unsigned phnum); Elf64_Phdr const *elf_find_ptype(unsigned type, Elf64_Phdr const *phdr0, unsigned phnum); Elf64_Shdr const *elf_find_section_name(char const *) const; - Elf64_Shdr const *elf_find_section_type(unsigned) const; + Elf64_Shdr *elf_find_section_type(unsigned) const; int is_LOAD64(Elf64_Phdr const *phdr) const; // beware confusion with (1+ LO_PROC) upx_uint64_t check_pt_load(Elf64_Phdr const *); upx_uint64_t check_pt_dynamic(Elf64_Phdr const *); @@ -336,14 +358,13 @@ protected: char const *get_dynsym_name(unsigned symnum, unsigned relnum) const; protected: Elf64_Ehdr ehdri; // from input file - MemBuffer lowmem; // especially for shlib Elf64_Phdr *phdri; // for input file Elf64_Shdr *shdri; // from input file + Elf64_Shdr *shdro; // for output file Elf64_Phdr const *gnu_stack; // propagate NX upx_uint64_t e_phoff; upx_uint64_t e_shoff; upx_uint64_t sz_dynseg; // PT_DYNAMIC.p_memsz - upx_uint64_t so_slide; unsigned n_jmp_slot; upx_uint64_t page_mask; // AND clears the offset-within-page diff --git a/src/p_lx_interp.cpp b/src/p_lx_interp.cpp index 2bb314a1..a354e9a1 100644 --- a/src/p_lx_interp.cpp +++ b/src/p_lx_interp.cpp @@ -205,7 +205,6 @@ void PackLinuxElf32x86interp::unpack(OutputFile *fo) Elf32_Ehdr *const ehdr = (Elf32_Ehdr *) u.buf; Elf32_Phdr const *phdr = (Elf32_Phdr *) (u.buf + sizeof(*ehdr)); - unsigned szb_info = sizeof(b_info); { fi->seek(0, SEEK_SET); fi->readx(u.buf, MAX_INTERP_HDR); diff --git a/src/p_unix.cpp b/src/p_unix.cpp index 146ff533..897a4606 100644 --- a/src/p_unix.cpp +++ b/src/p_unix.cpp @@ -48,15 +48,23 @@ PackUnix::PackUnix(InputFile *f) : super(f), exetype(0), blocksize(0), overlay_offset(0), lsize(0), - methods_used(0) + methods_used(0), szb_info(sizeof(b_info)) { COMPILE_TIME_ASSERT(sizeof(Elf32_Ehdr) == 52) COMPILE_TIME_ASSERT(sizeof(Elf32_Phdr) == 32) COMPILE_TIME_ASSERT(sizeof(b_info) == 12) COMPILE_TIME_ASSERT(sizeof(l_info) == 12) COMPILE_TIME_ASSERT(sizeof(p_info) == 12) + + // Disable --android-shlib, file-by-file; undecided how to fix. + saved_opt_android_shlib = opt->o_unix.android_shlib; + opt->o_unix.android_shlib = 0; } +PackUnix::~PackUnix() +{ + opt->o_unix.android_shlib = saved_opt_android_shlib; +} // common part of canPack(), enhanced by subclasses bool PackUnix::canPack() @@ -293,11 +301,14 @@ void PackUnix::pack(OutputFile *fo) fi->seek(0, SEEK_SET); pack1(fo, ft); // generate Elf header, etc. - p_info hbuf; - set_te32(&hbuf.p_progid, progid); - set_te32(&hbuf.p_filesize, file_size); - set_te32(&hbuf.p_blocksize, blocksize); - fo->write(&hbuf, sizeof(hbuf)); + // Shlib probably did not generate Elf header yet. + if (fo->st_size()) { // Only append if pack1 actually wrote something. + p_info hbuf; + set_te32(&hbuf.p_progid, progid); + set_te32(&hbuf.p_filesize, file_size); + set_te32(&hbuf.p_blocksize, blocksize); + fo->write(&hbuf, sizeof(hbuf)); + } // append the compressed body if (pack2(fo, ft)) { @@ -458,7 +469,7 @@ void PackUnix::packExtent( // Return actual length when peeking; else 0. unsigned PackUnix::unpackExtent(unsigned wanted, OutputFile *fo, unsigned &c_adler, unsigned &u_adler, - bool first_PF_X, unsigned szb_info, + bool first_PF_X, int is_rewrite // 0(false): write; 1(true): rewrite; -1: no write ) { @@ -589,13 +600,12 @@ int PackUnix::find_overlay_offset(MemBuffer const &buf) void PackUnix::unpack(OutputFile *fo) { b_info bhdr; - unsigned const szb_info = (ph.version <= 11) - ? sizeof(bhdr.sz_unc) + sizeof(bhdr.sz_cpr) // old style - : sizeof(bhdr); - unsigned c_adler = upx_adler32(nullptr, 0); unsigned u_adler = upx_adler32(nullptr, 0); + if (ph.version <= 11) { + szb_info = sizeof(bhdr.sz_unc) + sizeof(bhdr.sz_cpr); // old style + } // defaults for ph.version == 8 unsigned orig_file_size = 0; blocksize = 512 * 1024; diff --git a/src/p_unix.h b/src/p_unix.h index b13bceb3..baa0befc 100644 --- a/src/p_unix.h +++ b/src/p_unix.h @@ -41,6 +41,8 @@ class PackUnix : public Packer { +public: + ~PackUnix(); typedef Packer super; protected: PackUnix(InputFile *f); @@ -82,7 +84,7 @@ protected: bool inhibit_compression_check = false); virtual unsigned unpackExtent(unsigned wanted, OutputFile *fo, unsigned &c_adler, unsigned &u_adler, - bool first_PF_X, unsigned szb_info, + bool first_PF_X, int is_rewrite = false // 0(false): write; 1(true): rewrite; -1: no write ); unsigned total_in, total_out; // unpack @@ -99,6 +101,8 @@ protected: unsigned b_len; // total length of b_info blocks unsigned methods_used; // bitmask of compression methods + unsigned szb_info; // 3*4 (sizeof b_info); or 2*4 if ancient + unsigned saved_opt_android_shlib; // must agree with stub/linux.hh __packed_struct(b_info) // 12-byte header before each compressed block diff --git a/src/packer_c.cpp b/src/packer_c.cpp index 053b3a97..9b899104 100644 --- a/src/packer_c.cpp +++ b/src/packer_c.cpp @@ -210,15 +210,16 @@ const char *Packer::getDecompressorSections() const static const char lzma_elf_fast[] = "LZMA_ELF00,LZMA_DEC20,LZMA_DEC30"; - if (ph.method == M_NRV2B_LE32) + unsigned const method = forced_method(ph.method); + if (method == M_NRV2B_LE32) return opt->small ? nrv2b_le32_small : nrv2b_le32_fast; - if (ph.method == M_NRV2D_LE32) + if (method == M_NRV2D_LE32) return opt->small ? nrv2d_le32_small : nrv2d_le32_fast; - if (ph.method == M_NRV2E_LE32) + if (method == M_NRV2E_LE32) return opt->small ? nrv2e_le32_small : nrv2e_le32_fast; -// if (ph.method == M_CL1B_LE32) +// if (method == M_CL1B_LE32) // return opt->small ? cl1b_le32_small : cl1b_le32_fast; - if (M_IS_LZMA(ph.method)) { + if (M_IS_LZMA(method)) { if (callsManyTimes(ph.format)) { return opt->small ? lzma_elf_small : lzma_elf_fast; } diff --git a/src/stub/Makefile b/src/stub/Makefile index f60f617f..b81af078 100644 --- a/src/stub/Makefile +++ b/src/stub/Makefile @@ -58,13 +58,17 @@ STUBS += amd64-linux.kernel.vmlinux.h STUBS += amd64-linux.shlib-init.h STUBS += amd64-win64.pe.h STUBS += arm.v4a-linux.elf-entry.h +STUBS += arm.v4a-linux.elf-so_entry.h STUBS += arm.v4a-linux.elf-fold.h +STUBS += arm.v4a-linux.elf-so_fold.h STUBS += arm.v4a-wince.pe.h STUBS += arm.v4t-wince.pe.h STUBS += arm.v5a-darwin.macho-entry.h STUBS += arm.v5a-darwin.macho-fold.h STUBS += arm.v5a-linux.elf-entry.h +STUBS += arm.v5a-linux.elf-so_entry.h STUBS += arm.v5a-linux.elf-fold.h +STUBS += arm.v5a-linux.elf-so_fold.h STUBS += arm.v5a-linux.kernel.vmlinux-head.h STUBS += arm.v5a-linux.kernel.vmlinux.h STUBS += arm.v5a-linux.kernel.vmlinuz-head.h @@ -76,7 +80,9 @@ STUBS += armeb.v4a-linux.elf-fold.h STUBS += armeb.v5a-linux.kernel.vmlinux-head.h STUBS += armeb.v5a-linux.kernel.vmlinux.h STUBS += arm64-linux.elf-entry.h +STUBS += arm64-linux.elf-so_entry.h STUBS += arm64-linux.elf-fold.h +STUBS += arm64-linux.elf-so_fold.h STUBS += arm64-linux.shlib-init.h STUBS += arm64-darwin.macho-entry.h STUBS += arm64-darwin.macho-fold.h @@ -98,7 +104,9 @@ STUBS += i386-dos32.djgpp2.h STUBS += i386-dos32.tmt.h STUBS += i386-dos32.watcom.le.h STUBS += i386-linux.elf-entry.h +STUBS += i386-linux.elf-so_entry.h STUBS += i386-linux.elf-fold.h +STUBS += i386-linux.elf-so_fold.h STUBS += i386-linux.elf.execve-entry.h STUBS += i386-linux.elf.execve-fold.h STUBS += i386-linux.elf.interp-entry.h @@ -263,7 +271,7 @@ tc.default.readelf = $(call tc,m-readelf) # default binutils functions define tc.default.f-embed_objinfo chmod a-x $1 - $(call tc,objcopy) --strip-unneeded --keep-symbol=_start $1 + $(call tc,objcopy) --strip-unneeded --keep-symbol=_start --keep-symbol=upx_so_main $1 $(call tc,objcopy) -R .text -R .data -R .bss $1 $(call tc,objcopy) -R .comment -R .note -R .note.GNU-stack -R .reginfo $1 $(call tc,objdump) -Dr $(tc_objdump_disasm_options) $1 | $(RTRIM) > $1.disasm @@ -281,7 +289,7 @@ define tc.default.f-embed_objinfo_without_xstrip chmod a-x $1 $(call tc,objcopy) -R .text -R .data -R .bss $1 $(call tc,objcopy) -R .comment -R .note -R .note.GNU-stack -R .reginfo $1 - $(call tc,objcopy) --strip-unneeded --keep-symbol=_start $1 + $(call tc,objcopy) --strip-unneeded --keep-symbol=_start --keep-symbol=upx_so_main $1 # # Disassemble for human readability # objdump @@ -399,19 +407,8 @@ amd64-linux.elf-fold.h : tmp/$$T.o tmp/amd64-linux.elf-main.o $(srcdir)/src/$$T. $(call tc,bin2h) tmp/$T.bin $@ amd64-linux.elf-so_fold.h : tmp/$$T.o tmp/amd64-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/amd64-expand.o -# # FIXME: multiarch-ld-2.18 creates a huge file here, so use 2.17 -# ####$(call tc,ld) --strip-all -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin multiarch-ld-2.17 -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin -# $(call tc,f-objstrip,tmp/$T.bin) -# $(call tc,sstrip) tmp/$T.bin -# -# $(call tc,f-embed_objinfo,tmp/$T.bin) -# f-embed_objinfo complains: -# File "./../../src/stub/scripts/xstrip.py", line 163, in do_file -# assert e_shstrndx + 3 == e_shnum -# Therefore use a subset of f-embed_objinfo: $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) -# $(call tc,bin2h) tmp/$T.bin $@ tmp/amd64-expand.o: $(srcdir)/src/$$T.S @@ -435,7 +432,6 @@ tmp/amd64-linux.elf-so_main.o : $(srcdir)/src/$$T.c $(call tc,objcopy) --rename-section .text=SO_MAIN -R .comment -R .note -R .note.GNU-stack -R .reginfo $@ $(call tc,f-objstrip,$@) - # /*********************************************************************** # // amd64-linux.kernel.vmlinux # // amd64-linux.kernel.vmlinux-head @@ -525,29 +521,51 @@ tmp/arm.v5a-darwin.macho-main.o : $(srcdir)/src/$$T.c arm.v4a-linux.elf%.h : tc_list = arm.v4a-linux.elf default arm.v4a-linux.elf%.h : tc_bfdname = elf32-littlearm -tc.arm.v4a-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv4 -nostdinc -MMD -MT $@ +tc.arm.v4a-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv4t -nostdinc -MMD -MT $@ tc.arm.v4a-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables tc.arm.v4a-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror arm.v4a-linux.elf-entry.h : $(srcdir)/src/$$T.S - $(call tc,gcc) -march=armv4 -c $< -o tmp/$T.bin + $(call tc,gcc) -c $< -o tmp/$T.bin $(call tc,f-embed_objinfo,tmp/$T.bin) $(call tc,bin2h) tmp/$T.bin $@ -arm.v4a-linux.elf-fold.h : tmp/$$T.o tmp/arm.v4a-linux.elf-main.o $(srcdir)/src/$$T.lds - $(call tc,ld) --strip-all -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin - $(call tc,f-objstrip,tmp/$T.bin) - $(call tc,sstrip) tmp/$T.bin +arm.v4a-linux.elf-so_entry.h: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) $(call tc,bin2h) tmp/$T.bin $@ +arm.v4a-linux.elf-fold.h : tmp/$$T.o tmp/arm.v4a-linux.elf-main.o $(srcdir)/src/$$T.lds + multiarch-ld-2.23.90 -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin + $(call tc,f-objstrip,tmp/$T.bin) + : $(call tc,sstrip) tmp/$T.bin + $(call tc,bin2h) tmp/$T.bin $@ + +arm.v4a-linux.elf-so_fold.h : tmp/$$T.o tmp/arm.v4a-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/arm.v4a-expand.o + multiarch-ld-2.23.90 -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + +tmp/arm.v4a-expand.o: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + tmp/arm.v4a-linux.elf-fold.o : $(srcdir)/src/$$T.S $(call tc,gcc) -c $< -o $@ $(call tc,f-objstrip,$@) +tmp/arm.v4a-linux.elf-so_fold.o : $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + $(call tc,f-objstrip,$@) + tmp/arm.v4a-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-main.c $(call tc,gcc) -c -Os $< -o $@ $(call tc,f-objstrip,$@) +tmp/arm.v4a-linux.elf-so_main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-so_main.c + $(call tc,gcc) -c -O $< -o $@ + $(call tc,objcopy) --rename-section .text=SO_MAIN -R .comment -R .note -R .note.GNU-stack -R .reginfo $@ + $(call tc,f-objstrip,$@) + # /*********************************************************************** # // arm.v5a-linux.kernel.vmlinux (arm.v5a) @@ -586,29 +604,57 @@ arm.v5a-linux.kernel.vmlinuz-head.h : $(srcdir)/src/$$T.S arm.v5a-linux.elf%.h : tc_list = arm.v5a-linux.elf default arm.v5a-linux.elf%.h : tc_bfdname = elf32-littlearm -tc.arm.v5a-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv5 -nostdinc -MMD -MT $@ +tc.arm.v5a-linux.elf.gcc = arm-linux-gcc-4.1.0 -march=armv5t -nostdinc -MMD -MT $@ tc.arm.v5a-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables tc.arm.v5a-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror arm.v5a-linux.elf-entry.h : $(srcdir)/src/$$T.S - $(call tc,gcc) -march=armv5 -c $< -o tmp/$T.bin + $(call tc,gcc) -c $< -o tmp/$T.bin $(call tc,f-embed_objinfo,tmp/$T.bin) $(call tc,bin2h) tmp/$T.bin $@ +arm.v5a-linux.elf-so_entry.h: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + arm.v5a-linux.elf-fold.h : tmp/$$T.o tmp/armel-linux.elf-main.o $(srcdir)/src/arm.v4a-linux.elf-fold.lds $(call tc,ld) --strip-all -T $(srcdir)/src/arm.v4a-linux.elf-fold.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin $(call tc,f-objstrip,tmp/$T.bin) $(call tc,sstrip) tmp/$T.bin $(call tc,bin2h) tmp/$T.bin $@ +arm.v5a-linux.elf-so_fold.h : tmp/$$T.o tmp/arm.v5a-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/arm.v5a-expand.o + multiarch-ld-2.23.90 -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + tmp/arm.v5a-linux.elf-fold.o : $(srcdir)/src/$$T.S $(call tc,gcc) -c $< -o $@ $(call tc,f-objstrip,$@) +tmp/arm.v5a-linux.elf-so_fold.o : $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + $(call tc,f-objstrip,$@) + +tmp/arm.v5a-expand.o: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + +tmp/arm.v5a-linux.elf-so_main.o : $(srcdir)/src/$$T.c + $(call tc,gcc) -c -O $< -o $@ + $(call tc,objcopy) --rename-section .text=SO_MAIN -R .comment -R .note -R .note.GNU-stack -R .reginfo $@ + $(call tc,f-objstrip,$@) + +# /* armel ? */ tmp/armel-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-main.c $(call tc,gcc) -c -Os $< -o $@ $(call tc,f-objstrip,$@) +tmp/armel-linux.elf-so_main.o : $(srcdir)/src/$$T.c + $(call tc,gcc) -c -Os $< -o $@ + $(call tc,objcopy) --rename-section .text=SO_MAIN -R .comment -R .note -R .note.GNU-stack -R .reginfo $@ + $(call tc,f-objstrip,$@) + # /*********************************************************************** # // arm64-linux.elf (arm64) @@ -621,35 +667,65 @@ tc.arm64-linux.elf.gcc = arm64-linux-gcc-4.9.2 -nostdinc -MMD -MT $@ tc.arm64-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables tc.arm64-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror -tc.arm64-linux.elf-fold.ld = arm64-linux-ld-2.25 +tc.arm64-linux.elf-fold.ld = arm64-linux-ld-2.25 +tc.arm64-linux.elf-so_fold.ld = arm64-linux-ld-2.25 -tc.arm64-linux.elf-entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 -tc.arm64-linux.elf-fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 -tc.arm64-linux.elf-main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 +tc.arm64-linux.elf-entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 +tc.arm64-linux.elf-so_entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 +tc.arm64-linux.elf-fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 +tc.arm64-linux.elf-so_fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 +tc.arm64-linux.elf-main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 +tc.arm64-linux.elf-so_main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64 -tc.arm64-linux.elf-entry.objdump = arm64-linux-objdump-2.25 -tc.arm64-linux.elf-fold.objdump = arm64-linux-objdump-2.25 -tc.arm64-linux.elf-main.objdump = arm64-linux-objdump-2.25 +tc.arm64-linux.elf-entry.objdump = arm64-linux-objdump-2.25 +tc.arm64-linux.elf-so_entry.objdump = arm64-linux-objdump-2.25 +tc.arm64-linux.elf-fold.objdump = arm64-linux-objdump-2.25 +tc.arm64-linux.elf-so_fold.objdump = arm64-linux-objdump-2.25 +tc.arm64-linux.elf-main.objdump = arm64-linux-objdump-2.25 +tc.arm64-linux.elf-so_main.objdump = arm64-linux-objdump-2.25 arm64-linux.elf-entry.h : $(srcdir)/src/$$T.S $(call tc,gcc) -c $< -o tmp/$T.bin $(call tc,f-embed_objinfo,tmp/$T.bin) $(call tc,bin2h) tmp/$T.bin $@ +arm64-linux.elf-so_entry.h: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + arm64-linux.elf-fold.h : tmp/$$T.o tmp/arm64-linux.elf-main.o $(srcdir)/src/arm64-linux.elf-fold.lds $(call tc,ld) --strip-all -T $(srcdir)/src/arm64-linux.elf-fold.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin $(call tc,f-objstrip,tmp/$T.bin) $(call tc,sstrip) tmp/$T.bin $(call tc,bin2h) tmp/$T.bin $@ +arm64-linux.elf-so_fold.h : tmp/$$T.o tmp/arm64-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/arm64-expand.o + $(call tc,ld) -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + tmp/arm64-linux.elf-fold.o : $(srcdir)/src/$$T.S $(call tc,gcc) -c $< -o $@ $(call tc,f-objstrip,$@) +tmp/arm64-linux.elf-so_fold.o : $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + $(call tc,objcopy) -R .text $@ + $(call tc,f-objstrip,$@) + +tmp/arm64-expand.o: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + tmp/arm64-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/arm64-linux.elf-main.c $(call tc,gcc) -c -Os $< -o $@ $(call tc,f-objstrip,$@) +tmp/arm64-linux.elf-so_main.o : $(srcdir)/src/$$T.c + $(call tc,gcc) -c -O $< -o $@ + $(call tc,objcopy) --rename-section .text=SO_MAIN -R .comment -R .note -R .note.GNU-stack -R .reginfo $@ + $(call tc,f-objstrip,$@) + # /*********************************************************************** # // arm64-linux.shlib arm64 # ************************************************************************/ @@ -1073,6 +1149,11 @@ i386-linux.elf-entry.h : $(srcdir)/src/$$T.S $(call tc,f-embed_objinfo,tmp/$T.bin) $(call tc,bin2h) tmp/$T.bin $@ +i386-linux.elf-so_entry.h: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + i386-linux.elf-fold.h : tmp/$$T.o tmp/i386-linux.elf-main.o $(srcdir)/src/$$T.lds $(call tc,ld) --strip-all -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin $(call tc,f-objstrip,tmp/$T.bin) @@ -1080,14 +1161,31 @@ i386-linux.elf-fold.h : tmp/$$T.o tmp/i386-linux.elf-main.o $(srcdir)/src/$$T.ld $(call tc,brandelf) --elfosabi=linux tmp/$T.bin $(call tc,bin2h) tmp/$T.bin $@ +i386-linux.elf-so_fold.h : tmp/$$T.o tmp/i386-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/i386-expand.o + multiarch-ld-2.17 -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin + $(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin) + $(call tc,bin2h) tmp/$T.bin $@ + tmp/i386-linux.elf-fold.o : $(srcdir)/src/$$T.S $(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.o $(call tc,f-objstrip,$@) +tmp/i386-linux.elf-so_fold.o : $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o tmp/$T.o + $(call tc,objcopy) -R .text $@ + $(call tc,f-objstrip,$@) + +tmp/i386-expand.o: $(srcdir)/src/$$T.S + $(call tc,gcc) -c $< -o $@ + tmp/i386-linux.elf-main.o : $(srcdir)/src/$$T.c $(call tc,gcc) -c $< -o $@ $(call tc,f-objstrip,$@) +tmp/i386-linux.elf-so_main.o : $(srcdir)/src/$$T.c + $(call tc,gcc) -c -O $< -o $@ + $(call tc,objcopy) --rename-section .text=SO_MAIN -R .comment -R .note -R .note.GNU-stack -R .reginfo $@ + $(call tc,f-objstrip,$@) # /*********************************************************************** # // i386-linux.elf.execve diff --git a/src/stub/amd64-linux.elf-fold.h b/src/stub/amd64-linux.elf-fold.h index 9ca0cace..88977056 100644 --- a/src/stub/amd64-linux.elf-fold.h +++ b/src/stub/amd64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* amd64-linux.elf-fold.h - created from amd64-linux.elf-fold.bin, 3243 (0xcab) bytes + created from amd64-linux.elf-fold.bin, 3233 (0xca1) bytes This file is part of the UPX executable compressor. @@ -31,20 +31,20 @@ */ -#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 3243 -#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x1c0b2bcb -#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xf66a1d6e +#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 3233 +#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0xf79921ba +#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xcbeaacf8 -unsigned char stub_amd64_linux_elf_fold[3243] = { +unsigned char stub_amd64_linux_elf_fold[3233] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 171, 12, 0, 0, 0, 0, 0, 0,171, 12, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 161, 12, 0, 0, 0, 0, 0, 0,161, 12, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 171, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 161, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 74, 0, 0, @@ -184,59 +184,59 @@ unsigned char stub_amd64_linux_elf_fold[3243] = { /* 0x0910 */ 232,140,250,255,255,137,223,232, 33,249,255,255, 94, 95,255, 68, /* 0x0920 */ 36, 12, 15,183, 69, 56, 73,131,197, 56, 57, 68, 36, 12, 15,130, /* 0x0930 */ 113,255,255,255, 72,131,196, 72, 76,137,224, 91, 93, 65, 92, 65, -/* 0x0940 */ 93, 65, 94, 65, 95,195, 0, 0, 85, 72,137,229, 83, 68,137,192, -/* 0x0950 */ 15,182,196,133,192,116, 97, 80, 68,137,192,193,232, 16, 80,255, -/* 0x0960 */ 49, 82,232, 81, 0, 0, 0, 95, 94, 90, 89,131,249, 73,117, 68, -/* 0x0970 */ 83, 87, 72,141, 76, 55,253, 94, 86, 91,235, 47, 72, 57,206,115, -/* 0x0980 */ 50, 86, 94,172, 60,128,114, 10, 60,143,119, 6,128,126,254, 15, -/* 0x0990 */ 116, 6, 44,232, 60, 1,119,228, 72, 57,206,115, 22, 86,173, 40, -/* 0x09a0 */ 208,117,223, 95, 15,200, 41,248, 1,216,171, 72, 57,206,115, 3, -/* 0x09b0 */ 172,235,223, 91,195, 91, 93,195, 81, 72, 1,254, 86, 72,137,254, -/* 0x09c0 */ 82, 72,137,215, 49,219, 49,201, 72,131,205,255,235, 78,139, 30, -/* 0x09d0 */ 72,131,238,252, 17,219,138, 22,243,195, 1,219,116,240,243,195, -/* 0x09e0 */ 72,141, 4, 47,131,249, 5,138, 16,118, 32,131,253,252,119, 27, -/* 0x09f0 */ 131,233, 4,139, 16, 72,131,192, 4,131,233, 4,137, 23, 72,141, -/* 0x0a00 */ 127, 4,115,239,131,193, 4,138, 16,116, 15, 72,255,192,136, 23, -/* 0x0a10 */ 255,201,138, 16, 72,141,127, 1,117,241,243,195,252, 88, 72, 41, -/* 0x0a20 */ 199, 88, 89,137, 57, 72, 41,240, 91, 93,195, 65,128,248, 8, 15, -/* 0x0a30 */ 133,218, 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138, -/* 0x0a40 */ 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114, -/* 0x0a50 */ 230,141, 65, 1,235, 18,255,200, 1,219,117, 10,139, 30, 72,131, -/* 0x0a60 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131, -/* 0x0a70 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131, -/* 0x0a80 */ 238,252, 17,219,138, 22,115,206,131,232, 3,114, 29,193,224, 8, -/* 0x0a90 */ 15,182,210, 9,208, 72,255,198,131,240,255, 15,132,124,255,255, -/* 0x0aa0 */ 255,209,248, 72, 99,232,114, 67,235, 14, 1,219,117, 8,139, 30, -/* 0x0ab0 */ 72,131,238,252, 17,219,114, 51,255,193, 1,219,117, 8,139, 30, -/* 0x0ac0 */ 72,131,238,252, 17,219,114, 35, 1,219,117, 10,139, 30, 72,131, -/* 0x0ad0 */ 238,252, 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72,131, -/* 0x0ae0 */ 238,252, 17,219,115,226,131,193, 2,235, 16, 1,219,117, 10,139, -/* 0x0af0 */ 30, 72,131,238,252, 17,219,138, 22, 17,201, 72,129,253, 0,251, -/* 0x0b00 */ 255,255,131,209, 2,232,214,254,255,255,233, 48,255,255,255, 87, -/* 0x0b10 */ 94, 65,128,248, 5, 15,133,204, 0, 0, 0,235, 8, 72,255,198, -/* 0x0b20 */ 136, 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238, -/* 0x0b30 */ 252, 17,219,138, 22,114,230,141, 65, 1,235, 18,255,200, 1,219, -/* 0x0b40 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1,219, -/* 0x0b50 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1,219, -/* 0x0b60 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,206,131,232, -/* 0x0b70 */ 3,114, 27,193,224, 8, 15,182,210, 9,208, 72,255,198,131,240, -/* 0x0b80 */ 255, 15,132,150,254,255,255,209,248, 72, 99,232,235, 14, 1,219, -/* 0x0b90 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219, -/* 0x0ba0 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201,117, 35, -/* 0x0bb0 */ 255,193, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, -/* 0x0bc0 */ 17,201, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115,226, -/* 0x0bd0 */ 131,193, 2, 72,129,253, 0,251,255,255,131,209, 1,232,254,253, -/* 0x0be0 */ 255,255,233, 62,255,255,255, 87, 94, 65,128,248, 2, 15,133,182, -/* 0x0bf0 */ 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1, -/* 0x0c00 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, -/* 0x0c10 */ 65, 1, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, -/* 0x0c20 */ 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, -/* 0x0c30 */ 115,224,131,232, 3,114, 23,193,224, 8, 15,182,210, 9,208, 72, -/* 0x0c40 */ 255,198,131,240,255, 15,132,210,253,255,255, 72, 99,232,141, 65, -/* 0x0c50 */ 1, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17, -/* 0x0c60 */ 201, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17, -/* 0x0c70 */ 201,117, 35,137,193,131,192, 2, 1,219,117, 10,139, 30, 72,131, -/* 0x0c80 */ 238,252, 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72,131, -/* 0x0c90 */ 238,252, 17,219,115,226, 72,129,253, 0,243,255,255, 17,193,232, -/* 0x0ca0 */ 60,253,255,255,233, 84,255,255,255, 87, 94 +/* 0x0940 */ 93, 65, 94, 65, 95,195, 0, 0, 85, 72,137,229, 83, 15,182, 71, +/* 0x0950 */ 9,133,192,116, 97, 15,182, 79, 10, 80, 81,255, 50, 86,232, 83, +/* 0x0960 */ 0, 0, 0, 95, 94, 90, 89, 80,131,249, 73,117, 68, 83, 87, 72, +/* 0x0970 */ 141, 76, 55,253, 94, 86, 91,235, 47, 72, 57,206,115, 50, 86, 94, +/* 0x0980 */ 172, 60,128,114, 10, 60,143,119, 6,128,126,254, 15,116, 6, 44, +/* 0x0990 */ 232, 60, 1,119,228, 72, 57,206,115, 22, 86,173, 40,208,117,223, +/* 0x09a0 */ 95, 15,200, 41,248, 1,216,171, 72, 57,206,115, 3,172,235,223, +/* 0x09b0 */ 91,195, 88, 91, 93,195, 82, 15,182, 87, 8, 87, 86, 95, 94,139, +/* 0x09c0 */ 70, 4, 72,131,198, 12, 72, 1,240, 80, 87, 49,219, 49,201, 72, +/* 0x09d0 */ 131,205,255,235, 78,139, 30, 72,131,238,252, 17,219,138, 22,243, +/* 0x09e0 */ 195, 1,219,116,240,243,195, 72,141, 4, 47,131,249, 5,138, 16, +/* 0x09f0 */ 118, 32,131,253,252,119, 27,131,233, 4,139, 16, 72,131,192, 4, +/* 0x0a00 */ 131,233, 4,137, 23, 72,141,127, 4,115,239,131,193, 4,138, 16, +/* 0x0a10 */ 116, 15, 72,255,192,136, 23,255,201,138, 16, 72,141,127, 1,117, +/* 0x0a20 */ 241,243,195,252,128,250, 8, 15,133,218, 0, 0, 0,235, 8, 72, +/* 0x0a30 */ 255,198,136, 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72, +/* 0x0a40 */ 131,238,252, 17,219,138, 22,114,230,141, 65, 1,235, 18,255,200, +/* 0x0a50 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, +/* 0x0a60 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, +/* 0x0a70 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,206, +/* 0x0a80 */ 131,232, 3,114, 29,193,224, 8, 15,182,210, 9,208, 72,255,198, +/* 0x0a90 */ 131,240,255, 15,132,103,245,239,255,209,248, 72, 99,232,114, 67, +/* 0x0aa0 */ 235, 14, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,114, 51, +/* 0x0ab0 */ 255,193, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,114, 35, +/* 0x0ac0 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, +/* 0x0ad0 */ 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115,226,131,193, +/* 0x0ae0 */ 2,235, 16, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, +/* 0x0af0 */ 22, 17,201, 72,129,253, 0,251,255,255,131,209, 2,232,229,254, +/* 0x0b00 */ 255,255,233, 48,255,255,255, 87, 94,128,250, 5, 15,133,204, 0, +/* 0x0b10 */ 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219, +/* 0x0b20 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, +/* 0x0b30 */ 1,235, 18,255,200, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x0b40 */ 219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x0b50 */ 219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x0b60 */ 219,138, 22,115,206,131,232, 3,114, 27,193,224, 8, 15,182,210, +/* 0x0b70 */ 9,208, 72,255,198,131,240,255, 15,132,130,244,239,255,209,248, +/* 0x0b80 */ 72, 99,232,235, 14, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x0b90 */ 219,138, 22, 17,201, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x0ba0 */ 219,138, 22, 17,201,117, 35,255,193, 1,219,117, 10,139, 30, 72, +/* 0x0bb0 */ 131,238,252, 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72, +/* 0x0bc0 */ 131,238,252, 17,219,115,226,131,193, 2, 72,129,253, 0,251,255, +/* 0x0bd0 */ 255,131,209, 1,232, 14,254,255,255,233, 62,255,255,255, 87, 94, +/* 0x0be0 */ 128,250, 2, 15,133,182, 0, 0, 0,235, 8, 72,255,198,136, 23, +/* 0x0bf0 */ 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x0c00 */ 219,138, 22,114,230,141, 65, 1, 1,219,117, 10,139, 30, 72,131, +/* 0x0c10 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131, +/* 0x0c20 */ 238,252, 17,219,138, 22,115,224,131,232, 3,114, 23,193,224, 8, +/* 0x0c30 */ 15,182,210, 9,208, 72,255,198,131,240,255, 15,132,191,243,239, +/* 0x0c40 */ 255, 72, 99,232,141, 65, 1, 1,219,117, 10,139, 30, 72,131,238, +/* 0x0c50 */ 252, 17,219,138, 22, 17,201, 1,219,117, 10,139, 30, 72,131,238, +/* 0x0c60 */ 252, 17,219,138, 22, 17,201,117, 35,137,193,131,192, 2, 1,219, +/* 0x0c70 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219, +/* 0x0c80 */ 117, 8,139, 30, 72,131,238,252, 17,219,115,226, 72,129,253, 0, +/* 0x0c90 */ 243,255,255, 17,193,232, 77,253,255,255,233, 84,255,255,255, 87, +/* 0x0ca0 */ 94 }; diff --git a/src/stub/amd64-linux.elf-so_entry.h b/src/stub/amd64-linux.elf-so_entry.h index 7d84ac50..a5f4452d 100644 --- a/src/stub/amd64-linux.elf-so_entry.h +++ b/src/stub/amd64-linux.elf-so_entry.h @@ -1,5 +1,5 @@ /* amd64-linux.elf-so_entry.h - created from amd64-linux.elf-so_entry.bin, 895 (0x37f) bytes + created from amd64-linux.elf-so_entry.bin, 915 (0x393) bytes This file is part of the UPX executable compressor. @@ -31,65 +31,67 @@ */ -#define STUB_AMD64_LINUX_ELF_SO_ENTRY_SIZE 895 -#define STUB_AMD64_LINUX_ELF_SO_ENTRY_ADLER32 0x85bfec8d -#define STUB_AMD64_LINUX_ELF_SO_ENTRY_CRC32 0x0cf04b83 +#define STUB_AMD64_LINUX_ELF_SO_ENTRY_SIZE 915 +#define STUB_AMD64_LINUX_ELF_SO_ENTRY_ADLER32 0xb551f69c +#define STUB_AMD64_LINUX_ELF_SO_ENTRY_CRC32 0xc3e067a5 -unsigned char stub_amd64_linux_elf_so_entry[895] = { +unsigned char stub_amd64_linux_elf_so_entry[915] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, -/* 0x0040 */ 82, 86, 87, 85, 83,232, 0, 0, 0, 0, 1,219,116, 2,243,195, -/* 0x0050 */ 139, 30, 72,131,238,252, 17,219,195, 91, 77, 41,201, 90, 77, 41, -/* 0x0060 */ 192,139, 51,106, 34, 65, 90, 86, 82,106, 3, 90, 41,255,106, 9, -/* 0x0070 */ 88, 15, 5, 90, 80, 80, 95,139, 75, 4, 72,141,115, 12, 72, 1, -/* 0x0080 */ 241, 81, 49,219, 49,201,106,255, 93,252,168,164,255,210,114,251, -/* 0x0090 */ 141, 65, 1,255,210, 17,192,255,210,115,248,131,232, 3,114, 12, -/* 0x00a0 */ 193,224, 8,172,131,240,255,116, 47, 72, 99,232,141, 65, 1,255, -/* 0x00b0 */ 210, 17,201,255,210, 17,201,117, 13,137,193,131,192, 2,255,210, -/* 0x00c0 */ 17,201,255,210,115,248,129,253, 0,243,255,255, 17,193, 86, 72, -/* 0x00d0 */ 141, 52, 47,243,164, 94,235,180, 89, 72, 57,206,116, 1,244, 72, -/* 0x00e0 */ 141, 82,230, 95, 94, 82, 86, 87,106, 5, 90,106, 10, 88, 15, 5, -/* 0x00f0 */ 88, 80,255,224,232, 0, 0, 0, 0,102,105,108,101, 32,102,111, -/* 0x0100 */ 114,109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, -/* 0x0110 */ 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, -/* 0x0120 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, -/* 0x0130 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, -/* 0x0140 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, -/* 0x0150 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108, -/* 0x0160 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97, -/* 0x0170 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, -/* 0x0180 */ 32, 32, 32, 32, 32, 48, 98, 52, 32, 32, 48, 32, 32, 48, 32, 32, -/* 0x0190 */ 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x01a0 */ 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, -/* 0x01b0 */ 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, 32, 48, 32, 32, -/* 0x01c0 */ 48,102, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x01d0 */ 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, -/* 0x01e0 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x01f0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, -/* 0x0200 */ 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, -/* 0x0210 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x0220 */ 108, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, -/* 0x0230 */ 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, -/* 0x0240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x0250 */ 100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, -/* 0x0260 */ 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x0270 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x0280 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x0290 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, -/* 0x02a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x02b0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x02c0 */ 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, -/* 0x02d0 */ 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, -/* 0x02e0 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x02f0 */ 102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x0300 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, -/* 0x0310 */ 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x0320 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x0330 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x0340 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, -/* 0x0350 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, -/* 0x0360 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 43, 48,120, 48, 48, -/* 0x0370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 53, 10 +/* 0x0040 */ 144, 82, 86, 87, 85, 83,232, 0, 0, 0, 0, 1,219,116, 2,243, +/* 0x0050 */ 195,139, 30, 72,131,238,252, 17,219,195, 91, 77, 41,201, 90, 77, +/* 0x0060 */ 41,192,139, 51,106, 34, 65, 90, 86, 82,106, 3, 90, 41,255,106, +/* 0x0070 */ 9, 88, 15, 5, 72, 61, 0,240,255,255,114, 1,204, 90, 80, 80, +/* 0x0080 */ 95,139, 75, 4, 72,141,115, 12, 72, 1,241, 81, 49,219, 49,201, +/* 0x0090 */ 106,255, 93,252,168,164,255,210,114,251,141, 65, 1,255,210, 17, +/* 0x00a0 */ 192,255,210,115,248,131,232, 3,114, 12,193,224, 8,172,131,240, +/* 0x00b0 */ 255,116, 47, 72, 99,232,141, 65, 1,255,210, 17,201,255,210, 17, +/* 0x00c0 */ 201,117, 13,137,193,131,192, 2,255,210, 17,201,255,210,115,248, +/* 0x00d0 */ 129,253, 0,243,255,255, 17,193, 86, 72,141, 52, 47,243,164, 94, +/* 0x00e0 */ 235,180, 89, 72, 57,206,116, 1,244, 72,141, 82,229, 95, 94, 82, +/* 0x00f0 */ 86, 87,106, 5, 90,106, 10, 88, 15, 5, 72, 61, 0,240,255,255, +/* 0x0100 */ 114, 1,204, 88, 80,255,224,232, 0, 0, 0, 0,102,105,108,101, +/* 0x0110 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, +/* 0x0120 */ 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, +/* 0x0130 */ 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0140 */ 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, +/* 0x0150 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, +/* 0x0160 */ 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0170 */ 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, +/* 0x0180 */ 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x0190 */ 78, 88, 32, 32, 32, 32, 32, 32, 48, 99, 55, 32, 32, 48, 32, 32, +/* 0x01a0 */ 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x01b0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, +/* 0x01c0 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, 32, +/* 0x01d0 */ 48, 32, 32, 48, 49, 48, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x01e0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, +/* 0x01f0 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x0200 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, +/* 0x0210 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x0220 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x0230 */ 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0240 */ 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, +/* 0x0250 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x0260 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, +/* 0x0270 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, +/* 0x0280 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, +/* 0x0290 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, +/* 0x02a0 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x02b0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x02c0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x02d0 */ 48, 48, 48, 48, 48, 48, 48, 55, 32, 82, 95, 88, 56, 54, 95, 54, +/* 0x02e0 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x02f0 */ 73, 78, 90, 43, 48,120,102,102,102,102,102,102,102,102,102,102, +/* 0x0300 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, +/* 0x0310 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, +/* 0x0320 */ 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x0330 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x0340 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x0350 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x0360 */ 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, +/* 0x0370 */ 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 43, +/* 0x0380 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x0390 */ 49, 54, 10 }; diff --git a/src/stub/amd64-linux.elf-so_fold.h b/src/stub/amd64-linux.elf-so_fold.h index f136579d..ff61cf6b 100644 --- a/src/stub/amd64-linux.elf-so_fold.h +++ b/src/stub/amd64-linux.elf-so_fold.h @@ -1,5 +1,5 @@ /* amd64-linux.elf-so_fold.h - created from amd64-linux.elf-so_fold.bin, 13952 (0x3680) bytes + created from amd64-linux.elf-so_fold.bin, 14906 (0x3a3a) bytes This file is part of the UPX executable compressor. @@ -31,881 +31,941 @@ */ -#define STUB_AMD64_LINUX_ELF_SO_FOLD_SIZE 13952 -#define STUB_AMD64_LINUX_ELF_SO_FOLD_ADLER32 0x97642183 -#define STUB_AMD64_LINUX_ELF_SO_FOLD_CRC32 0x5aa18d70 +#define STUB_AMD64_LINUX_ELF_SO_FOLD_SIZE 14906 +#define STUB_AMD64_LINUX_ELF_SO_FOLD_ADLER32 0x4c193b82 +#define STUB_AMD64_LINUX_ELF_SO_FOLD_CRC32 0x98b89d83 -unsigned char stub_amd64_linux_elf_so_fold[13952] = { +unsigned char stub_amd64_linux_elf_so_fold[14906] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 30, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 96, 31, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 23, 0, 20, 0, -/* 0x0040 */ 72,131,236, 8, 76,139, 71, 8, 72, 57, 23,115, 10,191,127, 0, -/* 0x0050 */ 0, 0,232, 0, 0, 0, 0, 72,141, 74,255, 72,131,249,255,116, -/* 0x0060 */ 21, 65, 15,182, 0,136, 6, 73,255,192, 72,255,198, 72,255,201, -/* 0x0070 */ 72,131,249,255,117,235, 72, 1, 87, 8, 72, 41, 23, 72,131,196, -/* 0x0080 */ 8,195, 72,131,236, 8,191,127, 0, 0, 0,232, 0, 0, 0, 0, -/* 0x0090 */ 65, 84, 85, 83, 72,131,236, 32, 72,137,253, 72,137,243, 73,137, -/* 0x00a0 */ 212, 72,131, 62, 0, 15,132,236, 0, 0, 0,186, 12, 0, 0, 0, -/* 0x00b0 */ 72,141,116, 36, 16, 72,137,239,232,131,255,255,255,131,124, 36, -/* 0x00c0 */ 16, 0,117, 49,129,124, 36, 20, 85, 80, 88, 33,116, 10,191, 2, -/* 0x00d0 */ 0, 0, 0,232,170,255,255,255, 72,131,125, 0, 0, 15,132,180, -/* 0x00e0 */ 0, 0, 0,191, 3, 0, 0, 0,232,149,255,255,255,102,102,144, -/* 0x00f0 */ 233,162, 0, 0, 0,131,124, 36, 20, 0,117, 10,191, 4, 0, 0, -/* 0x0100 */ 0,232,124,255,255,255,139, 68, 36, 20, 59, 68, 36, 16,119, 9, -/* 0x0110 */ 139, 68, 36, 16, 72, 59, 3,118, 10,191, 5, 0, 0, 0,232, 95, -/* 0x0120 */ 255,255,255,139,116, 36, 20, 59,116, 36, 16,115, 69,139, 68, 36, -/* 0x0130 */ 16, 72,137, 68, 36, 8, 72,139, 83, 8, 72,139,125, 8, 68,139, -/* 0x0140 */ 68, 36, 24, 72,141, 76, 36, 8, 65,255,212,133,192,117, 11,139, -/* 0x0150 */ 68, 36, 16, 72, 59, 68, 36, 8,116, 10,191, 7, 0, 0, 0,232, -/* 0x0160 */ 30,255,255,255,139, 68, 36, 20, 72, 1, 69, 8, 72, 41, 69, 0, -/* 0x0170 */ 235, 16,139, 84, 36, 20, 72,139,115, 8, 72,137,239,232,190,254, -/* 0x0180 */ 255,255,139, 68, 36, 16, 72, 1, 67, 8, 72, 41, 3, 72,131, 59, -/* 0x0190 */ 0, 15,133, 20,255,255,255, 72,131,196, 32, 91, 93, 65, 92,195, -/* 0x01a0 */ 72,137, 92, 36,240, 72,137,108, 36,248, 72,131,236, 24,137,209, -/* 0x01b0 */ 189, 0, 0, 0, 0,187, 0, 0, 0, 0, 72,184,255,255,255,255, -/* 0x01c0 */ 1, 0, 0, 0, 72, 35, 7, 72,186, 1, 0, 0, 0, 1, 0, 0, -/* 0x01d0 */ 0, 72, 57,208,117,122, 72,139, 71, 40, 72,137,195, 72, 3, 95, -/* 0x01e0 */ 16, 72, 1,243, 72, 59, 71, 32,117, 11,137,216,247,216, 33,200, -/* 0x01f0 */ 131,248, 5,119, 50,189, 1, 0, 0, 0, 65,185, 0, 0, 0, 0, -/* 0x0200 */ 65,184,255,255,255,255,185, 34, 0, 0, 0,186, 3, 0, 0, 0, -/* 0x0210 */ 190, 0, 16, 0, 0,191, 0, 0, 0, 0,232, 0, 0, 0, 0, 72, -/* 0x0220 */ 137,195, 72,133,192,116, 36,199, 3, 15, 5, 95, 94,102,199, 67, -/* 0x0230 */ 4, 90,195,133,237,116, 25,186, 5, 0, 0, 0,190, 6, 0, 0, -/* 0x0240 */ 0, 72,137,223,232, 0, 0, 0, 0,235, 5,187, 0, 0, 0, 0, -/* 0x0250 */ 72,137,216, 72,139, 92, 36, 8, 72,139,108, 36, 16, 72,131,196, -/* 0x0260 */ 24,195, 65, 87, 65, 86, 65, 85, 65, 84, 85, 83, 72,131,236,120, -/* 0x0270 */ 72,137,124, 36, 56, 73,137,246, 72,137, 84, 36, 48,139, 6, 73, -/* 0x0280 */ 137,245, 73, 41,197, 72,131,192, 16, 72,137, 68, 36, 40, 65,185, -/* 0x0290 */ 0, 0, 0, 0, 65,184,255,255,255,255,185, 34, 0, 0, 0,186, -/* 0x02a0 */ 3, 0, 0, 0, 72,137,198,191, 0, 0, 0, 0,232, 0, 0, 0, -/* 0x02b0 */ 0, 72,137, 68, 36, 32, 72,139, 84, 36, 40, 76,137,238, 72,137, -/* 0x02c0 */ 199,232, 0, 0, 0, 0, 72,139, 68, 36, 32, 76, 41,232, 73, 1, -/* 0x02d0 */ 198, 69,139,102, 12, 72,139, 68, 36, 32, 77,141,100, 4, 24, 65, -/* 0x02e0 */ 139, 4, 36, 72,137, 68, 36, 80, 76,137,108, 36, 88, 72,137, 68, -/* 0x02f0 */ 36, 96, 76,137,108, 36,104, 65,139, 52, 36,186, 3, 0, 0, 0, -/* 0x0300 */ 76,137,239,232, 0, 0, 0, 0, 65,139, 68, 36, 4, 72,131,192, -/* 0x0310 */ 12, 72,137, 68, 36, 64, 76,137,100, 36, 72, 72,137, 68, 36, 80, -/* 0x0320 */ 76,137,100, 36, 88, 72,141,116, 36, 96, 72,141,124, 36, 80, 72, -/* 0x0330 */ 139, 84, 36, 56,232, 87,253,255,255, 65,139, 68, 36, 4, 77,141, -/* 0x0340 */ 100, 4, 12, 65, 15,183,109, 56, 73,141, 93, 64, 65,191, 0, 0, -/* 0x0350 */ 0, 0,133,237,116, 20,131, 59, 1, 15,148,192, 15,182,192, 65, -/* 0x0360 */ 1,199, 72,131,195, 56,255,205,117,236, 65, 15,183,109, 56, 73, -/* 0x0370 */ 141, 93, 64, 72,199, 68, 36, 24, 0, 0, 0, 0, 65,131,255, 2, -/* 0x0380 */ 119, 11, 65,139, 70, 12, 72,137, 68, 36, 24,235, 35,139, 75, 4, -/* 0x0390 */ 131,225, 7,193,225, 2,186, 64, 98, 81,115,211,234,131,226, 7, -/* 0x03a0 */ 72,139,115, 40, 76,137,239, 72, 3,123, 16,232, 0, 0, 0, 0, -/* 0x03b0 */ 199, 68, 36, 20, 0, 0, 0, 0, 72,199, 68, 36, 8, 0, 0, 0, -/* 0x03c0 */ 0,133,237, 15,132, 48, 1, 0, 0,131, 59, 1, 15,133, 27, 1, -/* 0x03d0 */ 0, 0,246, 67, 4, 2, 15,133, 17, 1, 0, 0,255, 68, 36, 20, -/* 0x03e0 */ 131,124, 36, 20, 1,117, 10, 65,131,255, 2, 15,135,252, 0, 0, -/* 0x03f0 */ 0, 65,139, 4, 36, 72,137, 68, 36, 96, 76,137,232, 72, 3, 67, -/* 0x0400 */ 16, 72,137, 68, 36,104, 72,139,124, 36, 24, 72,129,199,255, 15, -/* 0x0410 */ 0, 0, 72,129,231, 0,240,255,255, 72,139,115, 40, 72, 41,254, -/* 0x0420 */ 72, 1,199, 65,185, 0, 0, 0, 0, 65,184,255,255,255,255,185, -/* 0x0430 */ 50, 0, 0, 0,186, 3, 0, 0, 0,232, 0, 0, 0, 0, 72,139, -/* 0x0440 */ 68, 36, 24, 72, 1, 68, 36,104, 65,139, 68, 36, 4, 72,131,192, -/* 0x0450 */ 12, 72,137, 68, 36, 80, 76,137,100, 36, 88, 72,139, 84, 36, 56, -/* 0x0460 */ 72,141,116, 36, 96, 72,141,124, 36, 80,232, 33,252,255,255, 65, -/* 0x0470 */ 139, 4, 36, 72, 59, 67, 40,115, 27, 72,139, 83, 40, 72, 41,194, -/* 0x0480 */ 72,139,123, 16, 72, 1,199, 76, 1,239,190, 0, 0, 0, 0,232, -/* 0x0490 */ 0, 0, 0, 0, 72,199, 68, 36, 24, 0, 0, 0, 0, 72,131,124, -/* 0x04a0 */ 36, 8, 0,117, 27,246, 67, 4, 1,116, 21,186,255, 15, 0, 0, -/* 0x04b0 */ 76,137,238, 72,137,223,232,229,252,255,255, 72,137, 68, 36, 8, -/* 0x04c0 */ 139, 75, 4,131,225, 7,193,225, 2,186, 64, 98, 81,115,211,234, -/* 0x04d0 */ 131,226, 7, 72,139,115, 40, 76,137,239, 72, 3,123, 16,232, 0, -/* 0x04e0 */ 0, 0, 0, 65,139, 68, 36, 4, 78,141,100, 32, 12, 72,131,195, -/* 0x04f0 */ 56,255,205, 15,133,208,254,255,255, 65,139, 94, 4, 76, 1,235, -/* 0x0500 */ 72,139,116, 36, 40, 72,139,124, 36, 32,232, 0, 0, 0, 0, 72, -/* 0x0510 */ 139, 68, 36, 48, 72,139, 80, 16, 72,139,112, 8,139, 56,255,211, -/* 0x0520 */ 72,139, 68, 36, 8, 72,131,196,120, 91, 93, 65, 92, 65, 93, 65, -/* 0x0530 */ 94, 65, 95,195, 85, 72,137,229, 83, 68,137,192, 15,182,196,133, -/* 0x0540 */ 192,116, 97, 80, 68,137,192,193,232, 16, 80,255, 49, 82,232, 81, -/* 0x0550 */ 0, 0, 0, 95, 94, 90, 89,131,249, 73,117, 68, 83, 87, 72,141, -/* 0x0560 */ 76, 55,253, 94, 86, 91,235, 47, 72, 57,206,115, 50, 86, 94,172, -/* 0x0570 */ 60,128,114, 10, 60,143,119, 6,128,126,254, 15,116, 6, 44,232, -/* 0x0580 */ 60, 1,119,228, 72, 57,206,115, 22, 86,173, 40,208,117,223, 95, -/* 0x0590 */ 15,200, 41,248, 1,216,171, 72, 57,206,115, 3,172,235,223, 91, -/* 0x05a0 */ 195, 91, 93,195, 81, 72, 1,254, 86, 72,137,254, 82, 72,137,215, -/* 0x05b0 */ 49,219, 49,201, 72,131,205,255,235, 78,139, 30, 72,131,238,252, -/* 0x05c0 */ 17,219,138, 22,243,195, 1,219,116,240,243,195, 72,141, 4, 47, -/* 0x05d0 */ 131,249, 5,138, 16,118, 32,131,253,252,119, 27,131,233, 4,139, -/* 0x05e0 */ 16, 72,131,192, 4,131,233, 4,137, 23, 72,141,127, 4,115,239, -/* 0x05f0 */ 131,193, 4,138, 16,116, 15, 72,255,192,136, 23,255,201,138, 16, -/* 0x0600 */ 72,141,127, 1,117,241,243,195,252, 88, 72, 41,199, 88, 89,137, -/* 0x0610 */ 57, 72, 41,240, 91, 93,195, 65,128,248, 8, 15,133,218, 0, 0, -/* 0x0620 */ 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117, -/* 0x0630 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1, -/* 0x0640 */ 235, 18,255,200, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, -/* 0x0650 */ 138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, -/* 0x0660 */ 138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, -/* 0x0670 */ 138, 22,115,206,131,232, 3,114, 29,193,224, 8, 15,182,210, 9, -/* 0x0680 */ 208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0,209,248, 72, -/* 0x0690 */ 99,232,114, 67,235, 14, 1,219,117, 8,139, 30, 72,131,238,252, -/* 0x06a0 */ 17,219,114, 51,255,193, 1,219,117, 8,139, 30, 72,131,238,252, -/* 0x06b0 */ 17,219,114, 35, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, -/* 0x06c0 */ 138, 22, 17,201, 1,219,117, 8,139, 30, 72,131,238,252, 17,219, -/* 0x06d0 */ 115,226,131,193, 2,235, 16, 1,219,117, 10,139, 30, 72,131,238, -/* 0x06e0 */ 252, 17,219,138, 22, 17,201, 72,129,253, 0,251,255,255,131,209, -/* 0x06f0 */ 2,232, 0, 0, 0, 0,233, 48,255,255,255, 87, 94, 65,128,248, -/* 0x0700 */ 5, 15,133,204, 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255, -/* 0x0710 */ 199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, -/* 0x0720 */ 22,114,230,141, 65, 1,235, 18,255,200, 1,219,117, 10,139, 30, -/* 0x0730 */ 72,131,238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, -/* 0x0740 */ 72,131,238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, -/* 0x0750 */ 72,131,238,252, 17,219,138, 22,115,206,131,232, 3,114, 27,193, -/* 0x0760 */ 224, 8, 15,182,210, 9,208, 72,255,198,131,240,255, 15,132, 0, -/* 0x0770 */ 0, 0, 0,209,248, 72, 99,232,235, 14, 1,219,117, 10,139, 30, -/* 0x0780 */ 72,131,238,252, 17,219,138, 22, 17,201, 1,219,117, 10,139, 30, -/* 0x0790 */ 72,131,238,252, 17,219,138, 22, 17,201,117, 35,255,193, 1,219, -/* 0x07a0 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219, -/* 0x07b0 */ 117, 8,139, 30, 72,131,238,252, 17,219,115,226,131,193, 2, 72, -/* 0x07c0 */ 129,253, 0,251,255,255,131,209, 1,232, 0, 0, 0, 0,233, 62, -/* 0x07d0 */ 255,255,255, 87, 94, 65,128,248, 2, 15,133,182, 0, 0, 0,235, -/* 0x07e0 */ 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117, 10,139, -/* 0x07f0 */ 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1, 1,219, -/* 0x0800 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1,219, -/* 0x0810 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,224,131,232, -/* 0x0820 */ 3,114, 23,193,224, 8, 15,182,210, 9,208, 72,255,198,131,240, -/* 0x0830 */ 255, 15,132, 0, 0, 0, 0, 72, 99,232,141, 65, 1, 1,219,117, -/* 0x0840 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219,117, -/* 0x0850 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201,117, 35,137, -/* 0x0860 */ 193,131,192, 2, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, -/* 0x0870 */ 138, 22, 17,201, 1,219,117, 8,139, 30, 72,131,238,252, 17,219, -/* 0x0880 */ 115,226, 72,129,253, 0,243,255,255, 17,193,232, 0, 0, 0, 0, -/* 0x0890 */ 233, 84,255,255,255, 87, 94, 91, 93, 72,141, 61, 0, 0, 0, 0, -/* 0x08a0 */ 94, 72,141, 84, 36, 16,232, 0, 0, 0, 0, 85, 94, 83, 95, 91, -/* 0x08b0 */ 93, 80,104, 11, 0, 0, 0, 88,195, 89, 72,137,240, 72, 41,200, -/* 0x08c0 */ 90, 72, 41,215, 89,137, 57, 91, 93,195,204,195, 87,137,240,137, -/* 0x08d0 */ 209,243,170, 88,195, 87,137,208,131,224, 7, 72,137,209, 72,193, -/* 0x08e0 */ 233, 3,243, 72,165,145,243,164, 88,195,106, 9, 73,137,202, 88, -/* 0x08f0 */ 15, 5,195,106, 60,235,248,106, 11,235,244,106, 10,235,240,106, -/* 0x0900 */ 1, 88, 15, 5,195, 65,128,248, 14, 15,133, 0, 0, 0, 0, 85, -/* 0x0910 */ 72,137,229, 68,139, 9, 73,137,208, 72,137,242, 72,141,119, 2, -/* 0x0920 */ 86,138, 7,255,202,136,193, 36, 7,192,233, 3, 72,199,195, 0, -/* 0x0930 */ 253,255,255, 72,211,227,136,193, 72,141,156, 92,136,241,255,255, -/* 0x0940 */ 72,131,227,192,106, 0, 72, 57,220,117,249, 83, 72,141,123, 8, -/* 0x0950 */ 138, 78,255,255,202,136, 71, 2,136,200,192,233, 4,136, 79, 1, -/* 0x0960 */ 36, 15,136, 7, 72,141, 79,252, 80, 65, 87, 72,141, 71, 4, 69, -/* 0x0970 */ 49,255, 65, 86, 65,190, 1, 0, 0, 0, 65, 85, 69, 49,237, 65, -/* 0x0980 */ 84, 85, 83, 72,137, 76, 36,240, 72,137, 68, 36,216,184, 1, 0, -/* 0x0990 */ 0, 0, 72,137,116, 36,248, 76,137, 68, 36,232,137,195, 68,137, -/* 0x09a0 */ 76, 36,228, 15,182, 79, 2,211,227,137,217, 72,139, 92, 36, 56, -/* 0x09b0 */ 255,201,137, 76, 36,212, 15,182, 79, 1,211,224, 72,139, 76, 36, -/* 0x09c0 */ 240,255,200,137, 68, 36,208, 15,182, 7,199, 1, 0, 0, 0, 0, -/* 0x09d0 */ 199, 68, 36,200, 0, 0, 0, 0,199, 68, 36,196, 1, 0, 0, 0, -/* 0x09e0 */ 199, 68, 36,192, 1, 0, 0, 0,199, 68, 36,188, 1, 0, 0, 0, -/* 0x09f0 */ 199, 3, 0, 0, 0, 0,137, 68, 36,204, 15,182, 79, 1, 1,193, -/* 0x0a00 */ 184, 0, 3, 0, 0,211,224, 49,201,141,184, 54, 7, 0, 0, 65, -/* 0x0a10 */ 57,255,115, 19, 72,139, 92, 36,216,137,200,255,193, 57,249,102, -/* 0x0a20 */ 199, 4, 67, 0, 4,235,235, 72,139,124, 36,248,137,208, 69, 49, -/* 0x0a30 */ 210, 65,131,203,255, 49,210, 73,137,252, 73, 1,196, 76, 57,231, -/* 0x0a40 */ 15,132,239, 8, 0, 0, 15,182, 7, 65,193,226, 8,255,194, 72, -/* 0x0a50 */ 255,199, 65, 9,194,131,250, 4,126,227, 68, 59,124, 36,228, 15, -/* 0x0a60 */ 131,218, 8, 0, 0,139, 68, 36,212, 72, 99, 92, 36,200, 72,139, -/* 0x0a70 */ 84, 36,216, 68, 33,248,137, 68, 36,184, 72, 99,108, 36,184, 72, -/* 0x0a80 */ 137,216, 72,193,224, 4, 72, 1,232, 65,129,251,255,255,255, 0, -/* 0x0a90 */ 76,141, 12, 66,119, 26, 76, 57,231, 15,132,150, 8, 0, 0, 15, -/* 0x0aa0 */ 182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, -/* 0x0ab0 */ 65, 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,193, -/* 0x0ac0 */ 65, 57,194, 15,131,197, 1, 0, 0, 65,137,195,184, 0, 8, 0, -/* 0x0ad0 */ 0, 72,139, 92, 36,216, 41,200, 15,182, 76, 36,204,190, 1, 0, -/* 0x0ae0 */ 0, 0,193,248, 5,141, 4, 2, 65, 15,182,213,102, 65,137, 1, -/* 0x0af0 */ 139, 68, 36,208, 68, 33,248,211,224,185, 8, 0, 0, 0, 43, 76, -/* 0x0b00 */ 36,204,211,250, 1,208,105,192, 0, 3, 0, 0,131,124, 36,200, -/* 0x0b10 */ 6,137,192, 76,141,140, 67,108, 14, 0, 0, 15,142,184, 0, 0, -/* 0x0b20 */ 0, 72,139, 84, 36,232, 68,137,248, 68, 41,240, 15,182, 44, 2, -/* 0x0b30 */ 1,237, 72, 99,214,137,235,129,227, 0, 1, 0, 0, 65,129,251, -/* 0x0b40 */ 255,255,255, 0, 72, 99,195, 73,141, 4, 65, 76,141, 4, 80,119, -/* 0x0b50 */ 26, 76, 57,231, 15,132,219, 7, 0, 0, 15,182, 7, 65,193,226, -/* 0x0b60 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183,144, 0, -/* 0x0b70 */ 2, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, -/* 0x0b80 */ 57,194,115, 32, 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200, -/* 0x0b90 */ 193,248, 5,133,219,141, 4, 2,102, 65,137,128, 0, 2, 0, 0, -/* 0x0ba0 */ 116, 33,235, 45, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, -/* 0x0bb0 */ 141,116, 54, 1,102, 41,194,133,219,102, 65,137,144, 0, 2, 0, -/* 0x0bc0 */ 0,116, 14,129,254,255, 0, 0, 0, 15,142, 97,255,255,255,235, -/* 0x0bd0 */ 120,129,254,255, 0, 0, 0,127,112, 72, 99,198, 65,129,251,255, -/* 0x0be0 */ 255,255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, 67, 7, -/* 0x0bf0 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, -/* 0x0c00 */ 65, 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,202, -/* 0x0c10 */ 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, -/* 0x0c20 */ 1,246, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235,161, -/* 0x0c30 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141,116, 54, 1, -/* 0x0c40 */ 102, 41,194,102, 65,137, 16,235,136, 72,139, 76, 36,232, 68,137, -/* 0x0c50 */ 248, 65,255,199, 65,137,245, 64,136, 52, 1,131,124, 36,200, 3, -/* 0x0c60 */ 127, 13,199, 68, 36,200, 0, 0, 0, 0,233,166, 6, 0, 0,139, -/* 0x0c70 */ 84, 36,200,139, 68, 36,200,131,234, 3,131,232, 6,131,124, 36, -/* 0x0c80 */ 200, 9, 15, 79,208,137, 84, 36,200,233,135, 6, 0, 0, 65, 41, -/* 0x0c90 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 72,139, 68, -/* 0x0ca0 */ 36,216, 65,129,251,255,255,255, 0,102, 65,137, 17, 72,141, 52, -/* 0x0cb0 */ 88,119, 26, 76, 57,231, 15,132,121, 6, 0, 0, 15,182, 7, 65, -/* 0x0cc0 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150, -/* 0x0cd0 */ 128, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, -/* 0x0ce0 */ 65, 57,194,115, 78, 65,137,195,184, 0, 8, 0, 0, 76,139, 76, -/* 0x0cf0 */ 36,216, 41,200,139, 76, 36,196, 68,137,116, 36,196,193,248, 5, -/* 0x0d00 */ 141, 4, 2,139, 84, 36,192,137, 76, 36,192,102,137,134,128, 1, -/* 0x0d10 */ 0, 0, 49,192,131,124, 36,200, 6,137, 84, 36,188, 15,159,192, -/* 0x0d20 */ 73,129,193,100, 6, 0, 0,141, 4, 64,137, 68, 36,200,233, 84, -/* 0x0d30 */ 2, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, -/* 0x0d40 */ 41,194, 65,129,251,255,255,255, 0,102,137,150,128, 1, 0, 0, -/* 0x0d50 */ 119, 26, 76, 57,231, 15,132,218, 5, 0, 0, 15,182, 7, 65,193, -/* 0x0d60 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,152, -/* 0x0d70 */ 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, -/* 0x0d80 */ 57,194, 15,131,208, 0, 0, 0, 65,184, 0, 8, 0, 0, 65,137, -/* 0x0d90 */ 195, 72,193,227, 5, 68,137,192, 41,200,193,248, 5,141, 4, 2, -/* 0x0da0 */ 102,137,134,152, 1, 0, 0, 72,139, 68, 36,216, 72, 1,216, 65, -/* 0x0db0 */ 129,251,255,255,255, 0, 72,141, 52,104,119, 26, 76, 57,231, 15, -/* 0x0dc0 */ 132,112, 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, -/* 0x0dd0 */ 72,255,199, 65, 9,194, 15,183,150,224, 1, 0, 0, 68,137,216, -/* 0x0de0 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 79, 65, 41, -/* 0x0df0 */ 200, 65,137,195, 65,193,248, 5, 69,133,255, 66,141, 4, 2,102, -/* 0x0e00 */ 137,134,224, 1, 0, 0, 15,132, 41, 5, 0, 0, 49,192,131,124, -/* 0x0e10 */ 36,200, 6, 72,139, 92, 36,232, 15,159,192,141, 68, 0, 9,137, -/* 0x0e20 */ 68, 36,200, 68,137,248, 68, 41,240, 68, 15,182, 44, 3, 68,137, -/* 0x0e30 */ 248, 65,255,199, 68,136, 44, 3,233,216, 4, 0, 0, 65, 41,195, -/* 0x0e40 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194,102,137,150,224, -/* 0x0e50 */ 1, 0, 0,233, 17, 1, 0, 0, 65, 41,195, 65, 41,194,137,208, -/* 0x0e60 */ 102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137, -/* 0x0e70 */ 150,152, 1, 0, 0,119, 26, 76, 57,231, 15,132,181, 4, 0, 0, -/* 0x0e80 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9, -/* 0x0e90 */ 194, 15,183,150,176, 1, 0, 0, 68,137,216,193,232, 11, 15,183, -/* 0x0ea0 */ 202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0, -/* 0x0eb0 */ 0, 41,200,193,248, 5,141, 4, 2,102,137,134,176, 1, 0, 0, -/* 0x0ec0 */ 139, 68, 36,196,233,152, 0, 0, 0, 65, 41,195, 65, 41,194,137, -/* 0x0ed0 */ 208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102, -/* 0x0ee0 */ 137,150,176, 1, 0, 0,119, 26, 76, 57,231, 15,132, 68, 4, 0, -/* 0x0ef0 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x0f00 */ 9,194, 15,183,150,200, 1, 0, 0, 68,137,216,193,232, 11, 15, -/* 0x0f10 */ 183,202, 15,175,193, 65, 57,194,115, 29, 65,137,195,184, 0, 8, -/* 0x0f20 */ 0, 0, 41,200,193,248, 5,141, 4, 2,102,137,134,200, 1, 0, -/* 0x0f30 */ 0,139, 68, 36,192,235, 34, 65, 41,195, 65, 41,194,137,208,102, -/* 0x0f40 */ 193,232, 5,102, 41,194,139, 68, 36,188,102,137,150,200, 1, 0, -/* 0x0f50 */ 0,139, 84, 36,192,137, 84, 36,188,139, 76, 36,196,137, 76, 36, -/* 0x0f60 */ 192, 68,137,116, 36,196, 65,137,198, 49,192,131,124, 36,200, 6, -/* 0x0f70 */ 76,139, 76, 36,216, 15,159,192, 73,129,193,104, 10, 0, 0,141, -/* 0x0f80 */ 68, 64, 8,137, 68, 36,200, 65,129,251,255,255,255, 0,119, 26, -/* 0x0f90 */ 76, 57,231, 15,132,156, 3, 0, 0, 15,182, 7, 65,193,226, 8, -/* 0x0fa0 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137, -/* 0x0fb0 */ 216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 39, 65, -/* 0x0fc0 */ 137,195,184, 0, 8, 0, 0, 69, 49,237, 41,200,193,248, 5,141, -/* 0x0fd0 */ 4, 2,102, 65,137, 1, 72, 99, 68, 36,184, 72,193,224, 4, 77, -/* 0x0fe0 */ 141, 68, 1, 4,235,120, 65, 41,195, 65, 41,194,137,208,102,193, -/* 0x0ff0 */ 232, 5,102, 41,194, 65,129,251,255,255,255, 0,102, 65,137, 17, -/* 0x1000 */ 119, 26, 76, 57,231, 15,132, 42, 3, 0, 0, 15,182, 7, 65,193, -/* 0x1010 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 81, -/* 0x1020 */ 2, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, -/* 0x1030 */ 115, 52, 65,137,195,184, 0, 8, 0, 0, 65,189, 8, 0, 0, 0, -/* 0x1040 */ 41,200,193,248, 5,141, 4, 2,102, 65,137, 65, 2, 72, 99, 68, -/* 0x1050 */ 36,184, 72,193,224, 4, 77,141,132, 1, 4, 1, 0, 0, 65,185, -/* 0x1060 */ 3, 0, 0, 0,235, 39, 65, 41,195, 65, 41,194,137,208,102,193, -/* 0x1070 */ 232, 5, 77,141,129, 4, 2, 0, 0, 65,189, 16, 0, 0, 0,102, -/* 0x1080 */ 41,194,102, 65,137, 81, 2, 65,185, 8, 0, 0, 0, 68,137,203, -/* 0x1090 */ 189, 1, 0, 0, 0, 72, 99,197, 65,129,251,255,255,255, 0, 73, -/* 0x10a0 */ 141, 52, 64,119, 26, 76, 57,231, 15,132,135, 2, 0, 0, 15,182, -/* 0x10b0 */ 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15, -/* 0x10c0 */ 183, 14, 68,137,216,193,232, 11, 15,183,209, 15,175,194, 65, 57, -/* 0x10d0 */ 194,115, 23, 65,137,195,184, 0, 8, 0, 0, 1,237, 41,208,193, -/* 0x10e0 */ 248, 5,141, 4, 1,102,137, 6,235, 22, 65, 41,195, 65, 41,194, -/* 0x10f0 */ 137,200,102,193,232, 5,141,108, 45, 1,102, 41,193,102,137, 14, -/* 0x1100 */ 255,203,117,145,184, 1, 0, 0, 0, 68,137,201,211,224, 41,197, -/* 0x1110 */ 68, 1,237,131,124, 36,200, 3, 15,143,194, 1, 0, 0,131, 68, -/* 0x1120 */ 36,200, 7,184, 3, 0, 0, 0,131,253, 4, 15, 76,197, 72,139, -/* 0x1130 */ 92, 36,216, 65,184, 1, 0, 0, 0, 72,152, 72,193,224, 7, 76, -/* 0x1140 */ 141,140, 3, 96, 3, 0, 0,187, 6, 0, 0, 0, 73, 99,192, 65, -/* 0x1150 */ 129,251,255,255,255, 0, 73,141, 52, 65,119, 26, 76, 57,231, 15, -/* 0x1160 */ 132,208, 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, -/* 0x1170 */ 72,255,199, 65, 9,194, 15,183, 22, 68,137,216,193,232, 11, 15, -/* 0x1180 */ 183,202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, -/* 0x1190 */ 0, 0, 69, 1,192, 41,200,193,248, 5,141, 4, 2,102,137, 6, -/* 0x11a0 */ 235, 23, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, 71,141, -/* 0x11b0 */ 68, 0, 1,102, 41,194,102,137, 22,255,203,117,143, 65,131,232, -/* 0x11c0 */ 64, 65,131,248, 3, 69,137,198, 15,142, 13, 1, 0, 0, 65,131, -/* 0x11d0 */ 230, 1, 68,137,192,209,248, 65,131,206, 2, 65,131,248, 13,141, -/* 0x11e0 */ 112,255,127, 35,137,241, 72,139, 92, 36,216, 73, 99,192, 65,211, -/* 0x11f0 */ 230, 72, 1,192, 68,137,242, 72,141, 20, 83, 72, 41,194, 76,141, -/* 0x1200 */ 138, 94, 5, 0, 0,235, 81,141,112,251, 65,129,251,255,255,255, -/* 0x1210 */ 0,119, 26, 76, 57,231, 15,132, 25, 1, 0, 0, 15,182, 7, 65, -/* 0x1220 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65,209,235, -/* 0x1230 */ 69, 1,246, 69, 57,218,114, 7, 69, 41,218, 65,131,206, 1,255, -/* 0x1240 */ 206,117,199, 76,139, 76, 36,216, 65,193,230, 4,190, 4, 0, 0, -/* 0x1250 */ 0, 73,129,193, 68, 6, 0, 0, 65,189, 1, 0, 0, 0,187, 1, -/* 0x1260 */ 0, 0, 0, 72, 99,195, 65,129,251,255,255,255, 0, 77,141, 4, -/* 0x1270 */ 65,119, 26, 76, 57,231, 15,132,185, 0, 0, 0, 15,182, 7, 65, -/* 0x1280 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, -/* 0x1290 */ 16, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, -/* 0x12a0 */ 115, 24, 65,137,195,184, 0, 8, 0, 0, 1,219, 41,200,193,248, -/* 0x12b0 */ 5,141, 4, 2,102, 65,137, 0,235, 26, 65, 41,195, 65, 41,194, -/* 0x12c0 */ 137,208,102,193,232, 5,141, 92, 27, 1, 69, 9,238,102, 41,194, -/* 0x12d0 */ 102, 65,137, 16, 69, 1,237,255,206,117,136, 65,255,198,116, 64, -/* 0x12e0 */ 131,197, 2, 69, 57,254,119, 77, 72,139, 84, 36,232, 68,137,248, -/* 0x12f0 */ 68, 41,240, 68, 15,182, 44, 2, 68,137,248, 65,255,199,255,205, -/* 0x1300 */ 68,136, 44, 2, 15,149,194, 49,192, 68, 59,124, 36,228, 15,146, -/* 0x1310 */ 192,133,194,117,211, 68, 59,124, 36,228, 15,130, 69,247,255,255, -/* 0x1320 */ 65,129,251,255,255,255, 0,119, 22, 76, 57,231,184, 1, 0, 0, -/* 0x1330 */ 0,116, 35,235, 7,184, 1, 0, 0, 0,235, 26, 72,255,199,137, -/* 0x1340 */ 248, 43, 68, 36,248, 72,139, 76, 36,240, 72,139, 92, 36, 56,137, -/* 0x1350 */ 1, 68,137, 59, 49,192, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95, -/* 0x1360 */ 65, 87, 72,141, 71, 4, 69, 49,255, 65, 86, 65,190, 1, 0, 0, -/* 0x1370 */ 0, 65, 85, 69, 49,237, 65, 84, 85, 83, 72,137, 76, 36,240, 72, -/* 0x1380 */ 137, 68, 36,216,184, 1, 0, 0, 0, 72,137,116, 36,248, 76,137, -/* 0x1390 */ 68, 36,232,137,195, 68,137, 76, 36,228, 15,182, 79, 2,211,227, -/* 0x13a0 */ 137,217, 72,139, 92, 36, 56,255,201,137, 76, 36,212, 15,182, 79, -/* 0x13b0 */ 1,211,224, 72,139, 76, 36,240,255,200,137, 68, 36,208, 15,182, -/* 0x13c0 */ 7,199, 1, 0, 0, 0, 0,199, 68, 36,200, 0, 0, 0, 0,199, -/* 0x13d0 */ 68, 36,196, 1, 0, 0, 0,199, 68, 36,192, 1, 0, 0, 0,199, -/* 0x13e0 */ 68, 36,188, 1, 0, 0, 0,199, 3, 0, 0, 0, 0,137, 68, 36, -/* 0x13f0 */ 204, 15,182, 79, 1, 1,193,184, 0, 3, 0, 0,211,224, 49,201, -/* 0x1400 */ 141,184, 54, 7, 0, 0, 65, 57,255,115, 19, 72,139, 92, 36,216, -/* 0x1410 */ 137,200,255,193, 57,249,102,199, 4, 67, 0, 4,235,235, 72,139, -/* 0x1420 */ 124, 36,248,137,208, 69, 49,210, 65,131,203,255, 49,210, 73,137, -/* 0x1430 */ 252, 73, 1,196, 76, 57,231, 15,132,239, 8, 0, 0, 15,182, 7, -/* 0x1440 */ 65,193,226, 8,255,194, 72,255,199, 65, 9,194,131,250, 4,126, -/* 0x1450 */ 227, 68, 59,124, 36,228, 15,131,218, 8, 0, 0,139, 68, 36,212, -/* 0x1460 */ 72, 99, 92, 36,200, 72,139, 84, 36,216, 68, 33,248,137, 68, 36, -/* 0x1470 */ 184, 72, 99,108, 36,184, 72,137,216, 72,193,224, 4, 72, 1,232, -/* 0x1480 */ 65,129,251,255,255,255, 0, 76,141, 12, 66,119, 26, 76, 57,231, -/* 0x1490 */ 15,132,150, 8, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, -/* 0x14a0 */ 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193,232, -/* 0x14b0 */ 11, 15,183,202, 15,175,193, 65, 57,194, 15,131,197, 1, 0, 0, -/* 0x14c0 */ 65,137,195,184, 0, 8, 0, 0, 72,139, 92, 36,216, 41,200, 15, -/* 0x14d0 */ 182, 76, 36,204,190, 1, 0, 0, 0,193,248, 5,141, 4, 2, 65, -/* 0x14e0 */ 15,182,213,102, 65,137, 1,139, 68, 36,208, 68, 33,248,211,224, -/* 0x14f0 */ 185, 8, 0, 0, 0, 43, 76, 36,204,211,250, 1,208,105,192, 0, -/* 0x1500 */ 3, 0, 0,131,124, 36,200, 6,137,192, 76,141,140, 67,108, 14, -/* 0x1510 */ 0, 0, 15,142,184, 0, 0, 0, 72,139, 84, 36,232, 68,137,248, -/* 0x1520 */ 68, 41,240, 15,182, 44, 2, 1,237, 72, 99,214,137,235,129,227, -/* 0x1530 */ 0, 1, 0, 0, 65,129,251,255,255,255, 0, 72, 99,195, 73,141, -/* 0x1540 */ 4, 65, 76,141, 4, 80,119, 26, 76, 57,231, 15,132,219, 7, 0, -/* 0x1550 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x1560 */ 9,194, 65, 15,183,144, 0, 2, 0, 0, 68,137,216,193,232, 11, -/* 0x1570 */ 15,183,202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0, -/* 0x1580 */ 8, 0, 0, 1,246, 41,200,193,248, 5,133,219,141, 4, 2,102, -/* 0x1590 */ 65,137,128, 0, 2, 0, 0,116, 33,235, 45, 65, 41,195, 65, 41, -/* 0x15a0 */ 194,137,208,102,193,232, 5,141,116, 54, 1,102, 41,194,133,219, -/* 0x15b0 */ 102, 65,137,144, 0, 2, 0, 0,116, 14,129,254,255, 0, 0, 0, -/* 0x15c0 */ 15,142, 97,255,255,255,235,120,129,254,255, 0, 0, 0,127,112, -/* 0x15d0 */ 72, 99,198, 65,129,251,255,255,255, 0, 77,141, 4, 65,119, 26, -/* 0x15e0 */ 76, 57,231, 15,132, 67, 7, 0, 0, 15,182, 7, 65,193,226, 8, -/* 0x15f0 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68,137, -/* 0x1600 */ 216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, 65, -/* 0x1610 */ 137,195,184, 0, 8, 0, 0, 1,246, 41,200,193,248, 5,141, 4, -/* 0x1620 */ 2,102, 65,137, 0,235,161, 65, 41,195, 65, 41,194,137,208,102, -/* 0x1630 */ 193,232, 5,141,116, 54, 1,102, 41,194,102, 65,137, 16,235,136, -/* 0x1640 */ 72,139, 76, 36,232, 68,137,248, 65,255,199, 65,137,245, 64,136, -/* 0x1650 */ 52, 1,131,124, 36,200, 3,127, 13,199, 68, 36,200, 0, 0, 0, -/* 0x1660 */ 0,233,166, 6, 0, 0,139, 84, 36,200,139, 68, 36,200,131,234, -/* 0x1670 */ 3,131,232, 6,131,124, 36,200, 9, 15, 79,208,137, 84, 36,200, -/* 0x1680 */ 233,135, 6, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, -/* 0x1690 */ 5,102, 41,194, 72,139, 68, 36,216, 65,129,251,255,255,255, 0, -/* 0x16a0 */ 102, 65,137, 17, 72,141, 52, 88,119, 26, 76, 57,231, 15,132,121, -/* 0x16b0 */ 6, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, -/* 0x16c0 */ 199, 65, 9,194, 15,183,150,128, 1, 0, 0, 68,137,216,193,232, -/* 0x16d0 */ 11, 15,183,202, 15,175,193, 65, 57,194,115, 78, 65,137,195,184, -/* 0x16e0 */ 0, 8, 0, 0, 76,139, 76, 36,216, 41,200,139, 76, 36,196, 68, -/* 0x16f0 */ 137,116, 36,196,193,248, 5,141, 4, 2,139, 84, 36,192,137, 76, -/* 0x1700 */ 36,192,102,137,134,128, 1, 0, 0, 49,192,131,124, 36,200, 6, -/* 0x1710 */ 137, 84, 36,188, 15,159,192, 73,129,193,100, 6, 0, 0,141, 4, -/* 0x1720 */ 64,137, 68, 36,200,233, 84, 2, 0, 0, 65, 41,195, 65, 41,194, -/* 0x1730 */ 137,208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0, -/* 0x1740 */ 102,137,150,128, 1, 0, 0,119, 26, 76, 57,231, 15,132,218, 5, -/* 0x1750 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, -/* 0x1760 */ 65, 9,194, 15,183,150,152, 1, 0, 0, 68,137,216,193,232, 11, -/* 0x1770 */ 15,183,202, 15,175,193, 65, 57,194, 15,131,208, 0, 0, 0, 65, -/* 0x1780 */ 184, 0, 8, 0, 0, 65,137,195, 72,193,227, 5, 68,137,192, 41, -/* 0x1790 */ 200,193,248, 5,141, 4, 2,102,137,134,152, 1, 0, 0, 72,139, -/* 0x17a0 */ 68, 36,216, 72, 1,216, 65,129,251,255,255,255, 0, 72,141, 52, -/* 0x17b0 */ 104,119, 26, 76, 57,231, 15,132,112, 5, 0, 0, 15,182, 7, 65, -/* 0x17c0 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150, -/* 0x17d0 */ 224, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, -/* 0x17e0 */ 65, 57,194,115, 79, 65, 41,200, 65,137,195, 65,193,248, 5, 69, -/* 0x17f0 */ 133,255, 66,141, 4, 2,102,137,134,224, 1, 0, 0, 15,132, 41, -/* 0x1800 */ 5, 0, 0, 49,192,131,124, 36,200, 6, 72,139, 92, 36,232, 15, -/* 0x1810 */ 159,192,141, 68, 0, 9,137, 68, 36,200, 68,137,248, 68, 41,240, -/* 0x1820 */ 68, 15,182, 44, 3, 68,137,248, 65,255,199, 68,136, 44, 3,233, -/* 0x1830 */ 216, 4, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, -/* 0x1840 */ 102, 41,194,102,137,150,224, 1, 0, 0,233, 17, 1, 0, 0, 65, -/* 0x1850 */ 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129, -/* 0x1860 */ 251,255,255,255, 0,102,137,150,152, 1, 0, 0,119, 26, 76, 57, -/* 0x1870 */ 231, 15,132,181, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65,193, -/* 0x1880 */ 227, 8, 72,255,199, 65, 9,194, 15,183,150,176, 1, 0, 0, 68, -/* 0x1890 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 32, -/* 0x18a0 */ 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, 2, -/* 0x18b0 */ 102,137,134,176, 1, 0, 0,139, 68, 36,196,233,152, 0, 0, 0, -/* 0x18c0 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65, -/* 0x18d0 */ 129,251,255,255,255, 0,102,137,150,176, 1, 0, 0,119, 26, 76, -/* 0x18e0 */ 57,231, 15,132, 68, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65, -/* 0x18f0 */ 193,227, 8, 72,255,199, 65, 9,194, 15,183,150,200, 1, 0, 0, -/* 0x1900 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, -/* 0x1910 */ 29, 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, -/* 0x1920 */ 2,102,137,134,200, 1, 0, 0,139, 68, 36,192,235, 34, 65, 41, -/* 0x1930 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194,139, 68, 36, -/* 0x1940 */ 188,102,137,150,200, 1, 0, 0,139, 84, 36,192,137, 84, 36,188, -/* 0x1950 */ 139, 76, 36,196,137, 76, 36,192, 68,137,116, 36,196, 65,137,198, -/* 0x1960 */ 49,192,131,124, 36,200, 6, 76,139, 76, 36,216, 15,159,192, 73, -/* 0x1970 */ 129,193,104, 10, 0, 0,141, 68, 64, 8,137, 68, 36,200, 65,129, -/* 0x1980 */ 251,255,255,255, 0,119, 26, 76, 57,231, 15,132,156, 3, 0, 0, -/* 0x1990 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9, -/* 0x19a0 */ 194, 65, 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175, -/* 0x19b0 */ 193, 65, 57,194,115, 39, 65,137,195,184, 0, 8, 0, 0, 69, 49, -/* 0x19c0 */ 237, 41,200,193,248, 5,141, 4, 2,102, 65,137, 1, 72, 99, 68, -/* 0x19d0 */ 36,184, 72,193,224, 4, 77,141, 68, 1, 4,235,120, 65, 41,195, -/* 0x19e0 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,251,255, -/* 0x19f0 */ 255,255, 0,102, 65,137, 17,119, 26, 76, 57,231, 15,132, 42, 3, -/* 0x1a00 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, -/* 0x1a10 */ 65, 9,194, 65, 15,183, 81, 2, 68,137,216,193,232, 11, 15,183, -/* 0x1a20 */ 202, 15,175,193, 65, 57,194,115, 52, 65,137,195,184, 0, 8, 0, -/* 0x1a30 */ 0, 65,189, 8, 0, 0, 0, 41,200,193,248, 5,141, 4, 2,102, -/* 0x1a40 */ 65,137, 65, 2, 72, 99, 68, 36,184, 72,193,224, 4, 77,141,132, -/* 0x1a50 */ 1, 4, 1, 0, 0, 65,185, 3, 0, 0, 0,235, 39, 65, 41,195, -/* 0x1a60 */ 65, 41,194,137,208,102,193,232, 5, 77,141,129, 4, 2, 0, 0, -/* 0x1a70 */ 65,189, 16, 0, 0, 0,102, 41,194,102, 65,137, 81, 2, 65,185, -/* 0x1a80 */ 8, 0, 0, 0, 68,137,203,189, 1, 0, 0, 0, 72, 99,197, 65, -/* 0x1a90 */ 129,251,255,255,255, 0, 73,141, 52, 64,119, 26, 76, 57,231, 15, -/* 0x1aa0 */ 132,135, 2, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, -/* 0x1ab0 */ 72,255,199, 65, 9,194, 15,183, 14, 68,137,216,193,232, 11, 15, -/* 0x1ac0 */ 183,209, 15,175,194, 65, 57,194,115, 23, 65,137,195,184, 0, 8, -/* 0x1ad0 */ 0, 0, 1,237, 41,208,193,248, 5,141, 4, 1,102,137, 6,235, -/* 0x1ae0 */ 22, 65, 41,195, 65, 41,194,137,200,102,193,232, 5,141,108, 45, -/* 0x1af0 */ 1,102, 41,193,102,137, 14,255,203,117,145,184, 1, 0, 0, 0, -/* 0x1b00 */ 68,137,201,211,224, 41,197, 68, 1,237,131,124, 36,200, 3, 15, -/* 0x1b10 */ 143,194, 1, 0, 0,131, 68, 36,200, 7,184, 3, 0, 0, 0,131, -/* 0x1b20 */ 253, 4, 15, 76,197, 72,139, 92, 36,216, 65,184, 1, 0, 0, 0, -/* 0x1b30 */ 72,152, 72,193,224, 7, 76,141,140, 3, 96, 3, 0, 0,187, 6, -/* 0x1b40 */ 0, 0, 0, 73, 99,192, 65,129,251,255,255,255, 0, 73,141, 52, -/* 0x1b50 */ 65,119, 26, 76, 57,231, 15,132,208, 1, 0, 0, 15,182, 7, 65, -/* 0x1b60 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, 22, -/* 0x1b70 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, -/* 0x1b80 */ 24, 65,137,195,184, 0, 8, 0, 0, 69, 1,192, 41,200,193,248, -/* 0x1b90 */ 5,141, 4, 2,102,137, 6,235, 23, 65, 41,195, 65, 41,194,137, -/* 0x1ba0 */ 208,102,193,232, 5, 71,141, 68, 0, 1,102, 41,194,102,137, 22, -/* 0x1bb0 */ 255,203,117,143, 65,131,232, 64, 65,131,248, 3, 69,137,198, 15, -/* 0x1bc0 */ 142, 13, 1, 0, 0, 65,131,230, 1, 68,137,192,209,248, 65,131, -/* 0x1bd0 */ 206, 2, 65,131,248, 13,141,112,255,127, 35,137,241, 72,139, 92, -/* 0x1be0 */ 36,216, 73, 99,192, 65,211,230, 72, 1,192, 68,137,242, 72,141, -/* 0x1bf0 */ 20, 83, 72, 41,194, 76,141,138, 94, 5, 0, 0,235, 81,141,112, -/* 0x1c00 */ 251, 65,129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132, 25, -/* 0x1c10 */ 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, -/* 0x1c20 */ 199, 65, 9,194, 65,209,235, 69, 1,246, 69, 57,218,114, 7, 69, -/* 0x1c30 */ 41,218, 65,131,206, 1,255,206,117,199, 76,139, 76, 36,216, 65, -/* 0x1c40 */ 193,230, 4,190, 4, 0, 0, 0, 73,129,193, 68, 6, 0, 0, 65, -/* 0x1c50 */ 189, 1, 0, 0, 0,187, 1, 0, 0, 0, 72, 99,195, 65,129,251, -/* 0x1c60 */ 255,255,255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132,185, -/* 0x1c70 */ 0, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, -/* 0x1c80 */ 199, 65, 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183, -/* 0x1c90 */ 202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, -/* 0x1ca0 */ 0, 1,219, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235, -/* 0x1cb0 */ 26, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141, 92, 27, -/* 0x1cc0 */ 1, 69, 9,238,102, 41,194,102, 65,137, 16, 69, 1,237,255,206, -/* 0x1cd0 */ 117,136, 65,255,198,116, 64,131,197, 2, 69, 57,254,119, 77, 72, -/* 0x1ce0 */ 139, 84, 36,232, 68,137,248, 68, 41,240, 68, 15,182, 44, 2, 68, -/* 0x1cf0 */ 137,248, 65,255,199,255,205, 68,136, 44, 2, 15,149,194, 49,192, -/* 0x1d00 */ 68, 59,124, 36,228, 15,146,192,133,194,117,211, 68, 59,124, 36, -/* 0x1d10 */ 228, 15,130, 69,247,255,255, 65,129,251,255,255,255, 0,119, 22, -/* 0x1d20 */ 76, 57,231,184, 1, 0, 0, 0,116, 35,235, 7,184, 1, 0, 0, -/* 0x1d30 */ 0,235, 26, 72,255,199,137,248, 43, 68, 36,248, 72,139, 76, 36, -/* 0x1d40 */ 240, 72,139, 92, 36, 56,137, 1, 68,137, 59, 49,192, 91, 93, 65, -/* 0x1d50 */ 92, 65, 93, 65, 94, 65, 95, 72,139,117,248, 72,139,125, 16,139, -/* 0x1d60 */ 75, 4, 72, 1,206,139, 19, 72, 1,215,201,235, 2, 87, 94, 0, -/* 0x1d70 */ 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, -/* 0x1d80 */ 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 97, 83, -/* 0x1d90 */ 79, 95, 77, 65, 73, 78, 0, 69, 88, 80, 95, 72, 69, 65, 68, 0, -/* 0x1da0 */ 69, 88, 80, 95, 84, 65, 73, 76, 0, 46,114,101,108, 97, 78, 82, -/* 0x1db0 */ 86, 50, 69, 0, 46,114,101,108, 97, 78, 82, 86, 50, 68, 0, 46, -/* 0x1dc0 */ 114,101,108, 97, 78, 82, 86, 50, 66, 0, 46,114,101,108, 97, 83, -/* 0x1dd0 */ 79, 95, 72, 69, 65, 68, 0,112,116,114, 95, 78, 69, 88, 84, 0, -/* 0x1de0 */ 83, 79, 95, 84, 65, 73, 76, 0, 46,114,101,108, 97, 76, 90, 77, -/* 0x1df0 */ 65, 95, 69, 76, 70, 48, 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x1e00 */ 49, 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 0, 76, 90, -/* 0x1e10 */ 77, 65, 95, 68, 69, 67, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e60 */ 32, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e70 */ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e80 */ 244, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1e90 */ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1ea0 */ 27, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1eb0 */ 0, 0, 0, 0, 0, 0, 0, 0,136, 38, 0, 0, 0, 0, 0, 0, -/* 0x1ec0 */ 32, 1, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, -/* 0x1ed0 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x1ee0 */ 40, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x1ef0 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 5, 0, 0, 0, 0, 0, 0, -/* 0x1f00 */ 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f10 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f20 */ 49, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f30 */ 0, 0, 0, 0, 0, 0, 0, 0, 9, 6, 0, 0, 0, 0, 0, 0, -/* 0x1f40 */ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f50 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f60 */ 63, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f70 */ 0, 0, 0, 0, 0, 0, 0, 0, 23, 6, 0, 0, 0, 0, 0, 0, -/* 0x1f80 */ 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1f90 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1fa0 */ 58, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1fb0 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 39, 0, 0, 0, 0, 0, 0, -/* 0x1fc0 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 5, 0, 0, 0, -/* 0x1fd0 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x1fe0 */ 74, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x1ff0 */ 0, 0, 0, 0, 0, 0, 0, 0,253, 6, 0, 0, 0, 0, 0, 0, -/* 0x2000 */ 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2010 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2020 */ 69, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2030 */ 0, 0, 0, 0, 0, 0, 0, 0,216, 39, 0, 0, 0, 0, 0, 0, -/* 0x2040 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 7, 0, 0, 0, -/* 0x2050 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x2060 */ 85, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x2070 */ 0, 0, 0, 0, 0, 0, 0, 0,213, 7, 0, 0, 0, 0, 0, 0, -/* 0x2080 */ 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0040 */ 72,131,236, 8, 72, 99,255,184, 0, 0, 0, 0,232, 0, 0, 0, +/* 0x0050 */ 0,191,127, 0, 0, 0,232, 0, 0, 0, 0, 72,131,236, 8, 76, +/* 0x0060 */ 139, 71, 8, 72, 57, 23,115, 10,191,127, 0, 0, 0,232, 0, 0, +/* 0x0070 */ 0, 0, 72,141, 74,255, 72,131,249,255,116, 21, 65, 15,182, 0, +/* 0x0080 */ 136, 6, 73,255,192, 72,255,198, 72,255,201, 72,131,249,255,117, +/* 0x0090 */ 235, 72, 1, 87, 8, 72, 41, 23, 72,131,196, 8,195, 85, 83, 72, +/* 0x00a0 */ 131,236, 40, 72,137,253, 72,137,243, 72,131, 62, 0, 15,132,235, +/* 0x00b0 */ 0, 0, 0,186, 12, 0, 0, 0, 72,141,116, 36, 16, 72,137,239, +/* 0x00c0 */ 232,150,255,255,255,131,124, 36, 16, 0,117, 46,129,124, 36, 20, +/* 0x00d0 */ 85, 80, 88, 33,116, 10,191, 2, 0, 0, 0,232, 96,255,255,255, +/* 0x00e0 */ 72,131,125, 0, 0, 15,132,179, 0, 0, 0,191, 3, 0, 0, 0, +/* 0x00f0 */ 232, 75,255,255,255,233,164, 0, 0, 0,131,124, 36, 20, 0,144, +/* 0x0100 */ 117, 10,191, 4, 0, 0, 0,232, 52,255,255,255,139, 68, 36, 20, +/* 0x0110 */ 59, 68, 36, 16,119, 9,139, 68, 36, 16, 72, 59, 3,118, 10,191, +/* 0x0120 */ 5, 0, 0, 0,232, 23,255,255,255,139, 68, 36, 20, 59, 68, 36, +/* 0x0130 */ 16,115, 70,139, 68, 36, 16, 72,137, 68, 36, 8, 72,139,115, 8, +/* 0x0140 */ 72,139,125, 8, 72,131,239, 12, 72,141, 84, 36, 8,232, 0, 0, +/* 0x0150 */ 0, 0,133,192,117, 11,139, 68, 36, 16, 72, 59, 68, 36, 8,116, +/* 0x0160 */ 10,191, 7, 0, 0, 0,232,213,254,255,255,139, 68, 36, 20, 72, +/* 0x0170 */ 1, 69, 8, 72, 41, 69, 0,235, 16,139, 84, 36, 20, 72,139,115, +/* 0x0180 */ 8, 72,137,239,232,210,254,255,255,139, 68, 36, 16, 72, 1, 67, +/* 0x0190 */ 8, 72, 41, 3, 72,131, 59, 0, 15,133, 21,255,255,255, 72,131, +/* 0x01a0 */ 196, 40, 91, 93,195, 72,137, 92, 36,240, 72,137,108, 36,248, 72, +/* 0x01b0 */ 131,236, 24,137,209,189, 0, 0, 0, 0,187, 0, 0, 0, 0, 72, +/* 0x01c0 */ 184,255,255,255,255, 1, 0, 0, 0, 72, 35, 7, 72,186, 1, 0, +/* 0x01d0 */ 0, 0, 1, 0, 0, 0, 72, 57,208,117,122, 72,139, 71, 40, 72, +/* 0x01e0 */ 137,195, 72, 3, 95, 16, 72, 1,243, 72, 59, 71, 32,117, 11,137, +/* 0x01f0 */ 216,247,216, 33,200,131,248, 5,119, 50,189, 1, 0, 0, 0, 65, +/* 0x0200 */ 185, 0, 0, 0, 0, 65,184,255,255,255,255,185, 34, 0, 0, 0, +/* 0x0210 */ 186, 3, 0, 0, 0,190, 0, 16, 0, 0,191, 0, 0, 0, 0,232, +/* 0x0220 */ 0, 0, 0, 0, 72,137,195, 72,133,192,116, 36,199, 3, 15, 5, +/* 0x0230 */ 95, 94,102,199, 67, 4, 90,195,133,237,116, 25,186, 5, 0, 0, +/* 0x0240 */ 0,190, 6, 0, 0, 0, 72,137,223,232, 0, 0, 0, 0,235, 5, +/* 0x0250 */ 187, 0, 0, 0, 0, 72,137,216, 72,139, 92, 36, 8, 72,139,108, +/* 0x0260 */ 36, 16, 72,131,196, 24,195, 72,137, 92, 36,224, 72,137,108, 36, +/* 0x0270 */ 232, 76,137,100, 36,240, 76,137,108, 36,248, 72,129,236,168, 2, +/* 0x0280 */ 0, 0,232, 16, 0, 0, 0, 47,112,114,111, 99, 47,115,101,108, +/* 0x0290 */ 102, 47, 97,117,120,118, 0, 94,185, 0, 0, 0, 0,186, 0, 0, +/* 0x02a0 */ 0, 0,191, 0, 0, 0, 0,232, 0, 0, 0, 0,137,195, 73,199, +/* 0x02b0 */ 197, 0,240,255,255, 72,137,229,186,128, 2, 0, 0, 72,137,230, +/* 0x02c0 */ 137,199,232, 0, 0, 0, 0, 72,131,224,240, 72, 1,197,137,223, +/* 0x02d0 */ 232, 0, 0, 0, 0, 72,137,224, 72, 57,236,115, 30, 72,131, 56, +/* 0x02e0 */ 6,117, 15, 72,139, 64, 8, 72,255,200, 73,137,197, 73,247,213, +/* 0x02f0 */ 235, 9, 72,131,192, 16, 72, 57,232,114,226, 76,137,232, 72,139, +/* 0x0300 */ 156, 36,136, 2, 0, 0, 72,139,172, 36,144, 2, 0, 0, 76,139, +/* 0x0310 */ 164, 36,152, 2, 0, 0, 76,139,172, 36,160, 2, 0, 0, 72,129, +/* 0x0320 */ 196,168, 2, 0, 0,195, 72,137, 92, 36,224, 76,137,100, 36,232, +/* 0x0330 */ 76,137,108, 36,240, 76,137,116, 36,248, 72,129,236, 40, 16, 0, +/* 0x0340 */ 0, 65,137,253, 73,137,244,137,211, 72,137,218, 72,137,231,232, +/* 0x0350 */ 0, 0, 0, 0, 68,137,238, 65,185, 0, 0, 0, 0, 65,184,255, +/* 0x0360 */ 255,255,255,185, 50, 0, 0, 0,186, 3, 0, 0, 0, 76,137,231, +/* 0x0370 */ 232, 0, 0, 0, 0, 72,137,218, 72,137,230, 76,137,231,232, 0, +/* 0x0380 */ 0, 0, 0, 72,139,156, 36, 8, 16, 0, 0, 76,139,164, 36, 16, +/* 0x0390 */ 16, 0, 0, 76,139,172, 36, 24, 16, 0, 0, 76,139,180, 36, 32, +/* 0x03a0 */ 16, 0, 0, 72,129,196, 40, 16, 0, 0,195, 65, 87, 65, 86, 65, +/* 0x03b0 */ 85, 65, 84, 85, 83, 72,129,236,136, 0, 0, 0, 72,137,251, 72, +/* 0x03c0 */ 137,116, 36, 72,232,158,254,255,255, 72,137, 68, 36, 64,139, 3, +/* 0x03d0 */ 72,137,221, 72, 41,197,139, 67, 8,137, 68, 36, 60, 65,137,197, +/* 0x03e0 */ 68,139, 99, 12, 73, 1,236,137,217, 68, 41,225,137, 76, 36, 56, +/* 0x03f0 */ 139, 91, 4, 72,137, 92, 36, 48, 72, 1,108, 36, 48,137,203, 65, +/* 0x0400 */ 185, 0, 0, 0, 0, 65,184,255,255,255,255,185, 34, 0, 0, 0, +/* 0x0410 */ 186, 3, 0, 0, 0, 72,137,222,191, 0, 0, 0, 0,232, 0, 0, +/* 0x0420 */ 0, 0, 73,137,199, 72,137,218, 76,137,230, 72,137,199,232, 0, +/* 0x0430 */ 0, 0, 0, 73,141, 95, 24, 65,139, 71, 24, 72,137, 68, 36, 96, +/* 0x0440 */ 72,137,108, 36,104, 72,137, 68, 36,112, 72,137,108, 36,120, 65, +/* 0x0450 */ 139,119, 24,186, 3, 0, 0, 0, 72,137,239,232, 0, 0, 0, 0, +/* 0x0460 */ 139, 67, 4, 72,131,192, 12, 72,137, 68, 36, 80, 72,137, 92, 36, +/* 0x0470 */ 88, 72,137, 68, 36, 96, 72,137, 92, 36,104, 72,141,116, 36,112, +/* 0x0480 */ 72,141,124, 36, 96,232, 19,252,255,255, 68, 15,183,101, 56, 72, +/* 0x0490 */ 141, 93, 64, 65,190, 0, 0, 0, 0, 69,133,228,116, 21,131, 59, +/* 0x04a0 */ 1, 15,148,192, 15,182,192, 65, 1,198, 72,131,195, 56, 65,255, +/* 0x04b0 */ 204,117,235, 65,131,254, 2,184, 0, 0, 0, 0, 76, 15, 70,232, +/* 0x04c0 */ 72,137, 68, 36, 40,199, 68, 36, 36, 0, 0, 0, 0, 68, 15,183, +/* 0x04d0 */ 101, 56, 72,141, 93, 64, 69,133,228, 15,132, 81, 1, 0, 0,139, +/* 0x04e0 */ 68, 36, 60, 72,137, 68, 36, 8, 72,141, 76, 36, 96, 72,137, 76, +/* 0x04f0 */ 36, 24,232, 9, 0, 0, 0, 64, 4, 2, 6, 1, 5, 3, 7, 0, +/* 0x0500 */ 88, 72,137, 68, 36, 16,131, 59, 1, 15,133, 20, 1, 0, 0,246, +/* 0x0510 */ 67, 4, 2, 15,133, 10, 1, 0, 0,255, 68, 36, 36,131,124, 36, +/* 0x0520 */ 36, 1,117, 10, 65,131,254, 2, 15,135,245, 0, 0, 0, 72,139, +/* 0x0530 */ 68, 36, 8, 72, 59, 67, 8,114, 7, 73,137,197, 76, 43,107, 8, +/* 0x0540 */ 72,199, 68, 36, 96, 12, 0, 0, 0,186, 12, 0, 0, 0, 72,141, +/* 0x0550 */ 116, 36, 80, 72,139,124, 36, 24,232,254,250,255,255, 72,131,108, +/* 0x0560 */ 36,104, 12, 76,137,238, 72, 3,115, 16, 72, 1,238, 72,137,116, +/* 0x0570 */ 36,120, 72,139,123, 40, 76, 41,239, 72,137,124, 36,112, 76,137, +/* 0x0580 */ 234, 72, 3, 83, 16, 72,139, 68, 36, 64, 72,247,208, 73,137,213, +/* 0x0590 */ 73, 33,197, 76, 41,238, 72,137,116, 36,120, 73,141,124, 61, 0, +/* 0x05a0 */ 72,137,124, 36,112, 68,137,234,232,121,253,255,255, 76, 1,108, +/* 0x05b0 */ 36,120,139, 76, 36, 80, 72,137, 76, 36,112,139, 68, 36, 84, 72, +/* 0x05c0 */ 131,192, 12, 72,137, 68, 36, 96, 72,141,116, 36,112, 72,139,124, +/* 0x05d0 */ 36, 24,232,198,250,255,255, 65,189, 0, 0, 0, 0, 72,131,124, +/* 0x05e0 */ 36, 40, 0,117, 28,246, 67, 4, 1,116, 22,139, 84, 36, 64,247, +/* 0x05f0 */ 210, 72,137,238, 72,137,223,232,169,251,255,255, 72,137, 68, 36, +/* 0x0600 */ 40,139, 67, 4,131,224, 7, 72,139, 76, 36, 16, 15,190, 20, 1, +/* 0x0610 */ 131,226, 7, 72,139,115, 40, 72,137,239, 72, 3,123, 16,232, 0, +/* 0x0620 */ 0, 0, 0, 72,131,195, 56, 65,255,204, 15,133,214,254,255,255, +/* 0x0630 */ 139,116, 36, 56, 76,137,255,232, 0, 0, 0, 0, 72,139, 68, 36, +/* 0x0640 */ 72, 72,139, 80, 16, 72,139,112, 8, 72,139, 56,255, 84, 36, 48, +/* 0x0650 */ 72,139, 68, 36, 40, 72,129,196,136, 0, 0, 0, 91, 93, 65, 92, +/* 0x0660 */ 65, 93, 65, 94, 65, 95,195, 85, 72,137,229, 83, 15,182, 71, 9, +/* 0x0670 */ 133,192,116, 97, 15,182, 79, 10, 80, 81,255, 50, 86,232, 83, 0, +/* 0x0680 */ 0, 0, 95, 94, 90, 89, 80,131,249, 73,117, 68, 83, 87, 72,141, +/* 0x0690 */ 76, 55,253, 94, 86, 91,235, 47, 72, 57,206,115, 50, 86, 94,172, +/* 0x06a0 */ 60,128,114, 10, 60,143,119, 6,128,126,254, 15,116, 6, 44,232, +/* 0x06b0 */ 60, 1,119,228, 72, 57,206,115, 22, 86,173, 40,208,117,223, 95, +/* 0x06c0 */ 15,200, 41,248, 1,216,171, 72, 57,206,115, 3,172,235,223, 91, +/* 0x06d0 */ 195, 88, 91, 93,195, 82, 15,182, 87, 8, 87, 86, 95, 94,139, 70, +/* 0x06e0 */ 4, 72,131,198, 12, 72, 1,240, 80, 87, 49,219, 49,201, 72,131, +/* 0x06f0 */ 205,255,235, 78,139, 30, 72,131,238,252, 17,219,138, 22,243,195, +/* 0x0700 */ 1,219,116,240,243,195, 72,141, 4, 47,131,249, 5,138, 16,118, +/* 0x0710 */ 32,131,253,252,119, 27,131,233, 4,139, 16, 72,131,192, 4,131, +/* 0x0720 */ 233, 4,137, 23, 72,141,127, 4,115,239,131,193, 4,138, 16,116, +/* 0x0730 */ 15, 72,255,192,136, 23,255,201,138, 16, 72,141,127, 1,117,241, +/* 0x0740 */ 243,195,252,128,250, 8, 15,133,218, 0, 0, 0,235, 8, 72,255, +/* 0x0750 */ 198,136, 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131, +/* 0x0760 */ 238,252, 17,219,138, 22,114,230,141, 65, 1,235, 18,255,200, 1, +/* 0x0770 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1, +/* 0x0780 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1, +/* 0x0790 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,206,131, +/* 0x07a0 */ 232, 3,114, 29,193,224, 8, 15,182,210, 9,208, 72,255,198,131, +/* 0x07b0 */ 240,255, 15,132, 0, 0, 0, 0,209,248, 72, 99,232,114, 67,235, +/* 0x07c0 */ 14, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,114, 51,255, +/* 0x07d0 */ 193, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,114, 35, 1, +/* 0x07e0 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1, +/* 0x07f0 */ 219,117, 8,139, 30, 72,131,238,252, 17,219,115,226,131,193, 2, +/* 0x0800 */ 235, 16, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, +/* 0x0810 */ 17,201, 72,129,253, 0,251,255,255,131,209, 2,232, 0, 0, 0, +/* 0x0820 */ 0,233, 48,255,255,255, 87, 94,128,250, 5, 15,133,204, 0, 0, +/* 0x0830 */ 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117, +/* 0x0840 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1, +/* 0x0850 */ 235, 18,255,200, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, +/* 0x0860 */ 138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, +/* 0x0870 */ 138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, +/* 0x0880 */ 138, 22,115,206,131,232, 3,114, 27,193,224, 8, 15,182,210, 9, +/* 0x0890 */ 208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0,209,248, 72, +/* 0x08a0 */ 99,232,235, 14, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, +/* 0x08b0 */ 138, 22, 17,201, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, +/* 0x08c0 */ 138, 22, 17,201,117, 35,255,193, 1,219,117, 10,139, 30, 72,131, +/* 0x08d0 */ 238,252, 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72,131, +/* 0x08e0 */ 238,252, 17,219,115,226,131,193, 2, 72,129,253, 0,251,255,255, +/* 0x08f0 */ 131,209, 1,232, 0, 0, 0, 0,233, 62,255,255,255, 87, 94,128, +/* 0x0900 */ 250, 2, 15,133,182, 0, 0, 0,235, 8, 72,255,198,136, 23, 72, +/* 0x0910 */ 255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219, +/* 0x0920 */ 138, 22,114,230,141, 65, 1, 1,219,117, 10,139, 30, 72,131,238, +/* 0x0930 */ 252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238, +/* 0x0940 */ 252, 17,219,138, 22,115,224,131,232, 3,114, 23,193,224, 8, 15, +/* 0x0950 */ 182,210, 9,208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0, +/* 0x0960 */ 72, 99,232,141, 65, 1, 1,219,117, 10,139, 30, 72,131,238,252, +/* 0x0970 */ 17,219,138, 22, 17,201, 1,219,117, 10,139, 30, 72,131,238,252, +/* 0x0980 */ 17,219,138, 22, 17,201,117, 35,137,193,131,192, 2, 1,219,117, +/* 0x0990 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219,117, +/* 0x09a0 */ 8,139, 30, 72,131,238,252, 17,219,115,226, 72,129,253, 0,243, +/* 0x09b0 */ 255,255, 17,193,232, 0, 0, 0, 0,233, 84,255,255,255, 87, 94, +/* 0x09c0 */ 91, 93, 95, 72,141,116, 36, 16,232, 0, 0, 0, 0, 85, 94, 83, +/* 0x09d0 */ 95, 91, 93, 80,104, 11, 0, 0, 0, 88,195, 89, 72,137,240, 72, +/* 0x09e0 */ 41,200, 90, 72, 41,215, 89,137, 57, 91, 93,195,204,195, 87,137, +/* 0x09f0 */ 240,137,209,243,170, 88,195, 87,137,208,131,224, 7, 72,137,209, +/* 0x0a00 */ 72,193,233, 3,243, 72,165,145,243,164, 88,195,106, 9, 73,137, +/* 0x0a10 */ 202, 88, 15, 5, 72, 61, 0,240,255,255,114, 1,204,195,106, 60, +/* 0x0a20 */ 235, 2,106, 3,235, 5,104, 1, 1, 0, 0,235, 2,106, 1,235, +/* 0x0a30 */ 2,106, 0,235, 2,106, 11,235, 2,106, 10,235,212, 65,128,248, +/* 0x0a40 */ 14, 15,133, 0, 0, 0, 0, 85, 72,137,229, 68,139, 9, 73,137, +/* 0x0a50 */ 208, 72,137,242, 72,141,119, 2, 86,138, 7,255,202,136,193, 36, +/* 0x0a60 */ 7,192,233, 3, 72,199,195, 0,253,255,255, 72,211,227,136,193, +/* 0x0a70 */ 72,141,156, 92,136,241,255,255, 72,131,227,192,106, 0, 72, 57, +/* 0x0a80 */ 220,117,249, 83, 72,141,123, 8,138, 78,255,255,202,136, 71, 2, +/* 0x0a90 */ 136,200,192,233, 4,136, 79, 1, 36, 15,136, 7, 72,141, 79,252, +/* 0x0aa0 */ 80, 65, 87, 72,141, 71, 4, 69, 49,255, 65, 86, 65,190, 1, 0, +/* 0x0ab0 */ 0, 0, 65, 85, 69, 49,237, 65, 84, 85, 83, 72,137, 76, 36,240, +/* 0x0ac0 */ 72,137, 68, 36,216,184, 1, 0, 0, 0, 72,137,116, 36,248, 76, +/* 0x0ad0 */ 137, 68, 36,232,137,195, 68,137, 76, 36,228, 15,182, 79, 2,211, +/* 0x0ae0 */ 227,137,217, 72,139, 92, 36, 56,255,201,137, 76, 36,212, 15,182, +/* 0x0af0 */ 79, 1,211,224, 72,139, 76, 36,240,255,200,137, 68, 36,208, 15, +/* 0x0b00 */ 182, 7,199, 1, 0, 0, 0, 0,199, 68, 36,200, 0, 0, 0, 0, +/* 0x0b10 */ 199, 68, 36,196, 1, 0, 0, 0,199, 68, 36,192, 1, 0, 0, 0, +/* 0x0b20 */ 199, 68, 36,188, 1, 0, 0, 0,199, 3, 0, 0, 0, 0,137, 68, +/* 0x0b30 */ 36,204, 15,182, 79, 1, 1,193,184, 0, 3, 0, 0,211,224, 49, +/* 0x0b40 */ 201,141,184, 54, 7, 0, 0, 65, 57,255,115, 19, 72,139, 92, 36, +/* 0x0b50 */ 216,137,200,255,193, 57,249,102,199, 4, 67, 0, 4,235,235, 72, +/* 0x0b60 */ 139,124, 36,248,137,208, 69, 49,210, 65,131,203,255, 49,210, 73, +/* 0x0b70 */ 137,252, 73, 1,196, 76, 57,231, 15,132,239, 8, 0, 0, 15,182, +/* 0x0b80 */ 7, 65,193,226, 8,255,194, 72,255,199, 65, 9,194,131,250, 4, +/* 0x0b90 */ 126,227, 68, 59,124, 36,228, 15,131,218, 8, 0, 0,139, 68, 36, +/* 0x0ba0 */ 212, 72, 99, 92, 36,200, 72,139, 84, 36,216, 68, 33,248,137, 68, +/* 0x0bb0 */ 36,184, 72, 99,108, 36,184, 72,137,216, 72,193,224, 4, 72, 1, +/* 0x0bc0 */ 232, 65,129,251,255,255,255, 0, 76,141, 12, 66,119, 26, 76, 57, +/* 0x0bd0 */ 231, 15,132,150, 8, 0, 0, 15,182, 7, 65,193,226, 8, 65,193, +/* 0x0be0 */ 227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193, +/* 0x0bf0 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194, 15,131,197, 1, 0, +/* 0x0c00 */ 0, 65,137,195,184, 0, 8, 0, 0, 72,139, 92, 36,216, 41,200, +/* 0x0c10 */ 15,182, 76, 36,204,190, 1, 0, 0, 0,193,248, 5,141, 4, 2, +/* 0x0c20 */ 65, 15,182,213,102, 65,137, 1,139, 68, 36,208, 68, 33,248,211, +/* 0x0c30 */ 224,185, 8, 0, 0, 0, 43, 76, 36,204,211,250, 1,208,105,192, +/* 0x0c40 */ 0, 3, 0, 0,131,124, 36,200, 6,137,192, 76,141,140, 67,108, +/* 0x0c50 */ 14, 0, 0, 15,142,184, 0, 0, 0, 72,139, 84, 36,232, 68,137, +/* 0x0c60 */ 248, 68, 41,240, 15,182, 44, 2, 1,237, 72, 99,214,137,235,129, +/* 0x0c70 */ 227, 0, 1, 0, 0, 65,129,251,255,255,255, 0, 72, 99,195, 73, +/* 0x0c80 */ 141, 4, 65, 76,141, 4, 80,119, 26, 76, 57,231, 15,132,219, 7, +/* 0x0c90 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, +/* 0x0ca0 */ 65, 9,194, 65, 15,183,144, 0, 2, 0, 0, 68,137,216,193,232, +/* 0x0cb0 */ 11, 15,183,202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, +/* 0x0cc0 */ 0, 8, 0, 0, 1,246, 41,200,193,248, 5,133,219,141, 4, 2, +/* 0x0cd0 */ 102, 65,137,128, 0, 2, 0, 0,116, 33,235, 45, 65, 41,195, 65, +/* 0x0ce0 */ 41,194,137,208,102,193,232, 5,141,116, 54, 1,102, 41,194,133, +/* 0x0cf0 */ 219,102, 65,137,144, 0, 2, 0, 0,116, 14,129,254,255, 0, 0, +/* 0x0d00 */ 0, 15,142, 97,255,255,255,235,120,129,254,255, 0, 0, 0,127, +/* 0x0d10 */ 112, 72, 99,198, 65,129,251,255,255,255, 0, 77,141, 4, 65,119, +/* 0x0d20 */ 26, 76, 57,231, 15,132, 67, 7, 0, 0, 15,182, 7, 65,193,226, +/* 0x0d30 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68, +/* 0x0d40 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, +/* 0x0d50 */ 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,193,248, 5,141, +/* 0x0d60 */ 4, 2,102, 65,137, 0,235,161, 65, 41,195, 65, 41,194,137,208, +/* 0x0d70 */ 102,193,232, 5,141,116, 54, 1,102, 41,194,102, 65,137, 16,235, +/* 0x0d80 */ 136, 72,139, 76, 36,232, 68,137,248, 65,255,199, 65,137,245, 64, +/* 0x0d90 */ 136, 52, 1,131,124, 36,200, 3,127, 13,199, 68, 36,200, 0, 0, +/* 0x0da0 */ 0, 0,233,166, 6, 0, 0,139, 84, 36,200,139, 68, 36,200,131, +/* 0x0db0 */ 234, 3,131,232, 6,131,124, 36,200, 9, 15, 79,208,137, 84, 36, +/* 0x0dc0 */ 200,233,135, 6, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193, +/* 0x0dd0 */ 232, 5,102, 41,194, 72,139, 68, 36,216, 65,129,251,255,255,255, +/* 0x0de0 */ 0,102, 65,137, 17, 72,141, 52, 88,119, 26, 76, 57,231, 15,132, +/* 0x0df0 */ 121, 6, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x0e00 */ 255,199, 65, 9,194, 15,183,150,128, 1, 0, 0, 68,137,216,193, +/* 0x0e10 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 78, 65,137,195, +/* 0x0e20 */ 184, 0, 8, 0, 0, 76,139, 76, 36,216, 41,200,139, 76, 36,196, +/* 0x0e30 */ 68,137,116, 36,196,193,248, 5,141, 4, 2,139, 84, 36,192,137, +/* 0x0e40 */ 76, 36,192,102,137,134,128, 1, 0, 0, 49,192,131,124, 36,200, +/* 0x0e50 */ 6,137, 84, 36,188, 15,159,192, 73,129,193,100, 6, 0, 0,141, +/* 0x0e60 */ 4, 64,137, 68, 36,200,233, 84, 2, 0, 0, 65, 41,195, 65, 41, +/* 0x0e70 */ 194,137,208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, +/* 0x0e80 */ 0,102,137,150,128, 1, 0, 0,119, 26, 76, 57,231, 15,132,218, +/* 0x0e90 */ 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, +/* 0x0ea0 */ 199, 65, 9,194, 15,183,150,152, 1, 0, 0, 68,137,216,193,232, +/* 0x0eb0 */ 11, 15,183,202, 15,175,193, 65, 57,194, 15,131,208, 0, 0, 0, +/* 0x0ec0 */ 65,184, 0, 8, 0, 0, 65,137,195, 72,193,227, 5, 68,137,192, +/* 0x0ed0 */ 41,200,193,248, 5,141, 4, 2,102,137,134,152, 1, 0, 0, 72, +/* 0x0ee0 */ 139, 68, 36,216, 72, 1,216, 65,129,251,255,255,255, 0, 72,141, +/* 0x0ef0 */ 52,104,119, 26, 76, 57,231, 15,132,112, 5, 0, 0, 15,182, 7, +/* 0x0f00 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, +/* 0x0f10 */ 150,224, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175, +/* 0x0f20 */ 193, 65, 57,194,115, 79, 65, 41,200, 65,137,195, 65,193,248, 5, +/* 0x0f30 */ 69,133,255, 66,141, 4, 2,102,137,134,224, 1, 0, 0, 15,132, +/* 0x0f40 */ 41, 5, 0, 0, 49,192,131,124, 36,200, 6, 72,139, 92, 36,232, +/* 0x0f50 */ 15,159,192,141, 68, 0, 9,137, 68, 36,200, 68,137,248, 68, 41, +/* 0x0f60 */ 240, 68, 15,182, 44, 3, 68,137,248, 65,255,199, 68,136, 44, 3, +/* 0x0f70 */ 233,216, 4, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, +/* 0x0f80 */ 5,102, 41,194,102,137,150,224, 1, 0, 0,233, 17, 1, 0, 0, +/* 0x0f90 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65, +/* 0x0fa0 */ 129,251,255,255,255, 0,102,137,150,152, 1, 0, 0,119, 26, 76, +/* 0x0fb0 */ 57,231, 15,132,181, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65, +/* 0x0fc0 */ 193,227, 8, 72,255,199, 65, 9,194, 15,183,150,176, 1, 0, 0, +/* 0x0fd0 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, +/* 0x0fe0 */ 32, 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, +/* 0x0ff0 */ 2,102,137,134,176, 1, 0, 0,139, 68, 36,196,233,152, 0, 0, +/* 0x1000 */ 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, +/* 0x1010 */ 65,129,251,255,255,255, 0,102,137,150,176, 1, 0, 0,119, 26, +/* 0x1020 */ 76, 57,231, 15,132, 68, 4, 0, 0, 15,182, 7, 65,193,226, 8, +/* 0x1030 */ 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,200, 1, 0, +/* 0x1040 */ 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, +/* 0x1050 */ 115, 29, 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, +/* 0x1060 */ 4, 2,102,137,134,200, 1, 0, 0,139, 68, 36,192,235, 34, 65, +/* 0x1070 */ 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194,139, 68, +/* 0x1080 */ 36,188,102,137,150,200, 1, 0, 0,139, 84, 36,192,137, 84, 36, +/* 0x1090 */ 188,139, 76, 36,196,137, 76, 36,192, 68,137,116, 36,196, 65,137, +/* 0x10a0 */ 198, 49,192,131,124, 36,200, 6, 76,139, 76, 36,216, 15,159,192, +/* 0x10b0 */ 73,129,193,104, 10, 0, 0,141, 68, 64, 8,137, 68, 36,200, 65, +/* 0x10c0 */ 129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132,156, 3, 0, +/* 0x10d0 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, +/* 0x10e0 */ 9,194, 65, 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15, +/* 0x10f0 */ 175,193, 65, 57,194,115, 39, 65,137,195,184, 0, 8, 0, 0, 69, +/* 0x1100 */ 49,237, 41,200,193,248, 5,141, 4, 2,102, 65,137, 1, 72, 99, +/* 0x1110 */ 68, 36,184, 72,193,224, 4, 77,141, 68, 1, 4,235,120, 65, 41, +/* 0x1120 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,251, +/* 0x1130 */ 255,255,255, 0,102, 65,137, 17,119, 26, 76, 57,231, 15,132, 42, +/* 0x1140 */ 3, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, +/* 0x1150 */ 199, 65, 9,194, 65, 15,183, 81, 2, 68,137,216,193,232, 11, 15, +/* 0x1160 */ 183,202, 15,175,193, 65, 57,194,115, 52, 65,137,195,184, 0, 8, +/* 0x1170 */ 0, 0, 65,189, 8, 0, 0, 0, 41,200,193,248, 5,141, 4, 2, +/* 0x1180 */ 102, 65,137, 65, 2, 72, 99, 68, 36,184, 72,193,224, 4, 77,141, +/* 0x1190 */ 132, 1, 4, 1, 0, 0, 65,185, 3, 0, 0, 0,235, 39, 65, 41, +/* 0x11a0 */ 195, 65, 41,194,137,208,102,193,232, 5, 77,141,129, 4, 2, 0, +/* 0x11b0 */ 0, 65,189, 16, 0, 0, 0,102, 41,194,102, 65,137, 81, 2, 65, +/* 0x11c0 */ 185, 8, 0, 0, 0, 68,137,203,189, 1, 0, 0, 0, 72, 99,197, +/* 0x11d0 */ 65,129,251,255,255,255, 0, 73,141, 52, 64,119, 26, 76, 57,231, +/* 0x11e0 */ 15,132,135, 2, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, +/* 0x11f0 */ 8, 72,255,199, 65, 9,194, 15,183, 14, 68,137,216,193,232, 11, +/* 0x1200 */ 15,183,209, 15,175,194, 65, 57,194,115, 23, 65,137,195,184, 0, +/* 0x1210 */ 8, 0, 0, 1,237, 41,208,193,248, 5,141, 4, 1,102,137, 6, +/* 0x1220 */ 235, 22, 65, 41,195, 65, 41,194,137,200,102,193,232, 5,141,108, +/* 0x1230 */ 45, 1,102, 41,193,102,137, 14,255,203,117,145,184, 1, 0, 0, +/* 0x1240 */ 0, 68,137,201,211,224, 41,197, 68, 1,237,131,124, 36,200, 3, +/* 0x1250 */ 15,143,194, 1, 0, 0,131, 68, 36,200, 7,184, 3, 0, 0, 0, +/* 0x1260 */ 131,253, 4, 15, 76,197, 72,139, 92, 36,216, 65,184, 1, 0, 0, +/* 0x1270 */ 0, 72,152, 72,193,224, 7, 76,141,140, 3, 96, 3, 0, 0,187, +/* 0x1280 */ 6, 0, 0, 0, 73, 99,192, 65,129,251,255,255,255, 0, 73,141, +/* 0x1290 */ 52, 65,119, 26, 76, 57,231, 15,132,208, 1, 0, 0, 15,182, 7, +/* 0x12a0 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, +/* 0x12b0 */ 22, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, +/* 0x12c0 */ 115, 24, 65,137,195,184, 0, 8, 0, 0, 69, 1,192, 41,200,193, +/* 0x12d0 */ 248, 5,141, 4, 2,102,137, 6,235, 23, 65, 41,195, 65, 41,194, +/* 0x12e0 */ 137,208,102,193,232, 5, 71,141, 68, 0, 1,102, 41,194,102,137, +/* 0x12f0 */ 22,255,203,117,143, 65,131,232, 64, 65,131,248, 3, 69,137,198, +/* 0x1300 */ 15,142, 13, 1, 0, 0, 65,131,230, 1, 68,137,192,209,248, 65, +/* 0x1310 */ 131,206, 2, 65,131,248, 13,141,112,255,127, 35,137,241, 72,139, +/* 0x1320 */ 92, 36,216, 73, 99,192, 65,211,230, 72, 1,192, 68,137,242, 72, +/* 0x1330 */ 141, 20, 83, 72, 41,194, 76,141,138, 94, 5, 0, 0,235, 81,141, +/* 0x1340 */ 112,251, 65,129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132, +/* 0x1350 */ 25, 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x1360 */ 255,199, 65, 9,194, 65,209,235, 69, 1,246, 69, 57,218,114, 7, +/* 0x1370 */ 69, 41,218, 65,131,206, 1,255,206,117,199, 76,139, 76, 36,216, +/* 0x1380 */ 65,193,230, 4,190, 4, 0, 0, 0, 73,129,193, 68, 6, 0, 0, +/* 0x1390 */ 65,189, 1, 0, 0, 0,187, 1, 0, 0, 0, 72, 99,195, 65,129, +/* 0x13a0 */ 251,255,255,255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, +/* 0x13b0 */ 185, 0, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x13c0 */ 255,199, 65, 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15, +/* 0x13d0 */ 183,202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, +/* 0x13e0 */ 0, 0, 1,219, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0, +/* 0x13f0 */ 235, 26, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141, 92, +/* 0x1400 */ 27, 1, 69, 9,238,102, 41,194,102, 65,137, 16, 69, 1,237,255, +/* 0x1410 */ 206,117,136, 65,255,198,116, 64,131,197, 2, 69, 57,254,119, 77, +/* 0x1420 */ 72,139, 84, 36,232, 68,137,248, 68, 41,240, 68, 15,182, 44, 2, +/* 0x1430 */ 68,137,248, 65,255,199,255,205, 68,136, 44, 2, 15,149,194, 49, +/* 0x1440 */ 192, 68, 59,124, 36,228, 15,146,192,133,194,117,211, 68, 59,124, +/* 0x1450 */ 36,228, 15,130, 69,247,255,255, 65,129,251,255,255,255, 0,119, +/* 0x1460 */ 22, 76, 57,231,184, 1, 0, 0, 0,116, 35,235, 7,184, 1, 0, +/* 0x1470 */ 0, 0,235, 26, 72,255,199,137,248, 43, 68, 36,248, 72,139, 76, +/* 0x1480 */ 36,240, 72,139, 92, 36, 56,137, 1, 68,137, 59, 49,192, 91, 93, +/* 0x1490 */ 65, 92, 65, 93, 65, 94, 65, 95, 65, 87, 72,141, 71, 4, 69, 49, +/* 0x14a0 */ 255, 65, 86, 65,190, 1, 0, 0, 0, 65, 85, 69, 49,237, 65, 84, +/* 0x14b0 */ 85, 83, 72,137, 76, 36,240, 72,137, 68, 36,216,184, 1, 0, 0, +/* 0x14c0 */ 0, 72,137,116, 36,248, 76,137, 68, 36,232,137,195, 68,137, 76, +/* 0x14d0 */ 36,228, 15,182, 79, 2,211,227,137,217, 72,139, 92, 36, 56,255, +/* 0x14e0 */ 201,137, 76, 36,212, 15,182, 79, 1,211,224, 72,139, 76, 36,240, +/* 0x14f0 */ 255,200,137, 68, 36,208, 15,182, 7,199, 1, 0, 0, 0, 0,199, +/* 0x1500 */ 68, 36,200, 0, 0, 0, 0,199, 68, 36,196, 1, 0, 0, 0,199, +/* 0x1510 */ 68, 36,192, 1, 0, 0, 0,199, 68, 36,188, 1, 0, 0, 0,199, +/* 0x1520 */ 3, 0, 0, 0, 0,137, 68, 36,204, 15,182, 79, 1, 1,193,184, +/* 0x1530 */ 0, 3, 0, 0,211,224, 49,201,141,184, 54, 7, 0, 0, 65, 57, +/* 0x1540 */ 255,115, 19, 72,139, 92, 36,216,137,200,255,193, 57,249,102,199, +/* 0x1550 */ 4, 67, 0, 4,235,235, 72,139,124, 36,248,137,208, 69, 49,210, +/* 0x1560 */ 65,131,203,255, 49,210, 73,137,252, 73, 1,196, 76, 57,231, 15, +/* 0x1570 */ 132,239, 8, 0, 0, 15,182, 7, 65,193,226, 8,255,194, 72,255, +/* 0x1580 */ 199, 65, 9,194,131,250, 4,126,227, 68, 59,124, 36,228, 15,131, +/* 0x1590 */ 218, 8, 0, 0,139, 68, 36,212, 72, 99, 92, 36,200, 72,139, 84, +/* 0x15a0 */ 36,216, 68, 33,248,137, 68, 36,184, 72, 99,108, 36,184, 72,137, +/* 0x15b0 */ 216, 72,193,224, 4, 72, 1,232, 65,129,251,255,255,255, 0, 76, +/* 0x15c0 */ 141, 12, 66,119, 26, 76, 57,231, 15,132,150, 8, 0, 0, 15,182, +/* 0x15d0 */ 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, +/* 0x15e0 */ 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, +/* 0x15f0 */ 57,194, 15,131,197, 1, 0, 0, 65,137,195,184, 0, 8, 0, 0, +/* 0x1600 */ 72,139, 92, 36,216, 41,200, 15,182, 76, 36,204,190, 1, 0, 0, +/* 0x1610 */ 0,193,248, 5,141, 4, 2, 65, 15,182,213,102, 65,137, 1,139, +/* 0x1620 */ 68, 36,208, 68, 33,248,211,224,185, 8, 0, 0, 0, 43, 76, 36, +/* 0x1630 */ 204,211,250, 1,208,105,192, 0, 3, 0, 0,131,124, 36,200, 6, +/* 0x1640 */ 137,192, 76,141,140, 67,108, 14, 0, 0, 15,142,184, 0, 0, 0, +/* 0x1650 */ 72,139, 84, 36,232, 68,137,248, 68, 41,240, 15,182, 44, 2, 1, +/* 0x1660 */ 237, 72, 99,214,137,235,129,227, 0, 1, 0, 0, 65,129,251,255, +/* 0x1670 */ 255,255, 0, 72, 99,195, 73,141, 4, 65, 76,141, 4, 80,119, 26, +/* 0x1680 */ 76, 57,231, 15,132,219, 7, 0, 0, 15,182, 7, 65,193,226, 8, +/* 0x1690 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183,144, 0, 2, +/* 0x16a0 */ 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57, +/* 0x16b0 */ 194,115, 32, 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,193, +/* 0x16c0 */ 248, 5,133,219,141, 4, 2,102, 65,137,128, 0, 2, 0, 0,116, +/* 0x16d0 */ 33,235, 45, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141, +/* 0x16e0 */ 116, 54, 1,102, 41,194,133,219,102, 65,137,144, 0, 2, 0, 0, +/* 0x16f0 */ 116, 14,129,254,255, 0, 0, 0, 15,142, 97,255,255,255,235,120, +/* 0x1700 */ 129,254,255, 0, 0, 0,127,112, 72, 99,198, 65,129,251,255,255, +/* 0x1710 */ 255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, 67, 7, 0, +/* 0x1720 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, +/* 0x1730 */ 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,202, 15, +/* 0x1740 */ 175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, 1, +/* 0x1750 */ 246, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235,161, 65, +/* 0x1760 */ 41,195, 65, 41,194,137,208,102,193,232, 5,141,116, 54, 1,102, +/* 0x1770 */ 41,194,102, 65,137, 16,235,136, 72,139, 76, 36,232, 68,137,248, +/* 0x1780 */ 65,255,199, 65,137,245, 64,136, 52, 1,131,124, 36,200, 3,127, +/* 0x1790 */ 13,199, 68, 36,200, 0, 0, 0, 0,233,166, 6, 0, 0,139, 84, +/* 0x17a0 */ 36,200,139, 68, 36,200,131,234, 3,131,232, 6,131,124, 36,200, +/* 0x17b0 */ 9, 15, 79,208,137, 84, 36,200,233,135, 6, 0, 0, 65, 41,195, +/* 0x17c0 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194, 72,139, 68, 36, +/* 0x17d0 */ 216, 65,129,251,255,255,255, 0,102, 65,137, 17, 72,141, 52, 88, +/* 0x17e0 */ 119, 26, 76, 57,231, 15,132,121, 6, 0, 0, 15,182, 7, 65,193, +/* 0x17f0 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,128, +/* 0x1800 */ 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, +/* 0x1810 */ 57,194,115, 78, 65,137,195,184, 0, 8, 0, 0, 76,139, 76, 36, +/* 0x1820 */ 216, 41,200,139, 76, 36,196, 68,137,116, 36,196,193,248, 5,141, +/* 0x1830 */ 4, 2,139, 84, 36,192,137, 76, 36,192,102,137,134,128, 1, 0, +/* 0x1840 */ 0, 49,192,131,124, 36,200, 6,137, 84, 36,188, 15,159,192, 73, +/* 0x1850 */ 129,193,100, 6, 0, 0,141, 4, 64,137, 68, 36,200,233, 84, 2, +/* 0x1860 */ 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41, +/* 0x1870 */ 194, 65,129,251,255,255,255, 0,102,137,150,128, 1, 0, 0,119, +/* 0x1880 */ 26, 76, 57,231, 15,132,218, 5, 0, 0, 15,182, 7, 65,193,226, +/* 0x1890 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,152, 1, +/* 0x18a0 */ 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57, +/* 0x18b0 */ 194, 15,131,208, 0, 0, 0, 65,184, 0, 8, 0, 0, 65,137,195, +/* 0x18c0 */ 72,193,227, 5, 68,137,192, 41,200,193,248, 5,141, 4, 2,102, +/* 0x18d0 */ 137,134,152, 1, 0, 0, 72,139, 68, 36,216, 72, 1,216, 65,129, +/* 0x18e0 */ 251,255,255,255, 0, 72,141, 52,104,119, 26, 76, 57,231, 15,132, +/* 0x18f0 */ 112, 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x1900 */ 255,199, 65, 9,194, 15,183,150,224, 1, 0, 0, 68,137,216,193, +/* 0x1910 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 79, 65, 41,200, +/* 0x1920 */ 65,137,195, 65,193,248, 5, 69,133,255, 66,141, 4, 2,102,137, +/* 0x1930 */ 134,224, 1, 0, 0, 15,132, 41, 5, 0, 0, 49,192,131,124, 36, +/* 0x1940 */ 200, 6, 72,139, 92, 36,232, 15,159,192,141, 68, 0, 9,137, 68, +/* 0x1950 */ 36,200, 68,137,248, 68, 41,240, 68, 15,182, 44, 3, 68,137,248, +/* 0x1960 */ 65,255,199, 68,136, 44, 3,233,216, 4, 0, 0, 65, 41,195, 65, +/* 0x1970 */ 41,194,137,208,102,193,232, 5,102, 41,194,102,137,150,224, 1, +/* 0x1980 */ 0, 0,233, 17, 1, 0, 0, 65, 41,195, 65, 41,194,137,208,102, +/* 0x1990 */ 193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137,150, +/* 0x19a0 */ 152, 1, 0, 0,119, 26, 76, 57,231, 15,132,181, 4, 0, 0, 15, +/* 0x19b0 */ 182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, +/* 0x19c0 */ 15,183,150,176, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, +/* 0x19d0 */ 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0, 0, +/* 0x19e0 */ 41,200,193,248, 5,141, 4, 2,102,137,134,176, 1, 0, 0,139, +/* 0x19f0 */ 68, 36,196,233,152, 0, 0, 0, 65, 41,195, 65, 41,194,137,208, +/* 0x1a00 */ 102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137, +/* 0x1a10 */ 150,176, 1, 0, 0,119, 26, 76, 57,231, 15,132, 68, 4, 0, 0, +/* 0x1a20 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9, +/* 0x1a30 */ 194, 15,183,150,200, 1, 0, 0, 68,137,216,193,232, 11, 15,183, +/* 0x1a40 */ 202, 15,175,193, 65, 57,194,115, 29, 65,137,195,184, 0, 8, 0, +/* 0x1a50 */ 0, 41,200,193,248, 5,141, 4, 2,102,137,134,200, 1, 0, 0, +/* 0x1a60 */ 139, 68, 36,192,235, 34, 65, 41,195, 65, 41,194,137,208,102,193, +/* 0x1a70 */ 232, 5,102, 41,194,139, 68, 36,188,102,137,150,200, 1, 0, 0, +/* 0x1a80 */ 139, 84, 36,192,137, 84, 36,188,139, 76, 36,196,137, 76, 36,192, +/* 0x1a90 */ 68,137,116, 36,196, 65,137,198, 49,192,131,124, 36,200, 6, 76, +/* 0x1aa0 */ 139, 76, 36,216, 15,159,192, 73,129,193,104, 10, 0, 0,141, 68, +/* 0x1ab0 */ 64, 8,137, 68, 36,200, 65,129,251,255,255,255, 0,119, 26, 76, +/* 0x1ac0 */ 57,231, 15,132,156, 3, 0, 0, 15,182, 7, 65,193,226, 8, 65, +/* 0x1ad0 */ 193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216, +/* 0x1ae0 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 39, 65,137, +/* 0x1af0 */ 195,184, 0, 8, 0, 0, 69, 49,237, 41,200,193,248, 5,141, 4, +/* 0x1b00 */ 2,102, 65,137, 1, 72, 99, 68, 36,184, 72,193,224, 4, 77,141, +/* 0x1b10 */ 68, 1, 4,235,120, 65, 41,195, 65, 41,194,137,208,102,193,232, +/* 0x1b20 */ 5,102, 41,194, 65,129,251,255,255,255, 0,102, 65,137, 17,119, +/* 0x1b30 */ 26, 76, 57,231, 15,132, 42, 3, 0, 0, 15,182, 7, 65,193,226, +/* 0x1b40 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 81, 2, +/* 0x1b50 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, +/* 0x1b60 */ 52, 65,137,195,184, 0, 8, 0, 0, 65,189, 8, 0, 0, 0, 41, +/* 0x1b70 */ 200,193,248, 5,141, 4, 2,102, 65,137, 65, 2, 72, 99, 68, 36, +/* 0x1b80 */ 184, 72,193,224, 4, 77,141,132, 1, 4, 1, 0, 0, 65,185, 3, +/* 0x1b90 */ 0, 0, 0,235, 39, 65, 41,195, 65, 41,194,137,208,102,193,232, +/* 0x1ba0 */ 5, 77,141,129, 4, 2, 0, 0, 65,189, 16, 0, 0, 0,102, 41, +/* 0x1bb0 */ 194,102, 65,137, 81, 2, 65,185, 8, 0, 0, 0, 68,137,203,189, +/* 0x1bc0 */ 1, 0, 0, 0, 72, 99,197, 65,129,251,255,255,255, 0, 73,141, +/* 0x1bd0 */ 52, 64,119, 26, 76, 57,231, 15,132,135, 2, 0, 0, 15,182, 7, +/* 0x1be0 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, +/* 0x1bf0 */ 14, 68,137,216,193,232, 11, 15,183,209, 15,175,194, 65, 57,194, +/* 0x1c00 */ 115, 23, 65,137,195,184, 0, 8, 0, 0, 1,237, 41,208,193,248, +/* 0x1c10 */ 5,141, 4, 1,102,137, 6,235, 22, 65, 41,195, 65, 41,194,137, +/* 0x1c20 */ 200,102,193,232, 5,141,108, 45, 1,102, 41,193,102,137, 14,255, +/* 0x1c30 */ 203,117,145,184, 1, 0, 0, 0, 68,137,201,211,224, 41,197, 68, +/* 0x1c40 */ 1,237,131,124, 36,200, 3, 15,143,194, 1, 0, 0,131, 68, 36, +/* 0x1c50 */ 200, 7,184, 3, 0, 0, 0,131,253, 4, 15, 76,197, 72,139, 92, +/* 0x1c60 */ 36,216, 65,184, 1, 0, 0, 0, 72,152, 72,193,224, 7, 76,141, +/* 0x1c70 */ 140, 3, 96, 3, 0, 0,187, 6, 0, 0, 0, 73, 99,192, 65,129, +/* 0x1c80 */ 251,255,255,255, 0, 73,141, 52, 65,119, 26, 76, 57,231, 15,132, +/* 0x1c90 */ 208, 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x1ca0 */ 255,199, 65, 9,194, 15,183, 22, 68,137,216,193,232, 11, 15,183, +/* 0x1cb0 */ 202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, +/* 0x1cc0 */ 0, 69, 1,192, 41,200,193,248, 5,141, 4, 2,102,137, 6,235, +/* 0x1cd0 */ 23, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, 71,141, 68, +/* 0x1ce0 */ 0, 1,102, 41,194,102,137, 22,255,203,117,143, 65,131,232, 64, +/* 0x1cf0 */ 65,131,248, 3, 69,137,198, 15,142, 13, 1, 0, 0, 65,131,230, +/* 0x1d00 */ 1, 68,137,192,209,248, 65,131,206, 2, 65,131,248, 13,141,112, +/* 0x1d10 */ 255,127, 35,137,241, 72,139, 92, 36,216, 73, 99,192, 65,211,230, +/* 0x1d20 */ 72, 1,192, 68,137,242, 72,141, 20, 83, 72, 41,194, 76,141,138, +/* 0x1d30 */ 94, 5, 0, 0,235, 81,141,112,251, 65,129,251,255,255,255, 0, +/* 0x1d40 */ 119, 26, 76, 57,231, 15,132, 25, 1, 0, 0, 15,182, 7, 65,193, +/* 0x1d50 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65,209,235, 69, +/* 0x1d60 */ 1,246, 69, 57,218,114, 7, 69, 41,218, 65,131,206, 1,255,206, +/* 0x1d70 */ 117,199, 76,139, 76, 36,216, 65,193,230, 4,190, 4, 0, 0, 0, +/* 0x1d80 */ 73,129,193, 68, 6, 0, 0, 65,189, 1, 0, 0, 0,187, 1, 0, +/* 0x1d90 */ 0, 0, 72, 99,195, 65,129,251,255,255,255, 0, 77,141, 4, 65, +/* 0x1da0 */ 119, 26, 76, 57,231, 15,132,185, 0, 0, 0, 15,182, 7, 65,193, +/* 0x1db0 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, +/* 0x1dc0 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, +/* 0x1dd0 */ 24, 65,137,195,184, 0, 8, 0, 0, 1,219, 41,200,193,248, 5, +/* 0x1de0 */ 141, 4, 2,102, 65,137, 0,235, 26, 65, 41,195, 65, 41,194,137, +/* 0x1df0 */ 208,102,193,232, 5,141, 92, 27, 1, 69, 9,238,102, 41,194,102, +/* 0x1e00 */ 65,137, 16, 69, 1,237,255,206,117,136, 65,255,198,116, 64,131, +/* 0x1e10 */ 197, 2, 69, 57,254,119, 77, 72,139, 84, 36,232, 68,137,248, 68, +/* 0x1e20 */ 41,240, 68, 15,182, 44, 2, 68,137,248, 65,255,199,255,205, 68, +/* 0x1e30 */ 136, 44, 2, 15,149,194, 49,192, 68, 59,124, 36,228, 15,146,192, +/* 0x1e40 */ 133,194,117,211, 68, 59,124, 36,228, 15,130, 69,247,255,255, 65, +/* 0x1e50 */ 129,251,255,255,255, 0,119, 22, 76, 57,231,184, 1, 0, 0, 0, +/* 0x1e60 */ 116, 35,235, 7,184, 1, 0, 0, 0,235, 26, 72,255,199,137,248, +/* 0x1e70 */ 43, 68, 36,248, 72,139, 76, 36,240, 72,139, 92, 36, 56,137, 1, +/* 0x1e80 */ 68,137, 59, 49,192, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95, 72, +/* 0x1e90 */ 139,117,248, 72,139,125, 16,139, 75, 4, 72, 1,206,139, 19, 72, +/* 0x1ea0 */ 1,215,201,235, 2, 87, 94, 88, 72, 41,199, 88, 89,137, 57, 72, +/* 0x1eb0 */ 41,240, 91, 93,195, 0, 46,115,121,109,116, 97, 98, 0, 46,115, +/* 0x1ec0 */ 116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, +/* 0x1ed0 */ 46,114,101,108, 97, 83, 79, 95, 77, 65, 73, 78, 0, 69, 88, 80, +/* 0x1ee0 */ 95, 72, 69, 65, 68, 0, 46,114,101,108, 97, 78, 82, 86, 50, 69, +/* 0x1ef0 */ 0, 46,114,101,108, 97, 78, 82, 86, 50, 68, 0, 46,114,101,108, +/* 0x1f00 */ 97, 78, 82, 86, 50, 66, 0, 46,114,101,108, 97, 83, 79, 95, 72, +/* 0x1f10 */ 69, 65, 68, 0,112,116,114, 95, 78, 69, 88, 84, 0, 83, 79, 95, +/* 0x1f20 */ 84, 65, 73, 76, 0, 46,114,101,108, 97, 76, 90, 77, 65, 95, 69, +/* 0x1f30 */ 76, 70, 48, 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 0, +/* 0x1f40 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 0, 76, 90, 77, 65, 95, +/* 0x1f50 */ 68, 69, 67, 51, 48, 0, 69, 88, 80, 95, 84, 65, 73, 76, 0, 0, +/* 0x1f60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fa0 */ 32, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fb0 */ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fc0 */ 39, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fd0 */ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fe0 */ 27, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ff0 */ 0, 0, 0, 0, 0, 0, 0, 0, 72, 40, 0, 0, 0, 0, 0, 0, +/* 0x2000 */ 152, 1, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, +/* 0x2010 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x2020 */ 40, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x2030 */ 0, 0, 0, 0, 0, 0, 0, 0,103, 6, 0, 0, 0, 0, 0, 0, +/* 0x2040 */ 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2050 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2060 */ 54, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x2070 */ 0, 0, 0, 0, 0, 0, 0, 0, 67, 7, 0, 0, 0, 0, 0, 0, +/* 0x2080 */ 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2090 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x20a0 */ 80, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x20b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 40, 0, 0, 0, 0, 0, 0, -/* 0x20c0 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 9, 0, 0, 0, +/* 0x20a0 */ 49, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x20b0 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 41, 0, 0, 0, 0, 0, 0, +/* 0x20c0 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 4, 0, 0, 0, /* 0x20d0 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x20e0 */ 96, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x20f0 */ 0, 0, 0, 0, 0, 0, 0, 0,151, 8, 0, 0, 0, 0, 0, 0, -/* 0x2100 */ 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x20e0 */ 65, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x20f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 40, 8, 0, 0, 0, 0, 0, 0, +/* 0x2100 */ 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2110 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2120 */ 91, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2130 */ 0, 0, 0, 0, 0, 0, 0, 0, 56, 40, 0, 0, 0, 0, 0, 0, -/* 0x2140 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 11, 0, 0, 0, +/* 0x2120 */ 60, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2130 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 42, 0, 0, 0, 0, 0, 0, +/* 0x2140 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 6, 0, 0, 0, /* 0x2150 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x2160 */ 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2170 */ 0, 0, 0, 0, 0, 0, 0, 0,185, 8, 0, 0, 0, 0, 0, 0, -/* 0x2180 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2160 */ 76, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x2170 */ 0, 0, 0, 0, 0, 0, 0, 0,255, 8, 0, 0, 0, 0, 0, 0, +/* 0x2180 */ 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2190 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x21a0 */ 113, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x21b0 */ 0, 0, 0, 0, 0, 0, 0, 0,185, 8, 0, 0, 0, 0, 0, 0, -/* 0x21c0 */ 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x21d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x21e0 */ 126, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x21f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, -/* 0x2200 */ 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x21a0 */ 71, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x21b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 64, 42, 0, 0, 0, 0, 0, 0, +/* 0x21c0 */ 48, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 8, 0, 0, 0, +/* 0x21d0 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x21e0 */ 87, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x21f0 */ 0, 0, 0, 0, 0, 0, 0, 0,192, 9, 0, 0, 0, 0, 0, 0, +/* 0x2200 */ 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2210 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2220 */ 121, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2230 */ 0, 0, 0, 0, 0, 0, 0, 0,104, 40, 0, 0, 0, 0, 0, 0, -/* 0x2240 */ 24, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, +/* 0x2220 */ 82, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2230 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 42, 0, 0, 0, 0, 0, 0, +/* 0x2240 */ 24, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0, /* 0x2250 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x2260 */ 137, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2270 */ 0, 0, 0, 0, 0, 0, 0, 0,105, 9, 0, 0, 0, 0, 0, 0, -/* 0x2280 */ 247, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2260 */ 95, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2270 */ 0, 0, 0, 0, 0, 0, 0, 0,219, 9, 0, 0, 0, 0, 0, 0, +/* 0x2280 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2290 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x22a0 */ 148, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x22b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 96, 19, 0, 0, 0, 0, 0, 0, -/* 0x22c0 */ 247, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22a0 */ 104, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22b0 */ 0, 0, 0, 0, 0, 0, 0, 0,219, 9, 0, 0, 0, 0, 0, 0, +/* 0x22c0 */ 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x22d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x22e0 */ 159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x22f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 87, 29, 0, 0, 0, 0, 0, 0, -/* 0x2300 */ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22e0 */ 117, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 61, 10, 0, 0, 0, 0, 0, 0, +/* 0x2300 */ 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2310 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2320 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2330 */ 0, 0, 0, 0, 0, 0, 0, 0,111, 29, 0, 0, 0, 0, 0, 0, -/* 0x2340 */ 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2350 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2360 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2370 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 35, 0, 0, 0, 0, 0, 0, -/* 0x2380 */ 88, 2, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, -/* 0x2390 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, -/* 0x23a0 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x23b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 56, 38, 0, 0, 0, 0, 0, 0, -/* 0x23c0 */ 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2320 */ 112, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2330 */ 0, 0, 0, 0, 0, 0, 0, 0,136, 42, 0, 0, 0, 0, 0, 0, +/* 0x2340 */ 24, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 14, 0, 0, 0, +/* 0x2350 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x2360 */ 128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2370 */ 0, 0, 0, 0, 0, 0, 0, 0,161, 10, 0, 0, 0, 0, 0, 0, +/* 0x2380 */ 247, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2390 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23a0 */ 139, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23b0 */ 0, 0, 0, 0, 0, 0, 0, 0,152, 20, 0, 0, 0, 0, 0, 0, +/* 0x23c0 */ 247, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x23d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x23e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x23f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, -/* 0x2400 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2410 */ 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2420 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 13, 0, -/* 0x2430 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2440 */ 0, 0, 0, 0, 3, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2450 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, -/* 0x2460 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2470 */ 0, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2480 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0, -/* 0x2490 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x24a0 */ 0, 0, 0, 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x24b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, -/* 0x24c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x24d0 */ 0, 0, 0, 0, 3, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x24e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 15, 0, -/* 0x24f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2500 */ 0, 0, 0, 0, 3, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2510 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 18, 0, +/* 0x23e0 */ 150, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23f0 */ 0, 0, 0, 0, 0, 0, 0, 0,143, 30, 0, 0, 0, 0, 0, 0, +/* 0x2400 */ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2410 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2420 */ 161, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2430 */ 0, 0, 0, 0, 0, 0, 0, 0,167, 30, 0, 0, 0, 0, 0, 0, +/* 0x2440 */ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2450 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2460 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2470 */ 0, 0, 0, 0, 0, 0, 0, 0,181, 30, 0, 0, 0, 0, 0, 0, +/* 0x2480 */ 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2490 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x24a0 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x24b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 37, 0, 0, 0, 0, 0, 0, +/* 0x24c0 */ 184, 2, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, +/* 0x24d0 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x24e0 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x24f0 */ 0, 0, 0, 0, 0, 0, 0, 0,216, 39, 0, 0, 0, 0, 0, 0, +/* 0x2500 */ 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2510 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2520 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2530 */ 1, 0, 0, 0, 16, 0, 14, 0, 62, 0, 0, 0, 0, 0, 0, 0, -/* 0x2540 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 16, 0, 14, 0, -/* 0x2550 */ 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2560 */ 15, 0, 0, 0, 16, 0, 14, 0, 49, 0, 0, 0, 0, 0, 0, 0, -/* 0x2570 */ 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 16, 0, 14, 0, -/* 0x2580 */ 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2590 */ 28, 0, 0, 0, 18, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x25a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 16, 0, 14, 0, -/* 0x25b0 */ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x25c0 */ 39, 0, 0, 0, 16, 0, 14, 0, 70, 0, 0, 0, 0, 0, 0, 0, -/* 0x25d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 16, 0, 14, 0, -/* 0x25e0 */ 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x25f0 */ 52, 0, 0, 0, 16, 0, 14, 0, 58, 0, 0, 0, 0, 0, 0, 0, -/* 0x2600 */ 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 16, 0, 14, 0, -/* 0x2610 */ 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x2620 */ 66, 0, 0, 0, 18, 0, 1, 0, 34, 2, 0, 0, 0, 0, 0, 0, -/* 0x2630 */ 210, 2, 0, 0, 0, 0, 0, 0, 0,109,117,110,109, 97,112, 0, -/* 0x2640 */ 109,101,109, 99,112,121, 0, 79, 95, 66, 73, 78, 70, 79, 0,109, -/* 0x2650 */ 109, 97,112, 0,101,111,102, 0,102, 95,105,110,116, 51, 0,119, -/* 0x2660 */ 114,105,116,101, 0,109,101,109,115,101,116, 0,101,120,105,116, -/* 0x2670 */ 0,109,112,114,111,116,101, 99,116, 0,117,112,120, 95,115,111, -/* 0x2680 */ 95,109, 97,105,110, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, -/* 0x2690 */ 4, 0, 0, 0, 22, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x26a0 */ 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 22, 0, 0, 0, -/* 0x26b0 */ 252,255,255,255,255,255,255,255,219, 1, 0, 0, 0, 0, 0, 0, -/* 0x26c0 */ 4, 0, 0, 0, 17, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x26d0 */ 5, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, -/* 0x26e0 */ 252,255,255,255,255,255,255,255,109, 2, 0, 0, 0, 0, 0, 0, -/* 0x26f0 */ 4, 0, 0, 0, 17, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x2700 */ 130, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, -/* 0x2710 */ 252,255,255,255,255,255,255,255,196, 2, 0, 0, 0, 0, 0, 0, -/* 0x2720 */ 4, 0, 0, 0, 23, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x2730 */ 108, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, -/* 0x2740 */ 252,255,255,255,255,255,255,255,250, 3, 0, 0, 0, 0, 0, 0, -/* 0x2750 */ 4, 0, 0, 0, 17, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x2760 */ 80, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 21, 0, 0, 0, -/* 0x2770 */ 252,255,255,255,255,255,255,255,159, 4, 0, 0, 0, 0, 0, 0, -/* 0x2780 */ 4, 0, 0, 0, 23, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x2790 */ 203, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0, 0, 0, -/* 0x27a0 */ 252,255,255,255,255,255,255,255,219, 0, 0, 0, 0, 0, 0, 0, -/* 0x27b0 */ 2, 0, 0, 0, 1, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, -/* 0x27c0 */ 114, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, -/* 0x27d0 */ 252,255,255,255,255,255,255,255,205, 0, 0, 0, 0, 0, 0, 0, -/* 0x27e0 */ 2, 0, 0, 0, 1, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, -/* 0x27f0 */ 114, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, -/* 0x2800 */ 252,255,255,255,255,255,255,255,183, 0, 0, 0, 0, 0, 0, 0, -/* 0x2810 */ 2, 0, 0, 0, 1, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, -/* 0x2820 */ 94, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, -/* 0x2830 */ 252,255,255,255,255,255,255,255, 5, 0, 0, 0, 0, 0, 0, 0, -/* 0x2840 */ 2, 0, 0, 0, 3, 0, 0, 0,252,255,255,255,255,255,255,255, -/* 0x2850 */ 16, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 24, 0, 0, 0, -/* 0x2860 */ 252,255,255,255,255,255,255,255, 6, 0, 0, 0, 0, 0, 0, 0, -/* 0x2870 */ 2, 0, 0, 0, 4, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, -/* 0x2880 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, -/* 0x2890 */ 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111, -/* 0x28a0 */ 110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, -/* 0x28b0 */ 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, -/* 0x28c0 */ 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x28d0 */ 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x28e0 */ 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108, -/* 0x28f0 */ 103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 83, 79, -/* 0x2900 */ 95, 77, 65, 73, 78, 32, 32, 32, 32, 32, 32, 32, 48, 52,102, 52, -/* 0x2910 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, -/* 0x2920 */ 52, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, -/* 0x2930 */ 69, 88, 80, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,100, -/* 0x2940 */ 53, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 51, 52, 32, 32, 50, -/* 0x2950 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, -/* 0x2960 */ 50, 32, 69, 88, 80, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, -/* 0x2970 */ 48,101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54, 48, 57, 32, 32, -/* 0x2980 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, -/* 0x2990 */ 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x29a0 */ 32, 48,101, 54, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54, 49, 55, -/* 0x29b0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x29c0 */ 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, -/* 0x29d0 */ 32, 32, 32, 48,100, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54, -/* 0x29e0 */ 102,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x29f0 */ 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, -/* 0x2a00 */ 32, 32, 32, 32, 32, 48, 99, 50, 32, 32, 48, 32, 32, 48, 32, 32, -/* 0x2a10 */ 48, 55,100, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x2a20 */ 69, 78, 84, 83, 10, 32, 32, 54, 32, 83, 79, 95, 72, 69, 65, 68, -/* 0x2a30 */ 32, 32, 32, 32, 32, 32, 32, 48, 50, 50, 32, 32, 48, 32, 32, 48, -/* 0x2a40 */ 32, 32, 48, 56, 57, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x2a50 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32,112,116,114, 95, 78, -/* 0x2a60 */ 69, 88, 84, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x2a70 */ 32, 32, 48, 56, 98, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x2a80 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 83, 79, 95, 84, 65, -/* 0x2a90 */ 73, 76, 32, 32, 32, 32, 32, 32, 32, 48, 52, 99, 32, 32, 48, 32, -/* 0x2aa0 */ 32, 48, 32, 32, 48, 56, 98, 57, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x2ab0 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, -/* 0x2ac0 */ 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 54, 52, 32, 32, -/* 0x2ad0 */ 48, 32, 32, 48, 32, 32, 48, 57, 48, 53, 32, 32, 50, 42, 42, 48, -/* 0x2ae0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48, 32, 76, -/* 0x2af0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 57,102, -/* 0x2b00 */ 55, 32, 32, 48, 32, 32, 48, 32, 32, 48, 57, 54, 57, 32, 32, 50, -/* 0x2b10 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, -/* 0x2b20 */ 49, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, -/* 0x2b30 */ 48, 57,102, 55, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 54, -/* 0x2b40 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x2b50 */ 83, 10, 32, 49, 50, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, -/* 0x2b60 */ 32, 32, 32, 32, 48, 49, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x2b70 */ 49,100, 53, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x2b80 */ 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, -/* 0x2b90 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2ba0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, 95, -/* 0x2bb0 */ 72, 69, 65, 68, 32, 48, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, -/* 0x2bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2bd0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, 95, 84, 65, 73, -/* 0x2be0 */ 76, 32, 48, 32, 69, 88, 80, 95, 84, 65, 73, 76, 10, 48, 48, 48, -/* 0x2bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x2c00 */ 32, 32, 32,100, 32, 32,112,116,114, 95, 78, 69, 88, 84, 32, 48, -/* 0x2c10 */ 32,112,116,114, 95, 78, 69, 88, 84, 10, 48, 48, 48, 48, 48, 48, -/* 0x2c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x2c30 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, -/* 0x2c40 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, -/* 0x2c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2c60 */ 32,100, 32, 32, 83, 79, 95, 77, 65, 73, 78, 32, 48, 32, 83, 79, -/* 0x2c70 */ 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2c80 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, -/* 0x2c90 */ 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, -/* 0x2ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x2cb0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, 78, 82, -/* 0x2cc0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2cd0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, -/* 0x2ce0 */ 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, -/* 0x2cf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2d00 */ 32,100, 32, 32, 83, 79, 95, 72, 69, 65, 68, 32, 48, 32, 83, 79, -/* 0x2d10 */ 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2d20 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, -/* 0x2d30 */ 79, 95, 84, 65, 73, 76, 32, 48, 32, 83, 79, 95, 84, 65, 73, 76, -/* 0x2d40 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2d50 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, -/* 0x2d60 */ 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, -/* 0x2d70 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2d80 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, -/* 0x2d90 */ 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2da0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2db0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, -/* 0x2dc0 */ 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2dd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2de0 */ 48, 48, 51,101, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, -/* 0x2df0 */ 84, 65, 73, 76, 32, 48, 32,109,117,110,109, 97,112, 10, 48, 48, -/* 0x2e00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 99, 32,103, -/* 0x2e10 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, -/* 0x2e20 */ 32,109,101,109, 99,112,121, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2e30 */ 48, 48, 48, 48, 48, 48, 51, 49, 32,103, 32, 32, 32, 32, 32, 32, -/* 0x2e40 */ 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 79, 95, 66, 73, 78, -/* 0x2e50 */ 70, 79, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2e60 */ 48, 51, 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, -/* 0x2e70 */ 65, 73, 76, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, -/* 0x2e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, -/* 0x2e90 */ 32, 32, 70, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,101,111, -/* 0x2ea0 */ 102, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2eb0 */ 49, 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, -/* 0x2ec0 */ 73, 76, 32, 48, 32,102, 95,105,110,116, 51, 10, 48, 48, 48, 48, -/* 0x2ed0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 54, 32,103, 32, 32, -/* 0x2ee0 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,119, -/* 0x2ef0 */ 114,105,116,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2f00 */ 48, 48, 48, 49, 51, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, -/* 0x2f10 */ 95, 84, 65, 73, 76, 32, 48, 32,109,101,109,115,101,116, 10, 48, -/* 0x2f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 97, 32, -/* 0x2f30 */ 103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, -/* 0x2f40 */ 48, 32,101,120,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2f50 */ 48, 48, 48, 48, 48, 52, 50, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x2f60 */ 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,112,114,111,116,101, -/* 0x2f70 */ 99,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2f80 */ 50, 50, 50, 32,103, 32, 32, 32, 32, 32, 70, 32, 83, 79, 95, 77, -/* 0x2f90 */ 65, 73, 78, 32, 48, 50,100, 50, 32,117,112,120, 95,115,111, 95, -/* 0x2fa0 */ 109, 97,105,110, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x2fb0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, -/* 0x2fc0 */ 95, 77, 65, 73, 78, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, -/* 0x2fd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, -/* 0x2fe0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, -/* 0x2ff0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, -/* 0x3000 */ 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, -/* 0x3010 */ 32, 32, 32, 32,101,120,105,116, 43, 48,120,102,102,102,102,102, -/* 0x3020 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, -/* 0x3030 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 99, 32, 82, 95, 88, -/* 0x3040 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,101, -/* 0x3050 */ 120,105,116, 43, 48,120,102,102,102,102,102,102,102,102,102,102, -/* 0x3060 */ 102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3070 */ 48, 48, 48, 48, 49,100, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, -/* 0x3080 */ 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,109, 97,112, 43, 48, -/* 0x3090 */ 120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x30a0 */ 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, -/* 0x30b0 */ 48, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, -/* 0x30c0 */ 50, 32, 32, 32, 32,109,112,114,111,116,101, 99,116, 43, 48,120, -/* 0x30d0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, -/* 0x30e0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 54, -/* 0x30f0 */ 100, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, -/* 0x3100 */ 32, 32, 32, 32,109,109, 97,112, 43, 48,120,102,102,102,102,102, -/* 0x3110 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, -/* 0x3120 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 56, 50, 32, 82, 95, 88, -/* 0x3130 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109, -/* 0x3140 */ 101,109, 99,112,121, 43, 48,120,102,102,102,102,102,102,102,102, -/* 0x3150 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x3160 */ 48, 48, 48, 48, 48, 48, 50, 99, 52, 32, 82, 95, 88, 56, 54, 95, -/* 0x3170 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,112,114,111, -/* 0x3180 */ 116,101, 99,116, 43, 48,120,102,102,102,102,102,102,102,102,102, -/* 0x3190 */ 102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x31a0 */ 48, 48, 48, 48, 48, 51, 54, 99, 32, 82, 95, 88, 56, 54, 95, 54, -/* 0x31b0 */ 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,112,114,111,116, -/* 0x31c0 */ 101, 99,116, 43, 48,120,102,102,102,102,102,102,102,102,102,102, -/* 0x31d0 */ 102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x31e0 */ 48, 48, 48, 48, 51,102, 97, 32, 82, 95, 88, 56, 54, 95, 54, 52, -/* 0x31f0 */ 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,109, 97,112, 43, 48, -/* 0x3200 */ 120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x3210 */ 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, -/* 0x3220 */ 53, 48, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, -/* 0x3230 */ 50, 32, 32, 32, 32,109,101,109,115,101,116, 43, 48,120,102,102, -/* 0x3240 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, -/* 0x3250 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 57,102, 32, -/* 0x3260 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, -/* 0x3270 */ 32, 32,109,112,114,111,116,101, 99,116, 43, 48,120,102,102,102, -/* 0x3280 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, -/* 0x3290 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 99, 98, 32, 82, -/* 0x32a0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, -/* 0x32b0 */ 32,109,117,110,109, 97,112, 43, 48,120,102,102,102,102,102,102, -/* 0x32c0 */ 102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, -/* 0x32d0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x32e0 */ 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, -/* 0x32f0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, -/* 0x3300 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x3310 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3320 */ 48, 48, 48,100, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, -/* 0x3330 */ 67, 51, 50, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, -/* 0x3340 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3350 */ 48, 57, 52, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x3360 */ 48, 48, 55, 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, -/* 0x3370 */ 51, 50, 32, 32, 32, 32, 32, 69, 88, 80, 95, 84, 65, 73, 76, 43, -/* 0x3380 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x3390 */ 102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x33a0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, -/* 0x33b0 */ 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, -/* 0x33c0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x33d0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x33e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99,100, 32, 82, 95, -/* 0x33f0 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, -/* 0x3400 */ 69, 88, 80, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, -/* 0x3410 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 52, 10, 48, 48, 48, 48, -/* 0x3420 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 50, 32, 82, 95, 88, -/* 0x3430 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, -/* 0x3440 */ 88, 80, 95, 84, 65, 73, 76, 43, 48,120,102,102,102,102,102,102, -/* 0x3450 */ 102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, -/* 0x3460 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x3470 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, -/* 0x3480 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, -/* 0x3490 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x34a0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x34b0 */ 48, 48, 48, 98, 55, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, -/* 0x34c0 */ 67, 51, 50, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, -/* 0x34d0 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x34e0 */ 48, 57, 52, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x34f0 */ 48, 48, 53,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, -/* 0x3500 */ 51, 50, 32, 32, 32, 32, 32, 69, 88, 80, 95, 84, 65, 73, 76, 43, -/* 0x3510 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x3520 */ 102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x3530 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, 72, -/* 0x3540 */ 69, 65, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x3550 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x3560 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x3570 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 32, -/* 0x3580 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, -/* 0x3590 */ 32, 32,112,116,114, 95, 78, 69, 88, 84, 43, 48,120,102,102,102, -/* 0x35a0 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, -/* 0x35b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, -/* 0x35c0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, -/* 0x35d0 */ 32,117,112,120, 95,115,111, 95,109, 97,105,110, 43, 48,120,102, -/* 0x35e0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, -/* 0x35f0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x3600 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, -/* 0x3610 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x3620 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x3630 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x3640 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 32, -/* 0x3650 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, -/* 0x3660 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, -/* 0x3670 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 10 +/* 0x2530 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, +/* 0x2540 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2550 */ 0, 0, 0, 0, 3, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2560 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 19, 0, +/* 0x2570 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2580 */ 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2590 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, +/* 0x25a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x25b0 */ 0, 0, 0, 0, 3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x25c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 8, 0, +/* 0x25d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x25e0 */ 0, 0, 0, 0, 3, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x25f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 12, 0, +/* 0x2600 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2610 */ 0, 0, 0, 0, 3, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2620 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 14, 0, +/* 0x2630 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2640 */ 0, 0, 0, 0, 3, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2650 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 17, 0, +/* 0x2660 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2670 */ 1, 0, 0, 0, 16, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2680 */ 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 16, 0, 13, 0, +/* 0x2690 */ 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x26a0 */ 17, 0, 0, 0, 16, 0, 13, 0, 28, 0, 0, 0, 0, 0, 0, 0, +/* 0x26b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 16, 0, 13, 0, +/* 0x26c0 */ 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x26d0 */ 32, 0, 0, 0, 16, 0, 13, 0, 49, 0, 0, 0, 0, 0, 0, 0, +/* 0x26e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 18, 0, 13, 0, +/* 0x26f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2700 */ 41, 0, 0, 0, 16, 0, 13, 0, 82, 0, 0, 0, 0, 0, 0, 0, +/* 0x2710 */ 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 16, 0, 13, 0, +/* 0x2720 */ 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2730 */ 52, 0, 0, 0, 16, 0, 13, 0, 19, 0, 0, 0, 0, 0, 0, 0, +/* 0x2740 */ 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 16, 0, 13, 0, +/* 0x2750 */ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2760 */ 67, 0, 0, 0, 16, 0, 13, 0, 67, 0, 0, 0, 0, 0, 0, 0, +/* 0x2770 */ 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 16, 0, 13, 0, +/* 0x2780 */ 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2790 */ 79, 0, 0, 0, 16, 0, 13, 0, 94, 0, 0, 0, 0, 0, 0, 0, +/* 0x27a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 16, 0, 13, 0, +/* 0x27b0 */ 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x27c0 */ 94, 0, 0, 0, 18, 0, 1, 0,107, 3, 0, 0, 0, 0, 0, 0, +/* 0x27d0 */ 188, 2, 0, 0, 0, 0, 0, 0, 0,102, 95,101,120,112, 97,110, +/* 0x27e0 */ 100, 0,109,117,110,109, 97,112, 0,109,101,109, 99,112,121, 0, +/* 0x27f0 */ 79, 95, 66, 73, 78, 70, 79, 0,109,109, 97,112, 0,101,111,102, +/* 0x2800 */ 0,119,114,105,116,101, 0,114,101, 97,100, 0,109,101,109,115, +/* 0x2810 */ 101,116, 0,109,121, 95, 98,107,112,116, 0,101,120,105,116, 0, +/* 0x2820 */ 111,112,101,110, 97,116, 0,109,112,114,111,116,101, 99,116, 0, +/* 0x2830 */ 99,108,111,115,101, 0,117,112,120, 95,115,111, 95,109, 97,105, +/* 0x2840 */ 110, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, +/* 0x2850 */ 4, 0, 0, 0, 23, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2860 */ 23, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 24, 0, 0, 0, +/* 0x2870 */ 252,255,255,255,255,255,255,255, 46, 0, 0, 0, 0, 0, 0, 0, +/* 0x2880 */ 4, 0, 0, 0, 24, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2890 */ 14, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0, 0, 0, +/* 0x28a0 */ 252,255,255,255,255,255,255,255,224, 1, 0, 0, 0, 0, 0, 0, +/* 0x28b0 */ 4, 0, 0, 0, 18, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x28c0 */ 10, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, +/* 0x28d0 */ 252,255,255,255,255,255,255,255,104, 2, 0, 0, 0, 0, 0, 0, +/* 0x28e0 */ 4, 0, 0, 0, 25, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x28f0 */ 131, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 21, 0, 0, 0, +/* 0x2900 */ 252,255,255,255,255,255,255,255,145, 2, 0, 0, 0, 0, 0, 0, +/* 0x2910 */ 4, 0, 0, 0, 27, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2920 */ 16, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, +/* 0x2930 */ 252,255,255,255,255,255,255,255, 49, 3, 0, 0, 0, 0, 0, 0, +/* 0x2940 */ 4, 0, 0, 0, 18, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2950 */ 63, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, +/* 0x2960 */ 252,255,255,255,255,255,255,255,222, 3, 0, 0, 0, 0, 0, 0, +/* 0x2970 */ 4, 0, 0, 0, 18, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2980 */ 239, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, +/* 0x2990 */ 252,255,255,255,255,255,255,255, 28, 4, 0, 0, 0, 0, 0, 0, +/* 0x29a0 */ 4, 0, 0, 0, 26, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x29b0 */ 223, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, +/* 0x29c0 */ 252,255,255,255,255,255,255,255,248, 5, 0, 0, 0, 0, 0, 0, +/* 0x29d0 */ 4, 0, 0, 0, 15, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x29e0 */ 218, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, +/* 0x29f0 */ 155, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, +/* 0x2a00 */ 2, 0, 0, 0, 3, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2a10 */ 204, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, +/* 0x2a20 */ 155, 0, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, +/* 0x2a30 */ 2, 0, 0, 0, 3, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2a40 */ 182, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, +/* 0x2a50 */ 155, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, +/* 0x2a60 */ 2, 0, 0, 0, 3, 0, 0, 0,252,255,255,255,255,255,255,255, +/* 0x2a70 */ 9, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 28, 0, 0, 0, +/* 0x2a80 */ 252,255,255,255,255,255,255,255, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x2a90 */ 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, +/* 0x2aa0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, +/* 0x2ab0 */ 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111, +/* 0x2ac0 */ 110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, +/* 0x2ad0 */ 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, +/* 0x2ae0 */ 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2af0 */ 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2b00 */ 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108, +/* 0x2b10 */ 103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 83, 79, +/* 0x2b20 */ 95, 77, 65, 73, 78, 32, 32, 32, 32, 32, 32, 32, 48, 54, 50, 55, +/* 0x2b30 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, +/* 0x2b40 */ 52, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, +/* 0x2b50 */ 69, 88, 80, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,100, +/* 0x2b60 */ 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54, 54, 55, 32, 32, 50, +/* 0x2b70 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, +/* 0x2b80 */ 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2b90 */ 48,101, 53, 32, 32, 48, 32, 32, 48, 32, 32, 48, 55, 52, 51, 32, +/* 0x2ba0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, +/* 0x2bb0 */ 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, +/* 0x2bc0 */ 32, 32, 48,100, 55, 32, 32, 48, 32, 32, 48, 32, 32, 48, 56, 50, +/* 0x2bd0 */ 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x2be0 */ 83, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, +/* 0x2bf0 */ 32, 32, 32, 32, 48, 99, 49, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x2c00 */ 56,102,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x2c10 */ 78, 84, 83, 10, 32, 32, 53, 32, 83, 79, 95, 72, 69, 65, 68, 32, +/* 0x2c20 */ 32, 32, 32, 32, 32, 32, 48, 49, 98, 32, 32, 48, 32, 32, 48, 32, +/* 0x2c30 */ 32, 48, 57, 99, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2c40 */ 84, 69, 78, 84, 83, 10, 32, 32, 54, 32,112,116,114, 95, 78, 69, +/* 0x2c50 */ 88, 84, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, +/* 0x2c60 */ 32, 48, 57,100, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2c70 */ 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 83, 79, 95, 84, 65, 73, +/* 0x2c80 */ 76, 32, 32, 32, 32, 32, 32, 32, 48, 54, 50, 32, 32, 48, 32, 32, +/* 0x2c90 */ 48, 32, 32, 48, 57,100, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x2ca0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, +/* 0x2cb0 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 54, 52, 32, 32, 48, +/* 0x2cc0 */ 32, 32, 48, 32, 32, 48, 97, 51,100, 32, 32, 50, 42, 42, 48, 32, +/* 0x2cd0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, +/* 0x2ce0 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 57,102, 55, +/* 0x2cf0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 97, 97, 49, 32, 32, 50, 42, +/* 0x2d00 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48, +/* 0x2d10 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, +/* 0x2d20 */ 57,102, 55, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 52, 57, 56, +/* 0x2d30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x2d40 */ 10, 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, +/* 0x2d50 */ 32, 32, 32, 48, 49, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, +/* 0x2d60 */ 101, 56,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x2d70 */ 78, 84, 83, 10, 32, 49, 50, 32, 69, 88, 80, 95, 84, 65, 73, 76, +/* 0x2d80 */ 32, 32, 32, 32, 32, 32, 48,101, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x2d90 */ 48, 49,101, 97, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2da0 */ 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, +/* 0x2db0 */ 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2dc0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, +/* 0x2dd0 */ 95, 72, 69, 65, 68, 32, 48, 32, 69, 88, 80, 95, 72, 69, 65, 68, +/* 0x2de0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2df0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x2e00 */ 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, +/* 0x2e10 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2e20 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, 95, 84, +/* 0x2e30 */ 65, 73, 76, 32, 48, 32, 69, 88, 80, 95, 84, 65, 73, 76, 10, 48, +/* 0x2e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2e50 */ 108, 32, 32, 32, 32,100, 32, 32, 83, 79, 95, 77, 65, 73, 78, 32, +/* 0x2e60 */ 48, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, +/* 0x2e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x2e80 */ 100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69, +/* 0x2e90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2ea0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, +/* 0x2eb0 */ 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x2ed0 */ 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, +/* 0x2ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2ef0 */ 108, 32, 32, 32, 32,100, 32, 32, 83, 79, 95, 72, 69, 65, 68, 32, +/* 0x2f00 */ 48, 32, 83, 79, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x2f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x2f20 */ 100, 32, 32,112,116,114, 95, 78, 69, 88, 84, 32, 48, 32,112,116, +/* 0x2f30 */ 114, 95, 78, 69, 88, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2f40 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2f50 */ 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 83, 79, 95, 84, 65, 73, +/* 0x2f60 */ 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2f70 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x2f80 */ 69, 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x2f90 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2fa0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x2fb0 */ 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2fc0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2fd0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, +/* 0x2fe0 */ 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, +/* 0x2ff0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3000 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 88, +/* 0x3010 */ 80, 95, 72, 69, 65, 68, 32, 48, 32,102, 95,101,120,112, 97,110, +/* 0x3020 */ 100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3030 */ 53, 97, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x3040 */ 73, 76, 32, 48, 32,109,117,110,109, 97,112, 10, 48, 48, 48, 48, +/* 0x3050 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 99, 32,103, 32, 32, +/* 0x3060 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109, +/* 0x3070 */ 101,109, 99,112,121, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3080 */ 48, 48, 48, 48, 51, 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3090 */ 79, 95, 84, 65, 73, 76, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, +/* 0x30a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, +/* 0x30b0 */ 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x30c0 */ 76, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x30d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x30e0 */ 70, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,101,111,102, 10, +/* 0x30f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 50, +/* 0x3100 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3110 */ 32, 48, 32,119,114,105,116,101, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3120 */ 48, 48, 48, 48, 48, 48, 48, 53, 54, 32,103, 32, 32, 32, 32, 32, +/* 0x3130 */ 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,114,101, 97,100, +/* 0x3140 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, +/* 0x3150 */ 51, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x3160 */ 76, 32, 48, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, +/* 0x3170 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 32,103, 32, 32, 32, +/* 0x3180 */ 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,121, +/* 0x3190 */ 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x31a0 */ 48, 48, 48, 48, 52, 51, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x31b0 */ 79, 95, 84, 65, 73, 76, 32, 48, 32,101,120,105,116, 10, 48, 48, +/* 0x31c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 98, 32,103, +/* 0x31d0 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x31e0 */ 32,111,112,101,110, 97,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x31f0 */ 48, 48, 48, 48, 48, 48, 53,101, 32,103, 32, 32, 32, 32, 32, 32, +/* 0x3200 */ 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,112,114,111,116, +/* 0x3210 */ 101, 99,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3220 */ 48, 48, 52, 55, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3230 */ 84, 65, 73, 76, 32, 48, 32, 99,108,111,115,101, 10, 48, 48, 48, +/* 0x3240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 54, 98, 32,103, 32, +/* 0x3250 */ 32, 32, 32, 32, 70, 32, 83, 79, 95, 77, 65, 73, 78, 32, 48, 50, +/* 0x3260 */ 98, 99, 32,117,112,120, 95,115,111, 95,109, 97,105,110, 10, 10, +/* 0x3270 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x3280 */ 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, 77, 65, 73, 78, 93, +/* 0x3290 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x32a0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x32b0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x32c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 32, 82, 95, 88, 56, +/* 0x32d0 */ 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,121, +/* 0x32e0 */ 95, 98,107,112,116, 43, 48,120,102,102,102,102,102,102,102,102, +/* 0x32f0 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3300 */ 48, 48, 48, 48, 48, 48, 48, 49, 55, 32, 82, 95, 88, 56, 54, 95, +/* 0x3310 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,101,120,105,116, +/* 0x3320 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x3330 */ 102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3340 */ 48, 48, 50,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, +/* 0x3350 */ 84, 51, 50, 32, 32, 32, 32,101,120,105,116, 43, 48,120,102,102, +/* 0x3360 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, +/* 0x3370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48,101, 32, +/* 0x3380 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, +/* 0x3390 */ 32, 32,102, 95,101,120,112, 97,110,100, 43, 48,120,102,102,102, +/* 0x33a0 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, +/* 0x33b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,101, 48, 32, 82, +/* 0x33c0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, +/* 0x33d0 */ 32,109,109, 97,112, 43, 48,120,102,102,102,102,102,102,102,102, +/* 0x33e0 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x33f0 */ 48, 48, 48, 48, 48, 48, 50, 48, 97, 32, 82, 95, 88, 56, 54, 95, +/* 0x3400 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,112,114,111, +/* 0x3410 */ 116,101, 99,116, 43, 48,120,102,102,102,102,102,102,102,102,102, +/* 0x3420 */ 102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3430 */ 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 88, 56, 54, 95, 54, +/* 0x3440 */ 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,111,112,101,110, 97, +/* 0x3450 */ 116, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x3460 */ 102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3470 */ 48, 48, 50, 56, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, +/* 0x3480 */ 76, 84, 51, 50, 32, 32, 32, 32,114,101, 97,100, 43, 48,120,102, +/* 0x3490 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, +/* 0x34a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 57, 49, +/* 0x34b0 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, +/* 0x34c0 */ 32, 32, 32, 99,108,111,115,101, 43, 48,120,102,102,102,102,102, +/* 0x34d0 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, +/* 0x34e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 49, 48, 32, 82, 95, 88, +/* 0x34f0 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109, +/* 0x3500 */ 101,109, 99,112,121, 43, 48,120,102,102,102,102,102,102,102,102, +/* 0x3510 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3520 */ 48, 48, 48, 48, 48, 48, 51, 51, 49, 32, 82, 95, 88, 56, 54, 95, +/* 0x3530 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,109, 97,112, +/* 0x3540 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x3550 */ 102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3560 */ 48, 51, 51,102, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, +/* 0x3570 */ 84, 51, 50, 32, 32, 32, 32,109,101,109, 99,112,121, 43, 48,120, +/* 0x3580 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, +/* 0x3590 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51,100, +/* 0x35a0 */ 101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, +/* 0x35b0 */ 32, 32, 32, 32,109,109, 97,112, 43, 48,120,102,102,102,102,102, +/* 0x35c0 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, +/* 0x35d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 51,101,102, 32, 82, 95, 88, +/* 0x35e0 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109, +/* 0x35f0 */ 101,109, 99,112,121, 43, 48,120,102,102,102,102,102,102,102,102, +/* 0x3600 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3610 */ 48, 48, 48, 48, 48, 48, 52, 49, 99, 32, 82, 95, 88, 56, 54, 95, +/* 0x3620 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,112,114,111, +/* 0x3630 */ 116,101, 99,116, 43, 48,120,102,102,102,102,102,102,102,102,102, +/* 0x3640 */ 102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3650 */ 48, 48, 48, 48, 48, 53,100,102, 32, 82, 95, 88, 56, 54, 95, 54, +/* 0x3660 */ 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,112,114,111,116, +/* 0x3670 */ 101, 99,116, 43, 48,120,102,102,102,102,102,102,102,102,102,102, +/* 0x3680 */ 102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3690 */ 48, 48, 48, 48, 53,102, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, +/* 0x36a0 */ 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,117,110,109, 97,112, +/* 0x36b0 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x36c0 */ 102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x36d0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, +/* 0x36e0 */ 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, +/* 0x36f0 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, +/* 0x3700 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, +/* 0x3710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 97, 32, 82, +/* 0x3720 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, +/* 0x3730 */ 32, 69, 88, 80, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, +/* 0x3740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 98, 10, 48, 48, 48, +/* 0x3750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 49, 32, 82, 95, +/* 0x3760 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, +/* 0x3770 */ 69, 88, 80, 95, 84, 65, 73, 76, 43, 48,120,102,102,102,102,102, +/* 0x3780 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, +/* 0x3790 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x37a0 */ 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, +/* 0x37b0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, +/* 0x37c0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x37d0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x37e0 */ 48, 48, 48, 48, 99, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, +/* 0x37f0 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, +/* 0x3800 */ 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3810 */ 48, 48, 57, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3820 */ 48, 48, 48, 55, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, +/* 0x3830 */ 67, 51, 50, 32, 32, 32, 32, 32, 69, 88, 80, 95, 84, 65, 73, 76, +/* 0x3840 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x3850 */ 102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x3860 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, +/* 0x3870 */ 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, +/* 0x3880 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, +/* 0x3890 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, +/* 0x38a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 98, 54, 32, 82, +/* 0x38b0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, +/* 0x38c0 */ 32, 69, 88, 80, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, +/* 0x38d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 98, 10, 48, 48, 48, +/* 0x38e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53,100, 32, 82, 95, +/* 0x38f0 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, +/* 0x3900 */ 69, 88, 80, 95, 84, 65, 73, 76, 43, 48,120,102,102,102,102,102, +/* 0x3910 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, +/* 0x3920 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x3930 */ 70, 79, 82, 32, 91, 83, 79, 95, 72, 69, 65, 68, 93, 58, 10, 79, +/* 0x3940 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3950 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3960 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3970 */ 48, 48, 48, 48, 48, 48, 48, 57, 32, 82, 95, 88, 56, 54, 95, 54, +/* 0x3980 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,117,112,120, 95,115, +/* 0x3990 */ 111, 95,109, 97,105,110, 43, 48,120,102,102,102,102,102,102,102, +/* 0x39a0 */ 102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, +/* 0x39b0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x39c0 */ 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, +/* 0x39d0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x39e0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x39f0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, +/* 0x3a10 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3a20 */ 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, +/* 0x3a30 */ 48, 48, 48, 48, 48, 48, 48, 49, 50, 10 }; diff --git a/src/stub/arm.v4a-linux.elf-entry.h b/src/stub/arm.v4a-linux.elf-entry.h index ac5feae9..58224c32 100644 --- a/src/stub/arm.v4a-linux.elf-entry.h +++ b/src/stub/arm.v4a-linux.elf-entry.h @@ -1,5 +1,5 @@ /* arm.v4a-linux.elf-entry.h - created from arm.v4a-linux.elf-entry.bin, 13851 (0x361b) bytes + created from arm.v4a-linux.elf-entry.bin, 13889 (0x3641) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V4A_LINUX_ELF_ENTRY_SIZE 13851 -#define STUB_ARM_V4A_LINUX_ELF_ENTRY_ADLER32 0x3699432d -#define STUB_ARM_V4A_LINUX_ELF_ENTRY_CRC32 0xf5b82c29 +#define STUB_ARM_V4A_LINUX_ELF_ENTRY_SIZE 13889 +#define STUB_ARM_V4A_LINUX_ELF_ENTRY_ADLER32 0xbf074a11 +#define STUB_ARM_V4A_LINUX_ELF_ENTRY_CRC32 0xd676f477 -unsigned char stub_arm_v4a_linux_elf_entry[13851] = { +unsigned char stub_arm_v4a_linux_elf_entry[13889] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 84, 19, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -100,7 +100,7 @@ unsigned char stub_arm_v4a_linux_elf_entry[13851] = { /* 0x03d0 */ 17, 0,205,229, 15,192, 12,226, 16,192,205,229, 16, 0,141,226, /* 0x03e0 */ 41, 0, 0,235, 11,208,160,225, 0, 48,160,225, 3, 0,189,232, /* 0x03f0 */ 0, 16,145,229, 0, 16,129,224, 0, 32,160,227, 2, 0,159,239, -/* 0x0400 */ 3, 0,160,225, 0,136,189,232,240, 1,240,231,240, 79, 45,233, +/* 0x0400 */ 3, 0,160,225, 0,136,189,232, 40, 0, 0,234,240, 79, 45,233, /* 0x0410 */ 48,208, 77,226, 0, 48,141,229, 0, 48,208,229, 2, 80,208,229, /* 0x0420 */ 1,224,208,229, 0,192,157,229, 20, 48,141,229, 92, 48,157,229, /* 0x0430 */ 0, 64,160,227, 0, 64,140,229, 0, 64,131,229, 20,192,157,229, @@ -320,7 +320,7 @@ unsigned char stub_arm_v4a_linux_elf_entry[13851] = { /* 0x1190 */ 147, 14, 14,224, 14, 0, 92,225, 14,112,160, 49, 14,112, 71, 32, /* 0x11a0 */ 2,235, 99, 50, 14,192, 76, 32,174, 50,131, 48,163, 50, 67, 32, /* 0x11b0 */ 0, 0,176,224,176, 48,193,225, 2,240,160,225, 20, 48,141,229, -/* 0x11c0 */ 4, 96,142,226, 0, 80,160,227, 0, 64,224,227, 3, 32,160,227, +/* 0x11c0 */ 4, 96,142,226, 0, 80,160,227, 0, 64,224,227, 7, 32,160,227, /* 0x11d0 */ 0, 16,150,229, 0, 0,160,227, 12, 16,141,229,192, 0,144,239, /* 0x11e0 */ 8, 0,141,229, 0, 48,150,229, 4, 48, 45,229, 13, 48,160,225, /* 0x11f0 */ 0, 32,160,225, 8, 0,214,229, 4, 0, 45,229, 4, 16,150,229, @@ -580,326 +580,329 @@ unsigned char stub_arm_v4a_linux_elf_entry[13851] = { /* 0x21d0 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, /* 0x21e0 */ 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x21f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, -/* 0x2200 */ 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x2210 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, -/* 0x2220 */ 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x2230 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2240 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x2250 */ 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2260 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2270 */ 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2200 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, +/* 0x2210 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x2220 */ 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x2230 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x2240 */ 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, +/* 0x2250 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x2260 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x2270 */ 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2280 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2290 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, +/* 0x2290 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, /* 0x22a0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x22b0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x22c0 */ 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x22c0 */ 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x22d0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x22e0 */ 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x22e0 */ 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, /* 0x22f0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2300 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, +/* 0x2300 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, /* 0x2310 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2320 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2330 */ 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2330 */ 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2340 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2350 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, +/* 0x2350 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, /* 0x2360 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2370 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x2380 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2380 */ 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2390 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x23a0 */ 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x23a0 */ 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x23b0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x23c0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, +/* 0x23c0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, /* 0x23d0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x23e0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x23f0 */ 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x23f0 */ 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2400 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2410 */ 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x2410 */ 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, /* 0x2420 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2430 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, +/* 0x2430 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, /* 0x2440 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2450 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2460 */ 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2460 */ 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2470 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2480 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, +/* 0x2480 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, /* 0x2490 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x24a0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x24b0 */ 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x24b0 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x24c0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x24d0 */ 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x24d0 */ 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x24e0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x24f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, +/* 0x24f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, /* 0x2500 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2510 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2520 */ 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2520 */ 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2540 */ 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, +/* 0x2540 */ 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, /* 0x2550 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2560 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, +/* 0x2560 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, /* 0x2570 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2580 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2590 */ 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2590 */ 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x25a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x25b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, +/* 0x25b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, /* 0x25c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x25d0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x25e0 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x25e0 */ 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x25f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2600 */ 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2600 */ 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2610 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2620 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, +/* 0x2620 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, /* 0x2630 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2640 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2650 */ 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2650 */ 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2660 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2670 */ 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, +/* 0x2670 */ 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, /* 0x2680 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2690 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, +/* 0x2690 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, /* 0x26a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x26b0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x26c0 */ 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x26c0 */ 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x26d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x26e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, +/* 0x26e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, /* 0x26f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2700 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x2710 */ 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2710 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2720 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2730 */ 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2730 */ 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2740 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2750 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, +/* 0x2750 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, /* 0x2760 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2770 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2780 */ 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2780 */ 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2790 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x27a0 */ 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, +/* 0x27a0 */ 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, /* 0x27b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x27c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, +/* 0x27c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, /* 0x27d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x27e0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x27f0 */ 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x27f0 */ 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2800 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2810 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, +/* 0x2810 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, /* 0x2820 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2830 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, -/* 0x2840 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2830 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, +/* 0x2840 */ 102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2850 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2860 */ 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2860 */ 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2870 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2880 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, +/* 0x2880 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, /* 0x2890 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x28a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x28b0 */ 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x28b0 */ 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x28c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x28d0 */ 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, +/* 0x28d0 */ 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, /* 0x28e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x28f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, +/* 0x28f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, /* 0x2900 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2910 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2920 */ 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2920 */ 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2930 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2940 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, +/* 0x2940 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, /* 0x2950 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2960 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, -/* 0x2970 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2970 */ 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2980 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2990 */ 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2990 */ 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x29a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x29b0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, +/* 0x29b0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, /* 0x29c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x29d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x29e0 */ 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x29e0 */ 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x29f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2a00 */ 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x2a00 */ 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, /* 0x2a10 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2a20 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, +/* 0x2a20 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, /* 0x2a30 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2a40 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2a50 */ 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2a50 */ 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2a60 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2a70 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, +/* 0x2a70 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, /* 0x2a80 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2a90 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2aa0 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2aa0 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2ab0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2ac0 */ 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ac0 */ 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2ad0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2ae0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, +/* 0x2ae0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, /* 0x2af0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2b00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2b10 */ 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2b10 */ 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2b20 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2b30 */ 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, +/* 0x2b30 */ 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, /* 0x2b40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2b50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, +/* 0x2b50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, /* 0x2b60 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2b70 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2b80 */ 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2b80 */ 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2b90 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2ba0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, +/* 0x2ba0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, /* 0x2bb0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2bc0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, -/* 0x2bd0 */ 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2bd0 */ 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2be0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2bf0 */ 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2bf0 */ 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2c00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2c10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, +/* 0x2c10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, /* 0x2c20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2c30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2c40 */ 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2c40 */ 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2c50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2c60 */ 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, +/* 0x2c60 */ 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, /* 0x2c70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2c80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, +/* 0x2c80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, /* 0x2c90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2ca0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2cb0 */ 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2cb0 */ 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2cc0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2cd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, +/* 0x2cd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, /* 0x2ce0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2cf0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, -/* 0x2d00 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2d00 */ 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2d10 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2d20 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x2d30 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, -/* 0x2d40 */ 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, -/* 0x2d50 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2d60 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, -/* 0x2d70 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2d80 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x2d90 */ 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2d20 */ 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2d30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2d40 */ 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x2d50 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, +/* 0x2d60 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, +/* 0x2d70 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d80 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x2d90 */ 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2da0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2db0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, +/* 0x2db0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, /* 0x2dc0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2dd0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, +/* 0x2dd0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, /* 0x2de0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2df0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x2e00 */ 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2e00 */ 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2e10 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2e20 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, +/* 0x2e20 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, /* 0x2e30 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e40 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x2e50 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2e50 */ 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2e60 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2e70 */ 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2e70 */ 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2e80 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2e90 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, +/* 0x2e90 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, /* 0x2ea0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2eb0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x2ec0 */ 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ec0 */ 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2ed0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2ee0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, +/* 0x2ee0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, /* 0x2ef0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x2f00 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, -/* 0x2f10 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2f10 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2f20 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x2f30 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2f30 */ 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2f40 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2f50 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, +/* 0x2f50 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, /* 0x2f60 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2f70 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x2f80 */ 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2f80 */ 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2f90 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2fa0 */ 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x2fa0 */ 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2fb0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2fc0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, +/* 0x2fc0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, /* 0x2fd0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2fe0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x2ff0 */ 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ff0 */ 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3000 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3010 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, +/* 0x3010 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, /* 0x3020 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3030 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, -/* 0x3040 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3030 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, +/* 0x3040 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3050 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3060 */ 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3060 */ 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3070 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3080 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, +/* 0x3080 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, /* 0x3090 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x30a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x30b0 */ 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x30b0 */ 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x30c0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x30d0 */ 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x30d0 */ 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x30e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x30f0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, +/* 0x30f0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, /* 0x3100 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3110 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3120 */ 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3120 */ 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3130 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3140 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, +/* 0x3140 */ 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, /* 0x3150 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x3160 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, -/* 0x3170 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3170 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3180 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3190 */ 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3190 */ 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x31a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x31b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, +/* 0x31b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, /* 0x31c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x31d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x31e0 */ 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x31e0 */ 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x31f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3200 */ 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3200 */ 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x3210 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3220 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, +/* 0x3220 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, /* 0x3230 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3240 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3250 */ 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3250 */ 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3260 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3270 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, +/* 0x3270 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, /* 0x3280 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3290 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, -/* 0x32a0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3290 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, +/* 0x32a0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x32b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x32c0 */ 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x32c0 */ 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x32d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x32e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, +/* 0x32e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, /* 0x32f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3300 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3310 */ 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3310 */ 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3320 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3330 */ 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3330 */ 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x3340 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3350 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, +/* 0x3350 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, /* 0x3360 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3370 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3380 */ 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3380 */ 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3390 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x33a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, +/* 0x33a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, /* 0x33b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x33c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, -/* 0x33d0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x33d0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x33e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x33f0 */ 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x33f0 */ 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3400 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3410 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, +/* 0x3410 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, /* 0x3420 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3430 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3440 */ 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3440 */ 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3450 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3460 */ 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x3460 */ 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x3470 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3480 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, +/* 0x3480 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, /* 0x3490 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x34a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x34b0 */ 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x34b0 */ 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x34c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x34d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, +/* 0x34d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, /* 0x34e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x34f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, -/* 0x3500 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x34f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, +/* 0x3500 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3510 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3520 */ 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3520 */ 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3530 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3540 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, +/* 0x3540 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, /* 0x3550 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3560 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, -/* 0x3570 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x3580 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, -/* 0x3590 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x35a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x35b0 */ 48, 48, 48, 48, 48, 48,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x35c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, -/* 0x35d0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,101, 56, 32, 82, 95, 65, -/* 0x35e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, -/* 0x35f0 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,101, 99, -/* 0x3600 */ 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50, 32, 32, 32, 32, -/* 0x3610 */ 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x3560 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3570 */ 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3580 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3590 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, +/* 0x35a0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, +/* 0x35b0 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, +/* 0x35c0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x35d0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,100, 99, 32, 82, +/* 0x35e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x35f0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, +/* 0x3600 */ 101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3610 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, +/* 0x3620 */ 48, 48, 48, 48,101, 99, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, +/* 0x3630 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, +/* 0x3640 */ 10 }; diff --git a/src/stub/arm.v4a-linux.elf-fold.h b/src/stub/arm.v4a-linux.elf-fold.h index bc7eec7a..1e3406fe 100644 --- a/src/stub/arm.v4a-linux.elf-fold.h +++ b/src/stub/arm.v4a-linux.elf-fold.h @@ -1,5 +1,5 @@ /* arm.v4a-linux.elf-fold.h - created from arm.v4a-linux.elf-fold.bin, 2856 (0xb28) bytes + created from arm.v4a-linux.elf-fold.bin, 6344 (0x18c8) bytes This file is part of the UPX executable compressor. @@ -31,188 +31,406 @@ */ -#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 2856 -#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0xc36b9763 -#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0xd55e0a0e +#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 6344 +#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0xe2487c9e +#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0x227e5905 -unsigned char stub_arm_v4a_linux_elf_fold[2856] = { +unsigned char stub_arm_v4a_linux_elf_fold[6344] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, -/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, -/* 0x0040 */ 0,128, 0, 0, 40, 11, 0, 0, 40, 11, 0, 0, 5, 0, 0, 0, -/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 40, 11, 0, 0, 0, 0, 0, 0, -/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 34, 0, 0, 0,192, 31,189,232, 13, 16,160,225, 1,218, 77,226, -/* 0x0090 */ 13, 0,160,225,240, 31, 45,233, 4, 48,145,228, 0, 0, 83,227, -/* 0x00a0 */ 4, 48,128,228,251,255,255, 26, 0, 64,160,225, 4, 48,128,228, -/* 0x00b0 */ 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,251,255,255, 26, -/* 0x00c0 */ 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227, 12, 0,160,232, -/* 0x00d0 */ 251,255,255, 26, 1, 96,160,225, 0,144,160,225, 1, 42,160,227, -/* 0x00e0 */ 0, 16,160,225, 14, 0,160,225, 1, 32, 66,226,120, 0, 0,235, -/* 0x00f0 */ 1, 10,112,227, 14, 16,160, 33, 14, 0,160, 35, 0, 32,129,224, -/* 0x0100 */ 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229, 1, 48,114,229, -/* 0x0110 */ 1, 48, 96,229, 2, 0, 81,225,251,255,255, 26, 61, 48,160,227, -/* 0x0120 */ 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229, 1, 48, 96,229, -/* 0x0130 */ 1, 48, 96,229, 0, 0,132,229, 32, 1,160,225, 0, 1,160,225, -/* 0x0140 */ 0, 48, 38,224, 4, 48, 3,226, 4, 48, 35,226, 3, 0, 64,224, -/* 0x0150 */ 6, 48, 64,224, 5, 48,131,224, 9, 16,160,225, 24, 80,157,229, -/* 0x0160 */ 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229, -/* 0x0170 */ 251,255,255, 26, 0,208,160,225, 16, 12,189,232, 10,220, 77,226, -/* 0x0180 */ 4,144,154,229, 13,128,160,225, 0,112,154,229,176, 96,143,226, -/* 0x0190 */ 12,144,137,226,248, 15, 45,233, 15, 0,189,232, 20, 2, 0,235, -/* 0x01a0 */ 20,208,141,226, 10,220,141,226, 16, 0,141,229, 92, 16,155,229, -/* 0x01b0 */ 60, 32,155,229, 11, 0,160,225, 2, 16, 65,224, 70, 0, 0,235, -/* 0x01c0 */ 4, 64,157,228, 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227, -/* 0x01d0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227, 69, 0, 0,235, -/* 0x01e0 */ 3, 0,189,232, 50, 0, 0,235, 7, 64,189,232, 0, 48,160,227, -/* 0x01f0 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227, -/* 0x0200 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 1,199, 77,226, -/* 0x0210 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225, -/* 0x0220 */ 250,255,255, 58, 1,215,141,226, 0,112,160,227, 0,192,160,227, -/* 0x0230 */ 4,240, 18,229, 47,112,114,111, 99, 47,115,101,108,102, 47,101, -/* 0x0240 */ 120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, -/* 0x0250 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, -/* 0x0260 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26, -/* 0x0270 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, -/* 0x0280 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225, -/* 0x0290 */ 240, 1,240,231, 14,240,160,225, 1, 0,144,239, 3, 0,144,239, -/* 0x02a0 */ 14,240,160,225, 4, 0,144,239, 14,240,160,225, 5, 0,144,239, -/* 0x02b0 */ 14,240,160,225, 6, 0,144,239, 14,240,160,225, 10, 0,144,239, -/* 0x02c0 */ 14,240,160,225, 20, 0,144,239, 14,240,160,225, 45, 0,144,239, -/* 0x02d0 */ 14,240,160,225, 85, 0,144,239, 14,240,160,225, 91, 0,144,239, -/* 0x02e0 */ 14,240,160,225,125, 0,144,239, 14,240,160,225, 0, 32,160,227, -/* 0x02f0 */ 2, 0,159,239, 14,240,160,225, 48, 64, 45,233, 16, 80,157,229, -/* 0x0300 */ 12, 64,157,229, 37, 86,160,225,192, 0,144,239, 48,128,189,232, -/* 0x0310 */ 60, 0, 31,229, 14,240,160,225, 48, 64, 45,233,164, 66, 31,229, -/* 0x0320 */ 0, 80,160,227, 4, 48,131,225, 0, 64,224,227,245,255,255,234, -/* 0x0330 */ 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,128, 1,144,224, -/* 0x0340 */ 129, 17,161,224,162, 30,129,224, 0, 32,160,225, 0, 2,144,224, -/* 0x0350 */ 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, 0, 4,144,224, -/* 0x0360 */ 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, 0, 8,144,224, -/* 0x0370 */ 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,172, 16,193,224, -/* 0x0380 */ 12, 0,144,224, 0, 0,161,226, 14,240,160,225, 0, 0, 80,227, -/* 0x0390 */ 14,240,160, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18, -/* 0x03a0 */ 251,255,255, 26, 4, 32,128,229, 14,240,160,225, 0, 0,159,229, -/* 0x03b0 */ 14,240,160,225, 0,240,255,255, 0, 48,144,229, 2, 0, 83,225, -/* 0x03c0 */ 4, 48,144,229, 4,224, 45,229, 3,192,160, 33, 2,224,160,225, -/* 0x03d0 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,173,255,255,235, -/* 0x03e0 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227, -/* 0x03f0 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229, -/* 0x0400 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, -/* 0x0410 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225, -/* 0x0420 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225, -/* 0x0430 */ 68, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227, -/* 0x0440 */ 220,255,255,235, 4,224,157,229, 0, 0, 94,227, 8, 16,157,229, -/* 0x0450 */ 6, 0, 0, 26, 0, 49,159,229, 3, 0, 81,225, 5, 0, 0, 26, -/* 0x0460 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 56, 0, 0,234, -/* 0x0470 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,133,255,255,235, -/* 0x0480 */ 14, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 94,225, -/* 0x0490 */ 248,255,255,138, 14, 0, 81,225, 33, 0, 0, 42, 12,192,221,229, -/* 0x04a0 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229, -/* 0x04b0 */ 0,192,141,229, 15,224,160,225, 7,240,160,225, 0, 0, 80,227, -/* 0x04c0 */ 236,255,255, 26, 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225, -/* 0x04d0 */ 232,255,255, 26, 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, -/* 0x04e0 */ 9, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, -/* 0x04f0 */ 1, 0, 83,225, 4, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, -/* 0x0500 */ 14, 32,221,229, 15,224,160,225, 6,240,160,225, 8, 48,157,229, -/* 0x0510 */ 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232, -/* 0x0520 */ 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, 4, 16,148,229, -/* 0x0530 */ 160,255,255,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224, -/* 0x0540 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227, -/* 0x0550 */ 183,255,255, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33, -/* 0x0560 */ 240, 79, 45,233, 1,128,160,225, 28, 16,145,229, 52,208, 77,226, -/* 0x0570 */ 0,144, 82,226, 12, 0,141,229, 8, 48,141,229, 1, 96,136,224, -/* 0x0580 */ 18, 0, 0, 10, 88, 16,157,229, 0, 0,145,229,176, 49,208,225, -/* 0x0590 */ 52, 16,128,226, 2, 0, 83,227, 40, 48,145, 21, 8, 80,145, 5, -/* 0x05a0 */ 0, 0, 99, 16, 20, 48,145,229, 0, 80,160, 17, 0, 32,160, 3, -/* 0x05b0 */ 24, 0,141, 21, 3, 16,160,225, 5, 0,160,225, 5, 48,131,224, -/* 0x05c0 */ 24, 32,141, 5, 20, 48,141,229, 67,255,255,235, 41, 0, 0,234, -/* 0x05d0 */ 176, 49,216,225,188, 34,216,225, 3, 0, 83,227, 16,192,160, 19, -/* 0x05e0 */ 0,192,160, 3, 1, 0, 66,226, 6, 16,160,225, 0, 64,224,227, -/* 0x05f0 */ 9, 80,160,225, 13, 0, 0,234, 0, 48,145,229, 1, 0, 83,227, -/* 0x0600 */ 8, 0, 0, 26, 20, 48,145,229, 0, 0, 83,227, 5, 0, 0, 10, -/* 0x0610 */ 8, 32,145,229, 2, 48,131,224, 3, 0, 85,225, 3, 80,160, 49, -/* 0x0620 */ 2, 0, 84,225, 2, 64,160, 33, 32, 16,129,226, 1, 0, 64,226, -/* 0x0630 */ 0, 0, 80,227,239,255,255,170,255, 78,196,227, 15, 64,196,227, -/* 0x0640 */ 5, 80,100,224,255, 94,133,226, 15, 80,133,226,255, 94,197,227, -/* 0x0650 */ 15, 80,197,227, 4, 0,160,225, 5, 16,160,225, 12, 48,160,225, -/* 0x0660 */ 0, 32,160,227, 43,255,255,235, 0, 64,100,224, 0, 80,133,224, -/* 0x0670 */ 24, 64,141,229, 20, 80,141,229, 24,192,157,229, 52, 48,160,227, -/* 0x0680 */ 147, 12, 12,224, 0, 0,160,227, 32, 80,134,226, 36,192,141,229, -/* 0x0690 */ 28, 0,141,229,171, 0, 0,234, 0, 0, 89,227, 9, 0, 0, 10, -/* 0x06a0 */ 32, 48, 21,229, 6, 0, 83,227, 6, 0, 0, 26, 24, 16,157,229, -/* 0x06b0 */ 24, 32, 21,229, 8, 0,157,229, 2, 32,129,224, 3, 16,160,227, -/* 0x06c0 */ 49,255,255,235,155, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227, -/* 0x06d0 */ 152, 0, 0, 26, 12, 48, 21,229, 0, 0, 83,227,149, 0, 0, 10, -/* 0x06e0 */ 0, 0, 89,227, 18, 0, 0, 10, 28, 48, 21,229, 0, 0, 83,227, -/* 0x06f0 */ 15, 0, 0, 26, 28, 48,152,229, 24, 32, 21,229, 3, 32,130,224, -/* 0x0700 */ 24, 48,157,229, 3, 16,160,227, 2, 32,131,224, 8, 0,157,229, -/* 0x0710 */ 29,255,255,235, 8, 0,157,229, 5, 16,160,227,188, 34,216,225, -/* 0x0720 */ 25,255,255,235, 8, 0,157,229, 4, 16,160,227,186, 34,216,225, -/* 0x0730 */ 21,255,255,235, 8, 48, 21,229,172, 34,159,229, 7, 48, 3,226, -/* 0x0740 */ 3, 49,160,225, 50, 67,160,225, 24,192,157,229, 24, 48, 21,229, -/* 0x0750 */ 3, 48,140,224, 16, 48,141,229, 16, 0,157,229, 16, 48, 21,229, -/* 0x0760 */ 0, 42,160,225, 12, 16, 21,229, 34, 42,160,225, 0, 0, 89,227, -/* 0x0770 */ 44, 48,141,229, 48, 0,141,229, 2,160,131,224, 7,176, 4,226, -/* 0x0780 */ 40, 16,141,229, 0, 96, 98,224, 14, 0, 0, 10, 6, 0,160,225, -/* 0x0790 */ 10, 16,160,225, 3, 32,160,227, 16, 48,160,227,221,254,255,235, -/* 0x07a0 */ 0, 0, 86,225, 82, 0, 0, 26, 92, 32,157,229, 4, 48, 20,226, -/* 0x07b0 */ 2, 48,160, 17, 9, 0,160,225, 44, 16,141,226, 12, 32,157,229, -/* 0x07c0 */ 20,255,255,235, 11, 0, 0,234, 28,192, 21,229, 12,192, 98,224, -/* 0x07d0 */ 4,192,141,229, 12,192,157,229, 6, 0,160,225, 10, 16,160,225, -/* 0x07e0 */ 11, 32,160,225, 18, 48,160,227, 0,192,141,229,193,254,255,235, -/* 0x07f0 */ 0, 0, 86,225, 62, 0, 0, 26, 0, 48,106,226, 3,122,160,225, -/* 0x0800 */ 2, 0, 27,227, 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227, -/* 0x0810 */ 5, 0, 0, 10, 10, 16,134,224, 7, 32,160,225, 0, 48,160,227, -/* 0x0820 */ 1, 32, 82,226, 1, 48,193,228,251,255,255, 26, 0, 0, 89,227, -/* 0x0830 */ 49, 0, 0, 10,181,254,255,235, 32, 48, 21,229, 1, 0, 83,227, -/* 0x0840 */ 32, 0,141,229, 36, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, -/* 0x0850 */ 33, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229, 3, 0, 82,225, -/* 0x0860 */ 24, 16, 21,229, 74, 0, 0, 26, 1, 48,130,224, 24, 0,157,229, -/* 0x0870 */ 3, 48,131,226, 3, 48,128,224, 3, 64,195,227, 0, 48,100,226, -/* 0x0880 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 64, 0, 0,154, -/* 0x0890 */ 10, 0, 0,234, 0,224,160,227, 3, 32,160,227, 0,192,224,227, -/* 0x08a0 */ 14, 0,160,225, 1, 26,160,227, 34, 48,160,227, 0, 80,141,232, -/* 0x08b0 */ 144,254,255,235, 0, 32, 80,226, 60, 0, 0, 26, 6, 0, 0,234, -/* 0x08c0 */ 32, 16,157,229, 36, 49,159,229, 10, 0,132,232, 4, 0,160,225, -/* 0x08d0 */ 8, 16,132,226,132,254,255,235, 62, 0, 0,234, 6, 0,160,225, -/* 0x08e0 */ 10, 16,160,225, 11, 32,160,225,125,254,255,235, 0, 0, 80,227, -/* 0x08f0 */ 1, 0, 0, 10,127, 0,160,227,102,254,255,235, 16, 32,157,229, -/* 0x0900 */ 40,192,157,229, 7, 48,138,224, 12, 16,130,224, 3, 64,134,224, -/* 0x0910 */ 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224, 11, 32,160,225, -/* 0x0920 */ 4, 0,160,225, 16, 48,160,227,122,254,255,235, 0, 0, 84,225, -/* 0x0930 */ 0, 0, 0, 10,254,255,255,234, 28, 0,157,229, 1, 0,128,226, -/* 0x0940 */ 28, 0,141,229, 32, 80,133,226,188, 50,216,225, 28, 16,157,229, -/* 0x0950 */ 3, 0, 81,225, 79,255,255,186, 0, 0, 89,227, 3, 0, 0, 10, -/* 0x0960 */ 176, 49,216,225, 3, 0, 83,227, 20, 0,157, 21, 86,254,255, 27, -/* 0x0970 */ 88, 32,157,229, 0, 0, 82,227, 24, 48,157, 21, 0, 48,130, 21, -/* 0x0980 */ 24, 32,157,229, 24, 0,152,229, 0, 0,130,224, 52,208,141,226, -/* 0x0990 */ 240,143,189,232, 28, 48, 21,229, 0, 0, 83,227, 36,192,157, 5, -/* 0x09a0 */ 12, 48,129, 0, 8, 64,131, 2,196,255,255, 10,184,255,255,234, -/* 0x09b0 */ 32, 16,157,229, 52, 48,159,229, 2, 64,160,225, 10, 0,130,232, -/* 0x09c0 */ 8, 16,130,226, 72,254,255,235, 4, 0,160,225, 8, 16,160,227, -/* 0x09d0 */ 5, 32,160,227, 66,254,255,235, 4, 32,160,225, 8, 0,157,229, -/* 0x09e0 */ 0, 16,160,227,104,254,255,235,187,255,255,234, 64, 98, 81,115, -/* 0x09f0 */ 14,240,160,225,240, 71, 45,233, 12,208, 77,226, 52, 96,141,226, -/* 0x0a00 */ 0,144,160,225, 1,112,160,225, 3,128,160,225, 6, 0,160,225, -/* 0x0a10 */ 44, 16,141,226, 0, 48,160,227, 48,160,157,229, 2, 80,160,225, -/* 0x0a20 */ 52, 64,157,229,123,254,255,235, 60, 48,157,229, 12,224,141,226, -/* 0x0a30 */ 56,192,157,229, 4, 48, 46,229, 12,192,100,224, 6, 32,160,225, -/* 0x0a40 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 56,192,141,229, -/* 0x0a50 */ 0,224,141,229, 52,112,141,229, 4,128,141,229,191,254,255,235, -/* 0x0a60 */ 0, 64,160,225, 9, 16,160,227, 9, 0,160,225, 4, 32,160,225, -/* 0x0a70 */ 69,254,255,235,188, 2,218,225, 52, 32,138,226, 0, 16,160,227, -/* 0x0a80 */ 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26, -/* 0x0a90 */ 8, 48,146,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, -/* 0x0aa0 */ 1, 32,160,225, 0,254,255,235, 0, 80, 80,226, 4, 0, 0,186, -/* 0x0ab0 */ 10, 16,160,225, 2, 44,160,227,247,253,255,235, 2, 12, 80,227, -/* 0x0ac0 */ 1, 0, 0, 10,127, 0,160,227,242,253,255,235, 0,224,160,227, -/* 0x0ad0 */ 14, 32,160,225, 8,192,141,226, 10, 16,160,225, 9, 48,160,225, -/* 0x0ae0 */ 5, 0,160,225, 0, 80,141,232,156,254,255,235, 7, 16,160,227, -/* 0x0af0 */ 0, 64,160,225, 8, 32,157,229, 9, 0,160,225, 34,254,255,235, -/* 0x0b00 */ 5, 0,160,225,234,253,255,235, 3, 0, 0,234, 32, 32,130,226, -/* 0x0b10 */ 1, 16,129,226, 0, 0, 81,225,217,255,255,186, 4, 0,160,225, -/* 0x0b20 */ 12,208,141,226,240,135,189,232 +/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 16, 11, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 7, 0, 4, 0, 34, 0, 0, 0,192, 31,189,232, 13, 16,160,225, +/* 0x0040 */ 1,218, 77,226, 13, 0,160,225,240, 31, 45,233, 4, 48,145,228, +/* 0x0050 */ 0, 0, 83,227, 4, 48,128,228, 4, 0, 0, 26, 0, 64,160,225, +/* 0x0060 */ 4, 48,128,228, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228, +/* 0x0070 */ 10, 0, 0, 26, 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227, +/* 0x0080 */ 12, 0,160,232, 15, 0, 0, 26, 1, 96,160,225, 0,144,160,225, +/* 0x0090 */ 1, 42,160,227, 0, 16,160,225, 14, 0,160,225, 1, 32, 66,226, +/* 0x00a0 */ 254,255,255,235, 1, 10,112,227, 14, 16,160, 33, 14, 0,160, 35, +/* 0x00b0 */ 0, 32,129,224, 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229, +/* 0x00c0 */ 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225, 33, 0, 0, 26, +/* 0x00d0 */ 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229, +/* 0x00e0 */ 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229, 32, 1,160,225, +/* 0x00f0 */ 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226, 4, 48, 35,226, +/* 0x0100 */ 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224, 9, 16,160,225, +/* 0x0110 */ 24, 80,157,229, 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, +/* 0x0120 */ 4, 32, 32,229, 55, 0, 0, 26, 0,208,160,225, 16, 12,189,232, +/* 0x0130 */ 10,220, 77,226, 4,144,154,229, 13,128,160,225, 0,112,154,229, +/* 0x0140 */ 176, 96,143,226, 12,144,137,226,248, 15, 45,233, 15, 0,189,232, +/* 0x0150 */ 254,255,255,235, 20,208,141,226, 10,220,141,226, 16, 0,141,229, +/* 0x0160 */ 92, 16,155,229, 60, 32,155,229, 11, 0,160,225, 2, 16, 65,224, +/* 0x0170 */ 254,255,255,235, 4, 64,157,228, 0, 80,160,227, 48, 0, 45,233, +/* 0x0180 */ 2, 48,160,227, 1, 32,160,227, 1, 26,160,227, 0, 0,160,227, +/* 0x0190 */ 254,255,255,235, 3, 0,189,232,254,255,255,235, 7, 64,189,232, +/* 0x01a0 */ 0, 48,160,227, 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, +/* 0x01b0 */ 0,128,160,227, 0,144,160,227, 0,160,160,227, 0,176,160,227, +/* 0x01c0 */ 1,199, 77,226, 32,112, 29,228, 0,112,141,229, 0,112,157,229, +/* 0x01d0 */ 13, 0, 92,225, 98, 0, 0, 58, 1,215,141,226, 0,112,160,227, +/* 0x01e0 */ 0,192,160,227, 14,240,160,225, 47,112,114,111, 99, 47,115,101, +/* 0x01f0 */ 108,102, 47,101,120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227, +/* 0x0200 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, +/* 0x0210 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, +/* 0x0220 */ 127, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, +/* 0x0230 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,117, 0, 0, 26, +/* 0x0240 */ 14,240,160,225,240, 1,240,231, 14,240,160,225, 1, 0,144,239, +/* 0x0250 */ 3, 0,144,239, 14,240,160,225, 4, 0,144,239, 14,240,160,225, +/* 0x0260 */ 5, 0,144,239, 14,240,160,225, 6, 0,144,239, 14,240,160,225, +/* 0x0270 */ 10, 0,144,239, 14,240,160,225, 20, 0,144,239, 14,240,160,225, +/* 0x0280 */ 45, 0,144,239, 14,240,160,225, 85, 0,144,239, 14,240,160,225, +/* 0x0290 */ 91, 0,144,239, 14,240,160,225,125, 0,144,239, 14,240,160,225, +/* 0x02a0 */ 0, 32,160,227, 2, 0,159,239, 14,240,160,225, 48, 64, 45,233, +/* 0x02b0 */ 16, 80,157,229, 12, 64,157,229, 37, 86,160,225,192, 0,144,239, +/* 0x02c0 */ 48,128,189,232, 60, 0, 31,229, 14,240,160,225, 48, 64, 45,233, +/* 0x02d0 */ 164, 66, 31,229, 0, 80,160,227, 4, 48,131,225, 0, 64,224,227, +/* 0x02e0 */ 160, 0, 0,234, 0,192,160,225, 1, 16, 65,224, 0, 32,160,225, +/* 0x02f0 */ 128, 1,144,224,129, 17,161,224,162, 30,129,224, 0, 32,160,225, +/* 0x0300 */ 0, 2,144,224, 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, +/* 0x0310 */ 0, 4,144,224, 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, +/* 0x0320 */ 0, 8,144,224, 1, 24,161,224, 34, 24,129,224,140, 15, 80,224, +/* 0x0330 */ 172, 16,193,224, 12, 0,144,224, 0, 0,161,226, 14,240,160,225, +/* 0x0340 */ 0, 0, 80,227, 30,255, 47, 1, 0, 48,144,229, 1, 0, 83,225, +/* 0x0350 */ 8, 0,128, 18,195, 0, 0, 26, 4, 32,128,229, 30,255, 47,225, +/* 0x0360 */ 0, 0,159,229, 30,255, 47,225, 0,240,255,255, 0, 48,144,229, +/* 0x0370 */ 2, 0, 83,225, 4, 48,144,229, 4,224, 45,229, 3,192,160, 33, +/* 0x0380 */ 2,224,160,225, 2, 32,160, 33,216, 0, 0, 42,127, 0,160,227, +/* 0x0390 */ 254,255,255,235, 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, +/* 0x03a0 */ 1, 0,114,227, 1,192,140,226, 1, 16,129,226,214, 0, 0, 26, +/* 0x03b0 */ 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, +/* 0x03c0 */ 0, 48,128,229, 4, 32,128,229, 4,240,157,228,240, 64, 45,233, +/* 0x03d0 */ 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, 2,112,160,225, +/* 0x03e0 */ 3, 96,160,225, 48, 1, 0,234, 4, 16,141,226, 5, 0,160,225, +/* 0x03f0 */ 12, 32,160,227,204, 0, 0,235, 4,224,157,229, 0, 0, 94,227, +/* 0x0400 */ 8, 16,157,229,250, 0, 0, 26, 0, 49,159,229, 3, 0, 81,225, +/* 0x0410 */ 252, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227,252, 0, 0, 26, +/* 0x0420 */ 51, 1, 0,234, 0, 0, 81,227,254, 0, 0, 26,127, 0,160,227, +/* 0x0430 */ 254,255,255,235, 14, 0, 81,225,252, 0, 0,138, 0, 48,148,229, +/* 0x0440 */ 3, 0, 94,225,252, 0, 0,138, 14, 0, 81,225, 39, 1, 0, 42, +/* 0x0450 */ 12,192,221,229, 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, +/* 0x0460 */ 16,224,141,229, 0,192,141,229, 15,224,160,225, 23,255, 47,225, +/* 0x0470 */ 0, 0, 80,227,252, 0, 0, 26, 16, 16,157,229, 4, 48,157,229, +/* 0x0480 */ 3, 0, 81,225,252, 0, 0, 26, 13, 32,221,229, 0, 0, 82,227, +/* 0x0490 */ 0, 0, 86, 19, 33, 1, 0, 10, 2, 12, 81,227, 28, 1, 0,138, +/* 0x04a0 */ 0, 48,148,229, 1, 0, 83,225, 33, 1, 0, 26, 2, 48,160,225, +/* 0x04b0 */ 4, 0,148,229, 14, 32,221,229, 15,224,160,225, 22,255, 47,225, +/* 0x04c0 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, +/* 0x04d0 */ 6, 0,133,232, 43, 1, 0,234, 1, 32,160,225, 5, 0,160,225, +/* 0x04e0 */ 4, 16,148,229,204, 0, 0,235, 4, 48,157,229, 6, 0,148,232, +/* 0x04f0 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, +/* 0x0500 */ 0, 0, 83,227,235, 0, 0, 26, 20,208,141,226,240,128,189,232, +/* 0x0510 */ 85, 80, 88, 33,240, 79, 45,233, 1,128,160,225, 28, 16,145,229, +/* 0x0520 */ 52,208, 77,226, 0,144, 82,226, 12, 0,141,229, 8, 48,141,229, +/* 0x0530 */ 1, 96,136,224, 82, 1, 0, 10, 88, 32,157,229, 0, 0,146,229, +/* 0x0540 */ 176, 49,208,225, 52, 16,128,226, 2, 0, 83,227, 40, 48,145, 21, +/* 0x0550 */ 0, 48,160, 3, 0, 0, 99, 16, 8, 80,145, 5, 24, 48,141, 5, +/* 0x0560 */ 20, 48,145,229, 0, 80,160, 17, 24, 0,141, 21, 3, 16,160,225, +/* 0x0570 */ 5, 0,160,225, 5, 48,131,224, 20, 48,141,229,254,255,255,235, +/* 0x0580 */ 124, 1, 0,234,176, 49,216,225,188, 34,216,225, 3, 0, 83,227, +/* 0x0590 */ 16,192,160, 19, 0,192,160, 3, 1, 0, 66,226, 6, 16,160,225, +/* 0x05a0 */ 0, 64,224,227, 9, 80,160,225,106, 1, 0,234, 0, 48,145,229, +/* 0x05b0 */ 1, 0, 83,227,104, 1, 0, 26, 20, 48,145,229, 0, 0, 83,227, +/* 0x05c0 */ 104, 1, 0, 10, 8, 32,145,229, 2, 48,131,224, 3, 0, 85,225, +/* 0x05d0 */ 3, 80,160, 49, 2, 0, 84,225, 2, 64,160, 33, 32, 16,129,226, +/* 0x05e0 */ 1, 0, 64,226, 0, 0, 80,227, 92, 1, 0,170,255, 78,196,227, +/* 0x05f0 */ 15, 64,196,227, 5, 80,100,224,255, 94,133,226, 15, 80,133,226, +/* 0x0600 */ 255, 94,197,227, 15, 80,197,227, 4, 0,160,225, 5, 16,160,225, +/* 0x0610 */ 12, 48,160,225, 0, 32,160,227,254,255,255,235, 0, 64,100,224, +/* 0x0620 */ 0, 80,133,224, 24, 64,141,229, 20, 80,141,229, 24,192,157,229, +/* 0x0630 */ 52, 48,160,227,147, 12, 12,224, 0, 0,160,227, 32, 80,134,226, +/* 0x0640 */ 36,192,141,229, 28, 0,141,229, 50, 2, 0,234, 0, 0, 89,227, +/* 0x0650 */ 144, 1, 0, 10, 32, 48, 21,229, 6, 0, 83,227,144, 1, 0, 26, +/* 0x0660 */ 24, 32, 21,229, 24, 48,157,229, 8, 0,157,229, 2, 32,131,224, +/* 0x0670 */ 3, 16,160,227,193, 0, 0,235, 46, 2, 0,234, 32, 48, 21,229, +/* 0x0680 */ 1, 0, 83,227, 46, 2, 0, 26, 12, 48, 21,229, 0, 0, 83,227, +/* 0x0690 */ 46, 2, 0, 10, 0, 0, 89,227,171, 1, 0, 10, 28, 48, 21,229, +/* 0x06a0 */ 0, 0, 83,227,171, 1, 0, 26, 28, 48,152,229, 24, 32, 21,229, +/* 0x06b0 */ 24,192,157,229, 3, 32,130,224, 2, 32,140,224, 3, 16,160,227, +/* 0x06c0 */ 8, 0,157,229,193, 0, 0,235, 8, 0,157,229, 5, 16,160,227, +/* 0x06d0 */ 188, 34,216,225,193, 0, 0,235, 8, 0,157,229, 4, 16,160,227, +/* 0x06e0 */ 186, 34,216,225,193, 0, 0,235, 8, 16, 21,229,180, 34,159,229, +/* 0x06f0 */ 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225, 24, 0,157,229, +/* 0x0700 */ 24, 48, 21,229, 3, 48,128,224, 16, 48,141,229, 16,192,157,229, +/* 0x0710 */ 16, 48, 21,229, 12, 42,160,225, 12, 0, 21,229, 34, 42,160,225, +/* 0x0720 */ 0, 0, 89,227, 44, 48,141,229, 48,192,141,229, 2,160,131,224, +/* 0x0730 */ 7,176, 4,226, 40, 0,141,229, 12, 96, 98,224,210, 1, 0, 10, +/* 0x0740 */ 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19, 6, 0,160,225, +/* 0x0750 */ 10, 16,160,225, 16, 48,160,227,254,255,255,235, 0, 0, 86,225, +/* 0x0760 */ 29, 2, 0, 26, 92, 32,157,229, 4, 48, 20,226, 2, 48,160, 17, +/* 0x0770 */ 9, 0,160,225, 44, 16,141,226, 12, 32,157,229,228, 0, 0,235, +/* 0x0780 */ 222, 1, 0,234, 28,192, 21,229, 12,192, 98,224, 4,192,141,229, +/* 0x0790 */ 12,192,157,229, 6, 0,160,225, 10, 16,160,225, 11, 32,160,225, +/* 0x07a0 */ 18, 48,160,227, 0,192,141,229,254,255,255,235, 0, 0, 86,225, +/* 0x07b0 */ 29, 2, 0, 26, 0, 48,106,226, 3,122,160,225, 2, 0, 27,227, +/* 0x07c0 */ 39,122,160,225,235, 1, 0, 10, 0, 0, 87,227,235, 1, 0, 10, +/* 0x07d0 */ 10, 16,134,224, 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, +/* 0x07e0 */ 1, 48,193,228,231, 1, 0, 26, 0, 0, 89,227, 31, 2, 0, 10, +/* 0x07f0 */ 254,255,255,235, 32, 48, 21,229, 1, 0, 83,227, 32, 0,141,229, +/* 0x0800 */ 23, 2, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 23, 2, 0, 10, +/* 0x0810 */ 12, 32, 21,229, 16, 48, 21,229, 3, 0, 82,225, 24, 16, 21,229, +/* 0x0820 */ 69, 2, 0, 26, 1, 48,130,224, 24, 0,157,229, 3, 48,131,226, +/* 0x0830 */ 3, 48,128,224, 3, 64,195,227, 0, 48,100,226, 3, 58,160,225, +/* 0x0840 */ 35, 58,160,225, 7, 0, 83,227, 69, 2, 0,154, 16, 2, 0,234, +/* 0x0850 */ 0,224,160,227, 7, 32,160,227, 0,192,224,227, 14, 0,160,225, +/* 0x0860 */ 1, 26,160,227, 34, 48,160,227, 0, 80,141,232,254,255,255,235, +/* 0x0870 */ 0, 32, 80,226, 76, 2, 0, 26, 23, 2, 0,234, 32, 32,157,229, +/* 0x0880 */ 36, 49,159,229, 12, 0,132,232, 4, 0,160,225, 8, 16,132,226, +/* 0x0890 */ 254,255,255,235, 86, 2, 0,234, 6, 0,160,225, 10, 16,160,225, +/* 0x08a0 */ 11, 32,160,225,254,255,255,235, 0, 0, 80,227, 31, 2, 0, 10, +/* 0x08b0 */ 127, 0,160,227,254,255,255,235, 16,192,157,229, 40, 0,157,229, +/* 0x08c0 */ 7, 48,138,224, 0, 16,140,224, 3, 64,134,224, 1, 0, 84,225, +/* 0x08d0 */ 46, 2, 0, 42, 1, 16,100,224, 11, 32,160,225, 4, 0,160,225, +/* 0x08e0 */ 16, 48,160,227,254,255,255,235, 0, 0, 84,225, 46, 2, 0, 10, +/* 0x08f0 */ 45, 2, 0,234, 28, 32,157,229, 1, 32,130,226, 28, 32,141,229, +/* 0x0900 */ 32, 80,133,226,188, 50,216,225, 28,192,157,229, 3, 0, 92,225, +/* 0x0910 */ 132, 1, 0,186, 0, 0, 89,227, 60, 2, 0, 10,176, 49,216,225, +/* 0x0920 */ 3, 0, 83,227, 20, 0,157, 21,254,255,255, 27, 88, 0,157,229, +/* 0x0930 */ 0, 0, 80,227, 24, 32,157, 21, 0, 32,128, 21, 24, 48,157,229, +/* 0x0940 */ 24, 0,152,229, 0, 0,131,224, 52,208,141,226,240,143,189,232, +/* 0x0950 */ 28, 48, 21,229, 0, 0, 83,227, 36,192,157, 5, 12, 48,129, 0, +/* 0x0960 */ 8, 64,131, 2, 16, 2, 0, 10, 5, 2, 0,234, 2, 64,160,225, +/* 0x0970 */ 52, 48,159,229, 32, 32,157,229, 8, 16,132,226, 12, 0,132,232, +/* 0x0980 */ 254,255,255,235, 4, 0,160,225, 8, 16,160,227, 5, 32,160,227, +/* 0x0990 */ 254,255,255,235, 4, 32,160,225, 8, 0,157,229, 0, 16,160,227, +/* 0x09a0 */ 193, 0, 0,235, 23, 2, 0,234, 64, 98, 81,115, 14,240,160,225, +/* 0x09b0 */ 240, 71, 45,233, 12,208, 77,226, 52, 96,141,226, 0,144,160,225, +/* 0x09c0 */ 1,112,160,225, 3,128,160,225, 6, 0,160,225, 44, 16,141,226, +/* 0x09d0 */ 0, 48,160,227, 48,160,157,229, 2, 80,160,225, 52, 64,157,229, +/* 0x09e0 */ 228, 0, 0,235, 60, 48,157,229, 12,224,141,226, 56,192,157,229, +/* 0x09f0 */ 4, 48, 46,229, 12,192,100,224, 6, 32,160,225, 10, 16,160,225, +/* 0x0a00 */ 9, 48,160,225, 5, 0,160,225, 56,192,141,229, 0,224,141,229, +/* 0x0a10 */ 52,112,141,229, 4,128,141,229, 54, 1, 0,235, 0, 64,160,225, +/* 0x0a20 */ 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,193, 0, 0,235, +/* 0x0a30 */ 188, 2,218,225, 52, 32,138,226, 0, 16,160,227,165, 2, 0,234, +/* 0x0a40 */ 0, 48,146,229, 3, 0, 83,227,163, 2, 0, 26, 8, 48,146,229, +/* 0x0a50 */ 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, 1, 32,160,225, +/* 0x0a60 */ 254,255,255,235, 0, 80, 80,226,145, 2, 0,186, 10, 16,160,225, +/* 0x0a70 */ 2, 44,160,227,254,255,255,235, 2, 12, 80,227,147, 2, 0, 10, +/* 0x0a80 */ 127, 0,160,227,254,255,255,235, 0,224,160,227, 14, 32,160,225, +/* 0x0a90 */ 8,192,141,226, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, +/* 0x0aa0 */ 0, 80,141,232, 54, 1, 0,235, 7, 16,160,227, 0, 64,160,225, +/* 0x0ab0 */ 8, 32,157,229, 9, 0,160,225,193, 0, 0,235, 5, 0,160,225, +/* 0x0ac0 */ 254,255,255,235,167, 2, 0,234, 32, 32,130,226, 1, 16,129,226, +/* 0x0ad0 */ 0, 0, 81,225,129, 2, 0,186, 4, 0,160,225, 12,208,141,226, +/* 0x0ae0 */ 240,135,189,232, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116, +/* 0x0af0 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46, +/* 0x0b00 */ 114,101,108, 46,116,101,120,116, 0, 46, 98,115,115, 0, 0, 0, +/* 0x0b10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0b20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0b30 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, +/* 0x0b40 */ 7, 0, 0, 0, 64,128, 0, 0, 52, 0, 0, 0,176, 10, 0, 0, +/* 0x0b50 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x0b60 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0b70 */ 88, 21, 0, 0,112, 3, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, +/* 0x0b80 */ 4, 0, 0, 0, 8, 0, 0, 0, 37, 0, 0, 0, 8, 0, 0, 0, +/* 0x0b90 */ 3, 0, 0, 0, 0, 0, 0, 0,228, 10, 0, 0, 0, 0, 0, 0, +/* 0x0ba0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0bb0 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0bc0 */ 228, 10, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0bd0 */ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, +/* 0x0be0 */ 0, 0, 0, 0, 0, 0, 0, 0, 40, 12, 0, 0, 0, 6, 0, 0, +/* 0x0bf0 */ 6, 0, 0, 0, 76, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, +/* 0x0c00 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c10 */ 40, 18, 0, 0, 45, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c20 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c40 */ 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c50 */ 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c60 */ 0, 0, 0, 0, 4, 0,241,255, 30, 0, 0, 0, 0, 0, 0, 0, +/* 0x0c70 */ 0, 0, 0, 0, 2, 0, 1, 0, 33, 0, 0, 0, 0, 0,144, 0, +/* 0x0c80 */ 0, 0, 0, 0, 0, 0,241,255, 51, 0, 0, 0, 52, 0, 0, 0, +/* 0x0c90 */ 0, 0, 0, 0, 0, 0,241,255, 65, 0, 0, 0, 32, 0, 0, 0, +/* 0x0ca0 */ 0, 0, 0, 0, 0, 0,241,255, 79, 0, 0, 0, 8, 0, 0, 0, +/* 0x0cb0 */ 0, 0, 0, 0, 0, 0,241,255, 87, 0, 0, 0, 12, 0, 0, 0, +/* 0x0cc0 */ 0, 0, 0, 0, 0, 0,241,255, 97, 0, 0, 0, 12, 0, 0, 0, +/* 0x0cd0 */ 0, 0, 0, 0, 0, 0,241,255,107, 0, 0, 0, 12, 0, 0, 0, +/* 0x0ce0 */ 0, 0, 0, 0, 0, 0,241,255,117, 0, 0, 0, 0, 0, 0, 0, +/* 0x0cf0 */ 0, 0, 0, 0, 0, 0,241,255,124, 0, 0, 0, 4, 0, 0, 0, +/* 0x0d00 */ 0, 0, 0, 0, 0, 0,241,255,131, 0, 0, 0, 8, 0, 0, 0, +/* 0x0d10 */ 0, 0, 0, 0, 0, 0,241,255,140, 0, 0, 0, 32, 0, 0, 0, +/* 0x0d20 */ 0, 0, 0, 0, 0, 0,241,255,154, 0, 0, 0, 2, 0, 0, 0, +/* 0x0d30 */ 0, 0, 0, 0, 0, 0,241,255,166, 0, 0, 0, 16, 0, 0, 0, +/* 0x0d40 */ 0, 0, 0, 0, 0, 0,241,255,176, 0, 0, 0, 1, 0, 0, 0, +/* 0x0d50 */ 0, 0, 0, 0, 0, 0,241,255,186, 0, 0, 0, 0, 0, 0, 0, +/* 0x0d60 */ 0, 0, 0, 0, 0, 0,241,255,195, 0, 0, 0, 12, 0, 0, 0, +/* 0x0d70 */ 0, 0, 0, 0, 0, 0,241,255,206, 0, 0, 0, 0, 16, 0, 0, +/* 0x0d80 */ 0, 0, 0, 0, 0, 0,241,255,216, 0, 0, 0, 0, 16, 0, 0, +/* 0x0d90 */ 0, 0, 0, 0, 0, 0,241,255,224, 0, 0, 0, 0, 16, 0, 0, +/* 0x0da0 */ 0, 0, 0, 0, 0, 0,241,255,233, 0, 0, 0, 0, 0, 0, 0, +/* 0x0db0 */ 0, 0, 0, 0, 0, 0, 1, 0,243, 0, 0, 0, 12, 0, 0, 0, +/* 0x0dc0 */ 0, 0, 0, 0, 0, 0,241,255,249, 0, 0, 0, 4, 0, 0, 0, +/* 0x0dd0 */ 0, 0, 0, 0, 0, 0, 1, 0, 4, 1, 0, 0, 0, 0, 0, 0, +/* 0x0de0 */ 0, 0, 0, 0, 0, 0,241,255, 11, 1, 0, 0, 4, 0, 0, 0, +/* 0x0df0 */ 0, 0, 0, 0, 0, 0,241,255, 18, 1, 0, 0, 8, 0, 0, 0, +/* 0x0e00 */ 0, 0, 0, 0, 0, 0,241,255, 28, 1, 0, 0, 12, 0, 0, 0, +/* 0x0e10 */ 0, 0, 0, 0, 0, 0,241,255, 33, 1, 0, 0, 16, 0, 0, 0, +/* 0x0e20 */ 0, 0, 0, 0, 0, 0,241,255, 40, 1, 0, 0, 20, 0, 0, 0, +/* 0x0e30 */ 0, 0, 0, 0, 0, 0,241,255, 47, 1, 0, 0, 24, 0, 0, 0, +/* 0x0e40 */ 0, 0, 0, 0, 0, 0,241,255, 55, 1, 0, 0, 24, 0, 0, 0, +/* 0x0e50 */ 0, 0, 0, 0, 0, 0,241,255, 64, 1, 0, 0, 28, 0, 0, 0, +/* 0x0e60 */ 0, 0, 0, 0, 0, 0,241,255, 72, 1, 0, 0,124, 0, 0, 0, +/* 0x0e70 */ 0, 0, 0, 0, 0, 0, 1, 0, 80, 1, 0, 0, 12, 0, 0, 0, +/* 0x0e80 */ 0, 0, 0, 0, 0, 0,241,255, 88, 1, 0, 0,196, 1, 0, 0, +/* 0x0e90 */ 0, 0, 0, 0, 0, 0, 1, 0, 99, 1, 0, 0,144, 1, 0, 0, +/* 0x0ea0 */ 0, 0, 0, 0, 0, 0, 1, 0,105, 1, 0, 0,180, 1, 0, 0, +/* 0x0eb0 */ 0, 0, 0, 0, 0, 0, 1, 0,119, 1, 0, 0,194, 1, 0, 0, +/* 0x0ec0 */ 0, 0, 0, 0, 0, 0, 1, 0,135, 1, 0, 0,220, 1, 0, 0, +/* 0x0ed0 */ 0, 0, 0, 0, 0, 0, 1, 0,143, 1, 0, 0, 4, 2, 0, 0, +/* 0x0ee0 */ 0, 0, 0, 0, 0, 0, 1, 0,151, 1, 0, 0, 1, 0,144, 0, +/* 0x0ef0 */ 0, 0, 0, 0, 0, 0,241,255,161, 1, 0, 0, 3, 0,144, 0, +/* 0x0f00 */ 0, 0, 0, 0, 0, 0,241,255,171, 1, 0, 0, 4, 0,144, 0, +/* 0x0f10 */ 0, 0, 0, 0, 0, 0,241,255,182, 1, 0, 0, 5, 0,144, 0, +/* 0x0f20 */ 0, 0, 0, 0, 0, 0,241,255,192, 1, 0, 0, 6, 0,144, 0, +/* 0x0f30 */ 0, 0, 0, 0, 0, 0,241,255,203, 1, 0, 0, 10, 0,144, 0, +/* 0x0f40 */ 0, 0, 0, 0, 0, 0,241,255,215, 1, 0, 0, 20, 0,144, 0, +/* 0x0f50 */ 0, 0, 0, 0, 0, 0,241,255,227, 1, 0, 0, 45, 0,144, 0, +/* 0x0f60 */ 0, 0, 0, 0, 0, 0,241,255,236, 1, 0, 0, 85, 0,144, 0, +/* 0x0f70 */ 0, 0, 0, 0, 0, 0,241,255,250, 1, 0, 0,192, 0,144, 0, +/* 0x0f80 */ 0, 0, 0, 0, 0, 0,241,255, 5, 2, 0, 0,125, 0,144, 0, +/* 0x0f90 */ 0, 0, 0, 0, 0, 0,241,255, 19, 2, 0, 0, 91, 0,144, 0, +/* 0x0fa0 */ 0, 0, 0, 0, 0, 0,241,255, 31, 2, 0, 0, 0, 0,159, 0, +/* 0x0fb0 */ 0, 0, 0, 0, 0, 0,241,255, 45, 2, 0, 0, 2, 0,159, 0, +/* 0x0fc0 */ 0, 0, 0, 0, 0, 0,241,255, 65, 2, 0, 0, 16, 2, 0, 0, +/* 0x0fd0 */ 0, 0, 0, 0, 1, 0, 1, 0, 30, 0, 0, 0, 20, 2, 0, 0, +/* 0x0fe0 */ 0, 0, 0, 0, 2, 0, 1, 0, 68, 2, 0, 0,136, 2, 0, 0, +/* 0x0ff0 */ 0, 0, 0, 0, 0, 0, 1, 0, 76, 2, 0, 0, 0, 0, 0, 0, +/* 0x1000 */ 0, 0, 0, 0, 4, 0,241,255,101, 2, 0, 0, 12, 3, 0, 0, +/* 0x1010 */ 32, 0, 0, 0, 2, 0, 1, 0, 30, 0, 0, 0, 12, 3, 0, 0, +/* 0x1020 */ 0, 0, 0, 0, 2, 0, 1, 0, 65, 2, 0, 0, 52, 3, 0, 0, +/* 0x1030 */ 0, 0, 0, 0, 1, 0, 1, 0,109, 2, 0, 0, 56, 3, 0, 0, +/* 0x1040 */ 96, 0, 0, 0, 2, 0, 1, 0, 30, 0, 0, 0, 56, 3, 0, 0, +/* 0x1050 */ 0, 0, 0, 0, 2, 0, 1, 0,115, 2, 0, 0,152, 3, 0, 0, +/* 0x1060 */ 72, 1, 0, 0, 2, 0, 1, 0, 65, 2, 0, 0,220, 4, 0, 0, +/* 0x1070 */ 0, 0, 0, 0, 1, 0, 1, 0,128, 2, 0, 0,224, 4, 0, 0, +/* 0x1080 */ 156, 4, 0, 0, 2, 0, 1, 0, 30, 0, 0, 0,224, 4, 0, 0, +/* 0x1090 */ 0, 0, 0, 0, 2, 0, 1, 0, 65, 2, 0, 0,116, 9, 0, 0, +/* 0x10a0 */ 0, 0, 0, 0, 1, 0, 1, 0, 30, 0, 0, 0,124, 9, 0, 0, +/* 0x10b0 */ 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x10c0 */ 0, 0, 0, 0, 4, 0,241,255, 65, 2, 0, 0, 64,128, 0, 0, +/* 0x10d0 */ 0, 0, 0, 0, 0, 0, 1, 0, 65, 2, 0, 0, 76,131, 0, 0, +/* 0x10e0 */ 0, 0, 0, 0, 0, 0, 1, 0,136, 2, 0, 0, 44, 3, 0, 0, +/* 0x10f0 */ 12, 0, 0, 0, 18, 0, 1, 0,150, 2, 0, 0, 92, 2, 0, 0, +/* 0x1100 */ 0, 0, 0, 0, 16, 0, 1, 0,157, 2, 0, 0,144, 2, 0, 0, +/* 0x1110 */ 0, 0, 0, 0, 16, 0, 1, 0,172, 2, 0, 0, 68, 2, 0, 0, +/* 0x1120 */ 0, 0, 0, 0, 16, 0, 1, 0,179, 2, 0, 0, 84, 2, 0, 0, +/* 0x1130 */ 0, 0, 0, 0, 16, 0, 1, 0,188, 2, 0, 0,176, 2, 0, 0, +/* 0x1140 */ 0, 0, 0, 0, 16, 0, 1, 0,198, 2, 0, 0,120, 2, 0, 0, +/* 0x1150 */ 0, 0, 0, 0, 16, 0, 1, 0,203, 2, 0, 0,108, 2, 0, 0, +/* 0x1160 */ 0, 0, 0, 0, 16, 0, 1, 0,217, 2, 0, 0,152, 2, 0, 0, +/* 0x1170 */ 0, 0, 0, 0, 16, 0, 1, 0,231, 2, 0, 0, 36, 2, 0, 0, +/* 0x1180 */ 0, 0, 0, 0, 16, 0, 1, 0,237, 2, 0, 0, 28, 2, 0, 0, +/* 0x1190 */ 0, 0, 0, 0, 16, 0, 1, 0,242, 2, 0, 0, 60, 2, 0, 0, +/* 0x11a0 */ 0, 0, 0, 0, 16, 0, 1, 0,249, 2, 0, 0, 16, 2, 0, 0, +/* 0x11b0 */ 0, 0, 0, 0, 16, 0, 1, 0, 1, 3, 0, 0, 24, 2, 0, 0, +/* 0x11c0 */ 0, 0, 0, 0, 16, 0, 1, 0, 6, 3, 0, 0,124, 9, 0, 0, +/* 0x11d0 */ 52, 1, 0, 0, 18, 0, 1, 0, 15, 3, 0, 0, 76, 2, 0, 0, +/* 0x11e0 */ 0, 0, 0, 0, 16, 0, 1, 0, 19, 3, 0, 0, 44, 2, 0, 0, +/* 0x11f0 */ 0, 0, 0, 0, 16, 0, 1, 0, 24, 3, 0, 0,176, 2, 0, 0, +/* 0x1200 */ 0, 0, 0, 0, 16, 0, 1, 0, 30, 3, 0, 0,100, 2, 0, 0, +/* 0x1210 */ 0, 0, 0, 0, 16, 0, 1, 0, 39, 3, 0, 0, 52, 2, 0, 0, +/* 0x1220 */ 0, 0, 0, 0, 16, 0, 1, 0, 0,115,114, 99, 47, 97,114,109, +/* 0x1230 */ 46,118, 52, 97, 45,108,105,110,117,120, 46,101,108,102, 45,102, +/* 0x1240 */ 111,108,100, 46, 83, 0, 36, 97, 0, 95, 95, 78, 82, 95, 83, 89, +/* 0x1250 */ 83, 67, 65, 76, 76, 95, 66, 65, 83, 69, 0,115,122, 95, 69,108, +/* 0x1260 */ 102, 51, 50, 95, 69,104,100,114, 0,115,122, 95, 69,108,102, 51, +/* 0x1270 */ 50, 95, 80,104,100,114, 0,112, 95,118, 97,100,100,114, 0,115, +/* 0x1280 */ 122, 95,108, 95,105,110,102,111, 0,115,122, 95,112, 95,105,110, +/* 0x1290 */ 102,111, 0,115,122, 95, 98, 95,105,110,102,111, 0,115,122, 95, +/* 0x12a0 */ 117,110, 99, 0,115,122, 95, 99,112,114, 0, 98, 95,109,101,116, +/* 0x12b0 */ 104,111,100, 0, 77, 65, 80, 95, 65, 78, 79, 78, 89, 77, 79, 85, +/* 0x12c0 */ 83, 0, 77, 65, 80, 95, 80, 82, 73, 86, 65, 84, 69, 0, 77, 65, +/* 0x12d0 */ 80, 95, 70, 73, 88, 69, 68, 0, 80, 82, 79, 84, 95, 82, 69, 65, +/* 0x12e0 */ 68, 0, 79, 95, 82, 68, 79, 78, 76, 89, 0, 80, 65, 71, 69, 95, +/* 0x12f0 */ 83, 72, 73, 70, 84, 0, 80, 65, 71, 69, 95, 83, 73, 90, 69, 0, +/* 0x1300 */ 80, 65, 84, 72, 77, 65, 88, 0, 80, 65, 84, 72, 95, 77, 65, 88, +/* 0x1310 */ 0,109,102,108,103, 95,100, 97,116, 97, 0, 83, 80, 95,102,100, +/* 0x1320 */ 0,102,111,108,100, 95, 98,101,103,105,110, 0, 70, 95, 76, 69, +/* 0x1330 */ 78, 88, 0, 70, 95, 65, 68, 82, 88, 0, 70, 95,101,108,102, 97, +/* 0x1340 */ 100,100,114, 0, 70, 95,102,100, 0, 70, 95, 65, 68, 82, 85, 0, +/* 0x1350 */ 70, 95, 76, 69, 78, 85, 0, 70, 95,102, 95,101,120,112, 0, 70, +/* 0x1360 */ 95,101, 95, 97,117,120,118, 0, 70, 95,101,110,116,114,121, 0, +/* 0x1370 */ 108,105,110,107, 95,111,107, 0, 70, 95,100,101,108,116, 97, 0, +/* 0x1380 */ 102, 95,117,110,102,105,108,116,101,114, 0,115,119,101,101,112, +/* 0x1390 */ 0,112,114,111, 99, 95,115,101,108,102, 95,101,120,101, 0,112, +/* 0x13a0 */ 114,111, 99, 95,115,101,108,102, 95, 97,108,105,103,110, 0,116, +/* 0x13b0 */ 111,112, 95,117,110,102, 0,116,115,116, 95,117,110,102, 0, 95, +/* 0x13c0 */ 95, 78, 82, 95,101,120,105,116, 0, 95, 95, 78, 82, 95,114,101, +/* 0x13d0 */ 97,100, 0, 95, 95, 78, 82, 95,119,114,105,116,101, 0, 95, 95, +/* 0x13e0 */ 78, 82, 95,111,112,101,110, 0, 95, 95, 78, 82, 95, 99,108,111, +/* 0x13f0 */ 115,101, 0, 95, 95, 78, 82, 95,117,110,108,105,110,107, 0, 95, +/* 0x1400 */ 95, 78, 82, 95,103,101,116,112,105,100, 0, 95, 95, 78, 82, 95, +/* 0x1410 */ 98,114,107, 0, 95, 95, 78, 82, 95,114,101, 97,100,108,105,110, +/* 0x1420 */ 107, 0, 95, 95, 78, 82, 95,109,109, 97,112, 50, 0, 95, 95, 78, +/* 0x1430 */ 82, 95,109,112,114,111,116,101, 99,116, 0, 95, 95, 78, 82, 95, +/* 0x1440 */ 109,117,110,109, 97,112, 0, 95, 95, 65, 82, 77, 95, 78, 82, 95, +/* 0x1450 */ 66, 65, 83, 69, 0, 95, 95, 65, 82, 77, 95, 78, 82, 95, 99, 97, +/* 0x1460 */ 99,104,101,102,108,117,115,104, 0, 36,100, 0,109,109, 97,112, +/* 0x1470 */ 95,100,111, 0, 97,114,109, 46,118, 52, 97, 45,108,105,110,117, +/* 0x1480 */ 120, 46,101,108,102, 45,109, 97,105,110, 46, 99, 0, 97,117,120, +/* 0x1490 */ 118, 95,117,112, 0,120,114,101, 97,100, 0,117,110,112, 97, 99, +/* 0x14a0 */ 107, 69,120,116,101,110,116, 0,100,111, 95,120,109, 97,112, 0, +/* 0x14b0 */ 103,101,116, 95,112, 97,103,101, 95,109, 97,115,107, 0,109,117, +/* 0x14c0 */ 110,109, 97,112, 0,103,101,116, 95,115,121,115, 95,109,117,110, +/* 0x14d0 */ 109, 97,112, 0,103,101,116,112,105,100, 0,114,101, 97,100,108, +/* 0x14e0 */ 105,110,107, 0, 95, 95,117,100,105,118,115,105, 51, 0,109,109, +/* 0x14f0 */ 97,112, 0, 95, 95, 99,108,101, 97,114, 95, 99, 97, 99,104,101, +/* 0x1500 */ 0,109,109, 97,112, 95,112,114,105,118, 97,110,111,110, 0,119, +/* 0x1510 */ 114,105,116,101, 0,114,101, 97,100, 0,117,110,108,105,110,107, +/* 0x1520 */ 0,109,121, 95, 98,107,112,116, 0,101,120,105,116, 0,117,112, +/* 0x1530 */ 120, 95,109, 97,105,110, 0, 98,114,107, 0,111,112,101,110, 0, +/* 0x1540 */ 100,105,118, 49, 48, 0,109,112,114,111,116,101, 99,116, 0, 99, +/* 0x1550 */ 108,111,115,101, 0, 0, 0, 0, 36, 0, 0, 0, 1, 1, 0, 0, +/* 0x1560 */ 60, 0, 0, 0, 1, 1, 0, 0, 80, 0, 0, 0, 1, 1, 0, 0, +/* 0x1570 */ 108, 0, 0, 0, 1, 80, 0, 0,152, 0, 0, 0, 1, 1, 0, 0, +/* 0x1580 */ 240, 0, 0, 0, 1, 1, 0, 0, 28, 1, 0, 0, 1, 90, 0, 0, +/* 0x1590 */ 60, 1, 0, 0, 1, 77, 0, 0, 92, 1, 0, 0, 1, 82, 0, 0, +/* 0x15a0 */ 100, 1, 0, 0, 1, 95, 0, 0,160, 1, 0, 0, 1, 1, 0, 0, +/* 0x15b0 */ 236, 1, 0, 0, 1, 1, 0, 0, 8, 2, 0, 0, 1, 1, 0, 0, +/* 0x15c0 */ 172, 2, 0, 0, 1, 1, 0, 0, 32, 3, 0, 0, 1, 1, 0, 0, +/* 0x15d0 */ 84, 3, 0, 0, 1, 1, 0, 0, 92, 3, 0, 0, 1, 89, 0, 0, +/* 0x15e0 */ 120, 3, 0, 0, 1, 1, 0, 0,176, 3, 0, 0, 1, 1, 0, 0, +/* 0x15f0 */ 192, 3, 0, 0, 1, 1, 0, 0,208, 3, 0, 0, 1, 1, 0, 0, +/* 0x1600 */ 220, 3, 0, 0, 1, 1, 0, 0,232, 3, 0, 0, 1, 1, 0, 0, +/* 0x1610 */ 236, 3, 0, 0, 1, 1, 0, 0,244, 3, 0, 0, 1, 1, 0, 0, +/* 0x1620 */ 252, 3, 0, 0, 1, 89, 0, 0, 4, 4, 0, 0, 1, 1, 0, 0, +/* 0x1630 */ 16, 4, 0, 0, 1, 1, 0, 0, 24, 4, 0, 0, 1, 1, 0, 0, +/* 0x1640 */ 64, 4, 0, 0, 1, 1, 0, 0, 80, 4, 0, 0, 1, 1, 0, 0, +/* 0x1650 */ 96, 4, 0, 0, 1, 1, 0, 0,104, 4, 0, 0, 1, 1, 0, 0, +/* 0x1660 */ 116, 4, 0, 0, 1, 1, 0, 0,160, 4, 0, 0, 1, 1, 0, 0, +/* 0x1670 */ 176, 4, 0, 0, 1, 1, 0, 0,208, 4, 0, 0, 1, 1, 0, 0, +/* 0x1680 */ 0, 5, 0, 0, 1, 1, 0, 0, 72, 5, 0, 0, 1, 77, 0, 0, +/* 0x1690 */ 76, 5, 0, 0, 1, 1, 0, 0,116, 5, 0, 0, 1, 1, 0, 0, +/* 0x16a0 */ 128, 5, 0, 0, 1, 1, 0, 0,140, 5, 0, 0, 1, 1, 0, 0, +/* 0x16b0 */ 180, 5, 0, 0, 1, 1, 0, 0,228, 5, 0, 0, 1, 84, 0, 0, +/* 0x16c0 */ 20, 6, 0, 0, 1, 1, 0, 0, 28, 6, 0, 0, 1, 1, 0, 0, +/* 0x16d0 */ 40, 6, 0, 0, 1, 1, 0, 0, 64, 6, 0, 0, 1, 1, 0, 0, +/* 0x16e0 */ 68, 6, 0, 0, 1, 1, 0, 0, 80, 6, 0, 0, 1, 1, 0, 0, +/* 0x16f0 */ 92, 6, 0, 0, 1, 1, 0, 0,100, 6, 0, 0, 1, 1, 0, 0, +/* 0x1700 */ 112, 6, 0, 0, 1, 1, 0, 0,144, 6, 0, 0, 1, 1, 0, 0, +/* 0x1710 */ 160, 6, 0, 0, 1, 1, 0, 0,176, 6, 0, 0, 1, 1, 0, 0, +/* 0x1720 */ 8, 7, 0, 0, 1, 1, 0, 0, 36, 7, 0, 0, 1, 84, 0, 0, +/* 0x1730 */ 44, 7, 0, 0, 1, 1, 0, 0, 72, 7, 0, 0, 1, 1, 0, 0, +/* 0x1740 */ 76, 7, 0, 0, 1, 1, 0, 0,116, 7, 0, 0, 1, 82, 0, 0, +/* 0x1750 */ 124, 7, 0, 0, 1, 1, 0, 0,144, 7, 0, 0, 1, 1, 0, 0, +/* 0x1760 */ 152, 7, 0, 0, 1, 1, 0, 0,176, 7, 0, 0, 1, 1, 0, 0, +/* 0x1770 */ 184, 7, 0, 0, 1, 1, 0, 0,188, 7, 0, 0, 1, 78, 0, 0, +/* 0x1780 */ 204, 7, 0, 0, 1, 1, 0, 0,216, 7, 0, 0, 1, 1, 0, 0, +/* 0x1790 */ 236, 7, 0, 0, 1, 1, 0, 0, 20, 8, 0, 0, 1, 1, 0, 0, +/* 0x17a0 */ 24, 8, 0, 0, 1, 1, 0, 0, 56, 8, 0, 0, 1, 82, 0, 0, +/* 0x17b0 */ 64, 8, 0, 0, 1, 1, 0, 0, 68, 8, 0, 0, 1, 1, 0, 0, +/* 0x17c0 */ 92, 8, 0, 0, 1, 83, 0, 0, 96, 8, 0, 0, 1, 1, 0, 0, +/* 0x17d0 */ 112, 8, 0, 0, 1, 94, 0, 0,120, 8, 0, 0, 1, 1, 0, 0, +/* 0x17e0 */ 128, 8, 0, 0, 1, 89, 0, 0,156, 8, 0, 0, 1, 1, 0, 0, +/* 0x17f0 */ 176, 8, 0, 0, 1, 84, 0, 0,184, 8, 0, 0, 1, 1, 0, 0, +/* 0x1800 */ 188, 8, 0, 0, 1, 1, 0, 0,220, 8, 0, 0, 1, 1, 0, 0, +/* 0x1810 */ 228, 8, 0, 0, 1, 1, 0, 0,244, 8, 0, 0, 1, 91, 0, 0, +/* 0x1820 */ 48, 9, 0, 0, 1, 1, 0, 0, 52, 9, 0, 0, 1, 1, 0, 0, +/* 0x1830 */ 76, 9, 0, 0, 1, 83, 0, 0, 92, 9, 0, 0, 1, 94, 0, 0, +/* 0x1840 */ 108, 9, 0, 0, 1, 1, 0, 0,112, 9, 0, 0, 1, 1, 0, 0, +/* 0x1850 */ 172, 9, 0, 0, 1, 1, 0, 0,228, 9, 0, 0, 1, 1, 0, 0, +/* 0x1860 */ 248, 9, 0, 0, 1, 1, 0, 0, 8, 10, 0, 0, 1, 1, 0, 0, +/* 0x1870 */ 20, 10, 0, 0, 1, 1, 0, 0, 44, 10, 0, 0, 1, 92, 0, 0, +/* 0x1880 */ 52, 10, 0, 0, 1, 1, 0, 0, 64, 10, 0, 0, 1, 86, 0, 0, +/* 0x1890 */ 72, 10, 0, 0, 1, 1, 0, 0, 80, 10, 0, 0, 1, 89, 0, 0, +/* 0x18a0 */ 112, 10, 0, 0, 1, 1, 0, 0,132, 10, 0, 0, 1, 1, 0, 0, +/* 0x18b0 */ 140, 10, 0, 0, 1, 95, 0, 0,144, 10, 0, 0, 1, 1, 0, 0, +/* 0x18c0 */ 160, 10, 0, 0, 1, 1, 0, 0 }; diff --git a/src/stub/arm.v4a-linux.elf-so_entry.h b/src/stub/arm.v4a-linux.elf-so_entry.h new file mode 100644 index 00000000..3146d941 --- /dev/null +++ b/src/stub/arm.v4a-linux.elf-so_entry.h @@ -0,0 +1,181 @@ +/* arm.v4a-linux.elf-so_entry.h + created from arm.v4a-linux.elf-so_entry.bin, 2270 (0x8de) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_SIZE 2270 +#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_ADLER32 0xd02dd5ae +#define STUB_ARM_V4A_LINUX_ELF_SO_ENTRY_CRC32 0x278a424a + +unsigned char stub_arm_v4a_linux_elf_so_entry[2270] = { +/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 224, 1, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 8, 0, 5, 0,120, 71,192, 70, 0, 0,160,225,255, 64, 45,233, +/* 0x0040 */ 8,208, 77,226,254,255,255,235, 0, 80,160,227, 0, 64,224,227, +/* 0x0050 */ 34, 48,160,227, 3, 32,160,227, 0, 16,158,229, 4, 16,141,229, +/* 0x0060 */ 0, 0,160,227, 0, 64, 45,233,192,112,160,227, 0, 0, 0,239, +/* 0x0070 */ 1, 10,112,227, 16, 0, 0, 58,240, 1,240,231, 0, 64,189,232, +/* 0x0080 */ 0, 0,141,229, 4, 48,141,226, 0, 32,160,225, 4, 16,158,229, +/* 0x0090 */ 12, 0,142,226, 31, 0, 0,235, 0, 0,157,229, 4, 16,157,229, +/* 0x00a0 */ 5, 32,160,227,125,112,160,227, 0, 0, 0,239,144, 0, 79,226, +/* 0x00b0 */ 8, 16,141,226, 0,240,157,229, 0, 16,129,224, 62, 64, 45,233, +/* 0x00c0 */ 0, 80,224,227, 2, 65,160,227, 66, 0, 0,234, 26, 0,189,232, +/* 0x00d0 */ 1, 0, 64,224, 3, 32, 66,224, 0, 32,132,229, 0, 64,160,225, +/* 0x00e0 */ 3, 0,160,225, 2, 16,131,224, 0, 32,160,227, 7,192,160,225, +/* 0x00f0 */ 2,112,160,227, 15,120,135,227, 0, 0, 0,239, 12,112,160,225, +/* 0x0100 */ 4, 0,160,225, 48,128,189,232, 4, 64,148,224, 14,240,160, 17, +/* 0x0110 */ 1, 64,208,228, 4, 64,164,224, 4, 76,176,225, 14,240,160,225, +/* 0x0120 */ 1, 16,160,227, 14,192,160,225, 51, 0, 0,235, 1, 16,177,224, +/* 0x0130 */ 51, 0, 0,235, 59, 0, 0, 58, 12,240,160,225, 1, 48,208,228, +/* 0x0140 */ 1, 48,194,228, 51, 0, 0,235, 64, 0, 0, 42, 57, 0, 0,235, +/* 0x0150 */ 3, 48, 81,226, 0, 16,160,227, 76, 0, 0, 58, 1, 80,208,228, +/* 0x0160 */ 3, 84,133,225, 5, 80,240,225, 36, 0, 0, 10, 51, 0, 0,235, +/* 0x0170 */ 1, 16,177,224, 51, 0, 0,235, 1, 16,177,224, 83, 0, 0, 26, +/* 0x0180 */ 57, 0, 0,235, 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, +/* 0x0190 */ 5, 48,210,231, 1, 16, 81,226, 1, 48,194,228, 85, 0, 0, 42, +/* 0x01a0 */ 66, 0, 0,234, 3, 0, 0,235, 0, 46,115,121,109,116, 97, 98, +/* 0x01b0 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, +/* 0x01c0 */ 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, +/* 0x01d0 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, +/* 0x01e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x01f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0200 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, +/* 0x0210 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,112, 1, 0, 0, +/* 0x0220 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x0230 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0240 */ 144, 3, 0, 0,144, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, +/* 0x0250 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, +/* 0x0260 */ 6, 0, 0, 0, 0, 0, 0, 0,164, 1, 0, 0, 4, 0, 0, 0, +/* 0x0270 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x0280 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0290 */ 32, 4, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, +/* 0x02a0 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, +/* 0x02b0 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 1, 0, 0, 53, 0, 0, 0, +/* 0x02c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x02d0 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x02e0 */ 32, 3, 0, 0, 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, +/* 0x02f0 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, +/* 0x0300 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 3, 0, 0, 31, 0, 0, 0, +/* 0x0310 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0320 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0330 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, +/* 0x0340 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, +/* 0x0350 */ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 1, 0, +/* 0x0360 */ 8, 0, 0, 0,132, 0, 0, 0,236, 0, 0, 0, 18, 0, 1, 0, +/* 0x0370 */ 0, 95,115,116, 97,114,116, 0,117, 99,108, 95,110,114,118, 50, +/* 0x0380 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 0, 0, +/* 0x0390 */ 16, 0, 0, 0, 1, 2, 0, 0, 64, 0, 0, 0, 1, 1, 0, 0, +/* 0x03a0 */ 96, 0, 0, 0, 1, 1, 0, 0,148, 0, 0, 0, 1, 1, 0, 0, +/* 0x03b0 */ 244, 0, 0, 0, 1, 1, 0, 0,252, 0, 0, 0, 1, 1, 0, 0, +/* 0x03c0 */ 0, 1, 0, 0, 1, 1, 0, 0, 16, 1, 0, 0, 1, 1, 0, 0, +/* 0x03d0 */ 20, 1, 0, 0, 1, 1, 0, 0, 24, 1, 0, 0, 1, 1, 0, 0, +/* 0x03e0 */ 36, 1, 0, 0, 1, 1, 0, 0, 52, 1, 0, 0, 1, 1, 0, 0, +/* 0x03f0 */ 56, 1, 0, 0, 1, 1, 0, 0, 64, 1, 0, 0, 1, 1, 0, 0, +/* 0x0400 */ 72, 1, 0, 0, 1, 1, 0, 0, 76, 1, 0, 0, 1, 1, 0, 0, +/* 0x0410 */ 104, 1, 0, 0, 1, 1, 0, 0,108, 1, 0, 0, 1, 1, 0, 0, +/* 0x0420 */ 0, 0, 0, 0, 1, 1, 0, 0,102,105,108,101, 32,102,111,114, +/* 0x0430 */ 109, 97,116, 32,101,108,102, 51, 50, 45,108,105,116,116,108,101, +/* 0x0440 */ 97,114,109, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, +/* 0x0450 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0460 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, +/* 0x0470 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, +/* 0x0480 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, +/* 0x0490 */ 108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x04a0 */ 88, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, +/* 0x04b0 */ 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, +/* 0x04c0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, +/* 0x04d0 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, +/* 0x04e0 */ 48, 32, 32, 48, 49, 97, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, +/* 0x04f0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, +/* 0x0500 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x0510 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, +/* 0x0520 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, +/* 0x0530 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x0540 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x0550 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, +/* 0x0560 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97, +/* 0x0570 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32,103, 32, 32, 32, +/* 0x0580 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,101, 99, +/* 0x0590 */ 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109, +/* 0x05a0 */ 112,114,101,115,115, 95, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x05b0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x05c0 */ 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, +/* 0x05d0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x05e0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x05f0 */ 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0600 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, +/* 0x0610 */ 10, 48, 48, 48, 48, 48, 48, 52, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x0620 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0630 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 54, 48, 32, 82, 95, +/* 0x0640 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0650 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 57, +/* 0x0660 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0670 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x0680 */ 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0690 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x06a0 */ 10, 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x06b0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x06c0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x06d0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x06e0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 49, +/* 0x06f0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0700 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x0710 */ 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0720 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x0730 */ 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x0740 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0750 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 50, 52, 32, 82, 95, +/* 0x0760 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0770 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 51, +/* 0x0780 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0790 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x07a0 */ 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x07b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x07c0 */ 10, 48, 48, 48, 48, 48, 49, 52, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x07d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x07e0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 52, 56, 32, 82, 95, +/* 0x07f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0800 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 52, +/* 0x0810 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0820 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x0830 */ 48, 48, 49, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0840 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x0850 */ 10, 48, 48, 48, 48, 48, 49, 54, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x0860 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0870 */ 65, 73, 78, 88, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x0880 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x0890 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x08a0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x08b0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x08c0 */ 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x08d0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10 +}; diff --git a/src/stub/arm.v4a-linux.elf-so_fold.h b/src/stub/arm.v4a-linux.elf-so_fold.h new file mode 100644 index 00000000..05252da8 --- /dev/null +++ b/src/stub/arm.v4a-linux.elf-so_fold.h @@ -0,0 +1,1540 @@ +/* arm.v4a-linux.elf-so_fold.h + created from arm.v4a-linux.elf-so_fold.bin, 24014 (0x5dce) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_ARM_V4A_LINUX_ELF_SO_FOLD_SIZE 24014 +#define STUB_ARM_V4A_LINUX_ELF_SO_FOLD_ADLER32 0x83df5686 +#define STUB_ARM_V4A_LINUX_ELF_SO_FOLD_CRC32 0x160fb7dc + +unsigned char stub_arm_v4a_linux_elf_so_fold[24014] = { +/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 156, 26, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 27, 0, 24, 0,254,255,255,235, 0,224,160,225, 3, 0,189,232, +/* 0x0040 */ 91,112,160,227, 14,240,160,225, 15, 0,160,225, 14,240,160,225, +/* 0x0050 */ 0,112,160,227, 0,192,160,227, 4,240, 18,229,240, 1,240,231, +/* 0x0060 */ 14,240,160,225, 1, 0,144,239, 3, 0,144,239, 14,240,160,225, +/* 0x0070 */ 4, 0,144,239, 14,240,160,225, 5, 0,144,239, 14,240,160,225, +/* 0x0080 */ 6, 0,144,239, 14,240,160,225, 10, 0,144,239, 14,240,160,225, +/* 0x0090 */ 20, 0,144,239, 14,240,160,225, 45, 0,144,239, 14,240,160,225, +/* 0x00a0 */ 85, 0,144,239, 14,240,160,225, 91, 0,144,239, 14,240,160,225, +/* 0x00b0 */ 125, 0,144,239, 14,240,160,225, 0, 32,160,227, 2, 0,159,239, +/* 0x00c0 */ 14,240,160,225, 48, 64, 45,233, 16, 80,157,229, 12, 64,157,229, +/* 0x00d0 */ 37, 86,160,225,192, 0,144,239, 48,128,189,232, 60, 0, 31,229, +/* 0x00e0 */ 14,240,160,225, 48, 64, 45,233, 34, 64,160,227, 0, 80,160,227, +/* 0x00f0 */ 4, 48,131,225, 0, 64,224,227, 31, 0, 0,234, 2, 0, 18,225, +/* 0x0100 */ 14,240,160, 1, 2,192,160,225, 3, 0, 16,227, 52, 0, 0, 10, +/* 0x0110 */ 1,192,130,224, 1, 48,209,228, 12, 0, 81,225, 1, 48,192,228, +/* 0x0120 */ 47, 0, 0, 26, 14,240,160,225, 3, 0, 17,227, 72, 0, 0, 10, +/* 0x0130 */ 3, 48,210,227, 3,192,129,224, 46, 0, 0, 10, 4, 32, 45,229, +/* 0x0140 */ 1, 32,209,228, 1, 48,209,228, 3, 36,130,225, 1, 48,209,228, +/* 0x0150 */ 3, 40,130,225, 1, 48,209,228, 3, 44,130,225, 4, 32,128,228, +/* 0x0160 */ 12, 0, 81,225, 58, 0, 0, 26, 4, 32,157,228, 3, 32, 18,226, +/* 0x0170 */ 46, 0, 0, 26, 14,240,160,225, 15, 48,210,227, 3,192,129,224, +/* 0x0180 */ 85, 0, 0, 26, 3, 48,210,227, 3,192,129,224, 46, 0, 0, 10, +/* 0x0190 */ 4, 48,145,228, 4, 48,128,228, 12, 0, 81,225, 78, 0, 0, 26, +/* 0x01a0 */ 3, 32, 18,226, 46, 0, 0, 26, 14,240,160,225,240, 0, 45,233, +/* 0x01b0 */ 240, 0,177,232,240, 0,160,232, 12, 0, 81,225, 86, 0, 0, 26, +/* 0x01c0 */ 240, 0,189,232, 15, 32, 18,226, 75, 0, 0, 26, 14,240,160,225, +/* 0x01d0 */ 255, 64, 45,233,240, 0,189,232, 13, 0,160,225, 6, 48, 77,224, +/* 0x01e0 */ 7,208,195,227, 4, 0, 45,229, 4, 0,141,226,254,255,255,235, +/* 0x01f0 */ 5, 0,160,225, 4, 16,160,225, 3, 32,160,227, 1, 0, 23,227, +/* 0x0200 */ 4, 32,130, 19, 16, 48,160,227,254,255,255,235, 4, 16,141,226, +/* 0x0210 */ 6, 32,160,225,254,255,255,235, 0,208,157,229,240,128,189,232, +/* 0x0220 */ 2, 0, 18,225, 14,240,160, 1, 1, 16,192,228, 1, 32, 82,226, +/* 0x0230 */ 254,255,255,202, 14,240,160,225, 0, 0, 77,224, 7, 0,192,227, +/* 0x0240 */ 0,208,160,225, 14,240,160,225, 0,192,160,225, 1, 16, 65,224, +/* 0x0250 */ 0, 32,160,225,128, 1,144,224,129, 17,161,224,162, 30,129,224, +/* 0x0260 */ 0, 32,160,225, 0, 2,144,224, 1, 18,161,224, 34, 30,129,224, +/* 0x0270 */ 0, 32,160,225, 0, 4,144,224, 1, 20,161,224, 34, 28,129,224, +/* 0x0280 */ 0, 32,160,225, 0, 8,144,224, 1, 24,161,224, 34, 24,129,224, +/* 0x0290 */ 140, 15, 80,224,172, 16,193,224, 12, 0,144,224, 0, 0,161,226, +/* 0x02a0 */ 14,240,160,225, 4,224, 45,229,254,255,255,235,127, 0,160,227, +/* 0x02b0 */ 254,255,255,235,240, 64, 45,233, 0, 80,160,225, 1,112,160,225, +/* 0x02c0 */ 2, 96,160,225, 24, 0,144,232, 2, 0, 83,225, 8, 0,160, 51, +/* 0x02d0 */ 254,255,255, 59, 1, 48, 70,226, 1, 0,115,227, 21, 0, 0, 10, +/* 0x02e0 */ 7, 16,160,225, 0, 32,160,227, 1, 0,131,226, 4, 48,210,231, +/* 0x02f0 */ 1, 48,193,228, 1, 32,130,226, 0, 0, 82,225, 16, 0, 0, 26, +/* 0x0300 */ 4, 48,149,229, 6, 48,131,224, 4, 48,133,229, 0, 48,149,229, +/* 0x0310 */ 3, 48,102,224, 0, 48,133,229,240,128,189,232, 48, 64, 45,233, +/* 0x0320 */ 16,208, 77,226, 0, 80,160,225, 1, 64,160,225, 0, 48,145,229, +/* 0x0330 */ 0, 0, 83,227,103, 0, 0, 10, 5, 0,160,225, 13, 16,160,225, +/* 0x0340 */ 12, 32,160,227, 2, 0, 0,235, 0, 48,157,229, 0, 0, 83,227, +/* 0x0350 */ 53, 0, 0, 26, 4, 32,157,229,240, 48,159,229, 3, 0, 82,225, +/* 0x0360 */ 2, 0,160, 19,254,255,255, 27, 0, 48,149,229, 0, 0, 83,227, +/* 0x0370 */ 103, 0, 0, 10, 3, 0,160,227,254,255,255,235,103, 0, 0,234, +/* 0x0380 */ 4, 48,157,229, 0, 0, 83,227, 4, 0,160, 3,254,255,255, 11, +/* 0x0390 */ 12, 0,157,232, 2, 0, 83,225, 63, 0, 0,138, 0, 48,148,229, +/* 0x03a0 */ 3, 0, 82,225, 65, 0, 0,154, 5, 0,160,227,254,255,255,235, +/* 0x03b0 */ 4, 32,157,229, 0, 48,157,229, 3, 0, 82,225, 91, 0, 0, 42, +/* 0x03c0 */ 16, 32,141,226, 4, 48, 34,229, 4, 0,149,229, 12, 0, 64,226, +/* 0x03d0 */ 4, 16,148,229,254,255,255,235, 0, 0, 80,227, 81, 0, 0, 26, +/* 0x03e0 */ 0, 32,157,229, 12, 48,157,229, 3, 0, 82,225, 83, 0, 0, 10, +/* 0x03f0 */ 7, 0,160,227,254,255,255,235, 4, 48,149,229, 4, 32,157,229, +/* 0x0400 */ 2, 48,131,224, 4, 48,133,229, 0, 48,149,229, 3, 48, 98,224, +/* 0x0410 */ 0, 48,133,229, 94, 0, 0,234, 5, 0,160,225, 4, 16,148,229, +/* 0x0420 */ 2, 0, 0,235, 4, 48,148,229, 0, 32,157,229, 2, 48,131,224, +/* 0x0430 */ 4, 48,132,229, 0, 48,148,229, 3, 48, 98,224, 0, 48,132,229, +/* 0x0440 */ 0, 0, 83,227, 35, 0, 0, 26, 16,208,141,226, 48,128,189,232, +/* 0x0450 */ 85, 80, 88, 33,240, 79, 45,233, 88,208, 77,226, 0,224,160,225, +/* 0x0460 */ 12, 16,141,229, 0, 48,144,229, 0,160, 99,224, 72,192,141,226, +/* 0x0470 */ 15, 0,144,232, 15, 0,140,232, 84, 64,157,229, 4, 64,138,224, +/* 0x0480 */ 14,224,100,224, 20,224,141,229, 0, 48,224,227, 0, 48,141,229, +/* 0x0490 */ 0, 0,160,227, 4, 0,141,229, 14, 16,160,225, 3, 32,160,227, +/* 0x04a0 */ 35, 48,131,226,254,255,255,235, 24, 0,141,229, 4, 16,160,225, +/* 0x04b0 */ 20, 32,157,229,254,255,255,235, 24, 32,157,229, 24, 64,130,226, +/* 0x04c0 */ 24, 48,146,229, 64, 48,141,229, 68,160,141,229, 10, 0,160,225, +/* 0x04d0 */ 24, 16,146,229, 3, 32,160,227,254,255,255,235, 4, 48,148,229, +/* 0x04e0 */ 12, 48,131,226, 56, 48,141,229, 60, 64,141,229, 56, 0,141,226, +/* 0x04f0 */ 64, 16,141,226, 28, 0, 0,235,188,114,218,225, 7, 0,160,225, +/* 0x0500 */ 0, 0, 87,227, 7,176,160, 1,165, 0, 0, 10, 10, 32,160,225, +/* 0x0510 */ 0,176,160,227, 11, 16,160,225, 52, 48,146,229, 1, 0, 83,227, +/* 0x0520 */ 1,176,139, 2, 1, 16,129,226, 32, 32,130,226, 1, 0, 87,225, +/* 0x0530 */ 155, 0, 0, 26, 2, 0, 91,227, 0,144,160,131,169, 0, 0,138, +/* 0x0540 */ 80,144,157,229, 0, 0, 80,227, 28, 0,141, 5, 60, 1, 0, 10, +/* 0x0550 */ 16,160,141,229,138, 48,138,224, 3, 49,138,224, 3, 49,160,225, +/* 0x0560 */ 40, 48,141,229, 10, 96,160,225, 0, 48,160,227, 28, 48,141,229, +/* 0x0570 */ 32, 48,141,229, 3,128,160,225, 93, 37,224,227,159, 43, 66,226, +/* 0x0580 */ 3, 44, 66,226, 8, 32,141,229, 6, 80,160,225, 52, 48,150,229, +/* 0x0590 */ 1, 0, 83,227, 36, 1, 0, 26, 76, 48,150,229, 2, 0, 19,227, +/* 0x05a0 */ 36, 1, 0, 26, 32, 48,157,229, 1, 48,131,226, 32, 48,141,229, +/* 0x05b0 */ 1, 0, 83,227,197, 0, 0, 26, 2, 0, 91,227, 36, 1, 0,138, +/* 0x05c0 */ 12, 32,160,227, 56, 32,141,229, 56, 0,141,226, 44, 16,141,226, +/* 0x05d0 */ 2, 0, 0,235, 60, 48,157,229, 12, 48, 67,226, 60, 48,141,229, +/* 0x05e0 */ 60, 64,149,229, 4, 64,137,224, 4, 16,138,224, 72, 0,149,229, +/* 0x05f0 */ 0, 0,105,224,255,158,160,227, 15,144,137,226, 9, 64, 4,224, +/* 0x0600 */ 1, 16,100,224, 68, 16,141,229, 4, 0,128,224, 64, 0,141,229, +/* 0x0610 */ 4, 32,160,225, 76, 48,149,229,254,255,255,235, 68, 48,157,229, +/* 0x0620 */ 4, 48,131,224, 68, 48,141,229, 44, 48,157,229, 64, 48,141,229, +/* 0x0630 */ 48, 48,157,229, 12, 48,131,226, 56, 48,141,229, 56, 0,141,226, +/* 0x0640 */ 64, 16,141,226, 28, 0, 0,235, 28, 32,157,229, 0, 0, 82,227, +/* 0x0650 */ 25, 1, 0, 26, 76, 48,149,229, 1, 0, 19,227, 25, 1, 0, 10, +/* 0x0660 */ 254,255,255,235, 36, 0,141,229, 52, 48,149,229, 1, 0, 83,227, +/* 0x0670 */ 23, 1, 0, 26, 76, 48,149,229, 1, 0, 19,227, 23, 1, 0, 10, +/* 0x0680 */ 72, 32,149,229, 60, 16,149,229, 68, 48,149,229, 3, 0, 82,225, +/* 0x0690 */ 41, 1, 0, 26, 1, 48,130,224, 3, 48,131,226, 16, 32,157,229, +/* 0x06a0 */ 3, 48,130,224, 3, 64,195,227, 0, 48,100,226, 9, 48, 3,224, +/* 0x06b0 */ 7, 0, 83,227, 41, 1, 0,154, 15, 1, 0,234, 0, 48,224,227, +/* 0x06c0 */ 0, 48,141,229, 0, 0,160,227, 4, 0,141,229, 1, 26,160,227, +/* 0x06d0 */ 7, 32,160,227, 35, 48,131,226,254,255,255,235, 0, 0, 80,227, +/* 0x06e0 */ 48, 1, 0, 26, 23, 1, 0,234, 36, 48,157,229, 0, 48,132,229, +/* 0x06f0 */ 8, 32,157,229, 4, 32,132,229, 4, 0,160,225, 8, 16,132,226, +/* 0x0700 */ 254,255,255,235, 24, 1, 0,234, 0, 64,160,227, 28, 64,141,229, +/* 0x0710 */ 60, 0,149,229, 76, 48,149,229, 7, 48, 3,226, 3, 49,160,225, +/* 0x0720 */ 164, 32,159,229, 50, 35,160,225, 0, 0,138,224, 72, 16,149,229, +/* 0x0730 */ 7, 32, 2,226,254,255,255,235, 0,144,160,227, 1,128,136,226, +/* 0x0740 */ 32, 96,134,226, 8, 0, 87,225, 60, 1, 0, 10,183, 0, 0,234, +/* 0x0750 */ 56, 48,149,229, 0, 0, 83,227, 40, 32,157, 5, 2, 48,129, 0, +/* 0x0760 */ 8, 64,131, 2, 15, 1, 0, 10, 4, 1, 0,234, 0, 64,160,225, +/* 0x0770 */ 36, 48,157,229, 0, 48,128,229, 8, 32,157,229, 4, 32,128,229, +/* 0x0780 */ 8, 16,132,226,254,255,255,235, 4, 0,160,225, 8, 16,160,227, +/* 0x0790 */ 5, 32,160,227,254,255,255,235, 24, 1, 0,234, 76, 64,157,229, +/* 0x07a0 */ 4, 64,138,224, 24, 0,157,229, 20, 16,157,229,254,255,255,235, +/* 0x07b0 */ 12, 48,157,229, 7, 0,147,232, 15,224,160,225, 20,255, 47,225, +/* 0x07c0 */ 28, 0,157,229, 88,208,141,226,240,143,189,232, 64, 98, 81,115, +/* 0x07d0 */ 255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, 33, 17,176,225, +/* 0x07e0 */ 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, 1, 33,144,231, +/* 0x07f0 */ 15, 52, 2,226, 11, 4, 83,227, 14, 0, 0, 26,255, 52, 2,226, +/* 0x0800 */ 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, 1, 33,128,231, +/* 0x0810 */ 0, 0, 81,227, 4, 0, 0, 26, 14,240,160,225, 0, 16,160,225, +/* 0x0820 */ 1, 0,209,228, 1, 32,209,228, 2, 4,128,225, 1, 32,209,228, +/* 0x0830 */ 2, 8,128,225, 1, 32,209,228, 2, 12,128,225, 14,240,160,225, +/* 0x0840 */ 255, 64, 45,233, 8, 64,208,229, 0, 80,160,225, 8, 48,157,229, +/* 0x0850 */ 4, 0,133,226, 17, 0, 0,235, 0, 16,160,225, 4, 32,157,229, +/* 0x0860 */ 12, 0,133,226, 53, 0, 0,235, 0, 48,157,229, 10, 32,211,229, +/* 0x0870 */ 9, 48,211,229, 3, 0, 19,225, 45, 0, 0, 10, 4, 0,157,229, +/* 0x0880 */ 8, 16,157,229, 0, 16,145,229,254,255,255,235, 8, 16,157,229, +/* 0x0890 */ 4, 0,157,229, 0, 16,145,229, 0, 16,129,224,254,255,255,235, +/* 0x08a0 */ 0, 0,160,227, 0, 0,141,229,255,128,189,232, 8, 0,189,232, +/* 0x08b0 */ 0, 0,160,225, 3, 0, 64,224, 8, 0,189,232, 2, 0,189,232, +/* 0x08c0 */ 3, 32, 66,224, 8, 0,189,232, 0, 32,131,229, 14,240,160,225, +/* 0x08d0 */ 252, 64, 45,233, 0,112,129,224, 0, 80,224,227, 2, 65,160,227, +/* 0x08e0 */ 14, 0, 0,234, 24, 0,189,232, 7, 0, 64,224, 3, 32, 66,224, +/* 0x08f0 */ 0, 32,132,229,240,128,189,232, 1, 64,208,228, 4, 64,164,224, +/* 0x0900 */ 4, 76,176,225, 14,240,160,225, 1, 48,208,228, 1, 48,194,228, +/* 0x0910 */ 4, 64,148,224, 8, 0, 0, 11, 12, 0, 0, 42, 1, 16,160,227, +/* 0x0920 */ 23, 0, 0,234, 1, 16, 65,226, 4, 64,148,224, 8, 0, 0, 11, +/* 0x0930 */ 1, 16,161,224, 4, 64,148,224, 8, 0, 0, 11, 1, 16,161,224, +/* 0x0940 */ 4, 64,148,224, 8, 0, 0, 11, 19, 0, 0, 58, 3, 48, 81,226, +/* 0x0950 */ 0, 16,160,227, 39, 0, 0, 58, 1, 80,208,228, 3, 84,133,225, +/* 0x0960 */ 5, 80,240,225, 3, 0, 0, 10,197, 80,176,225, 54, 0, 0, 42, +/* 0x0970 */ 42, 0, 0,234, 4, 64,148,224, 8, 0, 0, 11, 54, 0, 0, 42, +/* 0x0980 */ 1, 16,160,227, 4, 64,148,224, 8, 0, 0, 11, 54, 0, 0, 42, +/* 0x0990 */ 4, 64,148,224, 8, 0, 0, 11, 1, 16,161,224, 4, 64,148,224, +/* 0x09a0 */ 8, 0, 0, 11, 46, 0, 0, 58, 4, 16,129,226, 58, 0, 0,234, +/* 0x09b0 */ 4, 64,148,224, 8, 0, 0, 11, 1, 16,161,224, 2, 16,129,226, +/* 0x09c0 */ 5, 12,117,227, 1, 16,129, 50, 1, 48,130,224, 1, 48, 83,229, +/* 0x09d0 */ 5, 48,210,231, 1, 48,194,228, 1, 16, 81,226, 62, 0, 0, 26, +/* 0x09e0 */ 14, 0, 0,234,252, 64, 45,233, 0,112,129,224, 0, 80,224,227, +/* 0x09f0 */ 2, 65,160,227, 14, 0, 0,234, 24, 0,189,232, 7, 0, 64,224, +/* 0x0a00 */ 3, 32, 66,224, 0, 32,132,229,240,128,189,232, 1, 64,208,228, +/* 0x0a10 */ 4, 64,164,224, 4, 76,176,225, 14,240,160,225, 1, 48,208,228, +/* 0x0a20 */ 1, 48,194,228, 4, 64,148,224, 8, 0, 0, 11, 12, 0, 0, 42, +/* 0x0a30 */ 1, 16,160,227, 23, 0, 0,234, 1, 16, 65,226, 4, 64,148,224, +/* 0x0a40 */ 8, 0, 0, 11, 1, 16,177,224, 4, 64,148,224, 8, 0, 0, 11, +/* 0x0a50 */ 1, 16,177,224, 4, 64,148,224, 8, 0, 0, 11, 19, 0, 0, 58, +/* 0x0a60 */ 3, 48, 81,226, 0, 16,160,227, 38, 0, 0, 58, 1, 80,208,228, +/* 0x0a70 */ 3, 84,133,225, 5, 80,240,225, 3, 0, 0, 10,197, 80,176,225, +/* 0x0a80 */ 40, 0, 0,234, 4, 64,148,224, 8, 0, 0, 11, 1, 16,177,224, +/* 0x0a90 */ 4, 64,148,224, 8, 0, 0, 11, 1, 16,177,224, 53, 0, 0, 26, +/* 0x0aa0 */ 1, 16,160,227, 4, 64,148,224, 8, 0, 0, 11, 1, 16,177,224, +/* 0x0ab0 */ 4, 64,148,224, 8, 0, 0, 11, 46, 0, 0, 58, 2, 16,129,226, +/* 0x0ac0 */ 1, 16,129,226, 5, 12,117,227, 1, 16,129, 50, 0, 48,210,229, +/* 0x0ad0 */ 5, 48,210,231, 1, 48,194,228, 1, 16, 81,226, 57, 0, 0, 26, +/* 0x0ae0 */ 14, 0, 0,234, 0, 16,129,224, 62, 64, 45,233, 0, 80,224,227, +/* 0x0af0 */ 2, 65,160,227, 23, 0, 0,234, 26, 0,189,232, 1, 0, 64,224, +/* 0x0b00 */ 3, 32, 66,224, 0, 32,132,229, 48,128,189,232, 4, 64,148,224, +/* 0x0b10 */ 14,240,160, 17, 1, 64,208,228, 4, 64,164,224, 4, 76,176,225, +/* 0x0b20 */ 14,240,160,225, 1, 16,160,227, 14,192,160,225, 8, 0, 0,235, +/* 0x0b30 */ 1, 16,177,224, 8, 0, 0,235, 16, 0, 0, 58, 12,240,160,225, +/* 0x0b40 */ 1, 48,208,228, 1, 48,194,228, 8, 0, 0,235, 21, 0, 0, 42, +/* 0x0b50 */ 14, 0, 0,235, 3, 48, 81,226, 0, 16,160,227, 33, 0, 0, 58, +/* 0x0b60 */ 1, 80,208,228, 3, 84,133,225, 5, 80,240,225, 3, 0, 0, 10, +/* 0x0b70 */ 8, 0, 0,235, 1, 16,177,224, 8, 0, 0,235, 1, 16,177,224, +/* 0x0b80 */ 40, 0, 0, 26, 14, 0, 0,235, 2, 16,129,226, 13, 12,117,227, +/* 0x0b90 */ 1, 16,129, 50, 5, 48,210,231, 1, 16, 81,226, 1, 48,194,228, +/* 0x0ba0 */ 42, 0, 0, 42, 23, 0, 0,234, 0,192,157,229, 14, 0, 92,227, +/* 0x0bb0 */ 33, 0, 0, 26, 0, 72, 45,233, 0,176,208,229, 6,204,160,227, +/* 0x0bc0 */ 171,177,160,225, 28,203,160,225, 13,176,160,225, 58,205,140,226, +/* 0x0bd0 */ 12,208, 77,224, 0,192,147,229, 8, 48,141,229, 4,192,141,229, +/* 0x0be0 */ 0, 32,141,229, 12, 48,141,226, 0,192,160,227, 4,192,131,228, +/* 0x0bf0 */ 11, 0, 83,225, 15, 0, 0, 26, 12, 48,141,226, 2, 32, 65,226, +/* 0x0c00 */ 0, 16,160,225, 1,192,209,228, 7,192, 12,226, 18,192,205,229, +/* 0x0c10 */ 1,192,209,228, 44, 2,160,225, 17, 0,205,229, 15,192, 12,226, +/* 0x0c20 */ 16,192,205,229, 16, 0,141,226, 34, 0, 0,235, 11,208,160,225, +/* 0x0c30 */ 0,136,189,232, 33, 0, 0,234,240, 79, 45,233, 48,208, 77,226, +/* 0x0c40 */ 0, 48,141,229, 0, 48,208,229, 2, 80,208,229, 1,224,208,229, +/* 0x0c50 */ 0,192,157,229, 20, 48,141,229, 92, 48,157,229, 0, 64,160,227, +/* 0x0c60 */ 0, 64,140,229, 0, 64,131,229, 20,192,157,229, 1, 48,208,229, +/* 0x0c70 */ 3, 48,140,224, 3,204,160,227, 28,195,160,225, 1, 48,160,227, +/* 0x0c80 */ 19,238,160,225, 19, 53,160,225,115,206,140,226, 1, 48, 67,226, +/* 0x0c90 */ 1,224, 78,226, 4, 0,128,226, 6,192,140,226, 4, 16,141,229, +/* 0x0ca0 */ 12, 48,141,229, 16,224,141,229, 8, 0,141,229, 31, 0, 0,234, +/* 0x0cb0 */ 8, 0,157,229, 1, 27,160,227,176, 16,131,225, 12, 0, 84,225, +/* 0x0cc0 */ 132, 48,160,225, 1, 64,132,226, 28, 0, 0, 26, 4, 48,157,229, +/* 0x0cd0 */ 0, 96,160,227, 2,144,131,224, 3,224,160,225, 6, 32,160,225, +/* 0x0ce0 */ 4, 80,157,229, 9, 48,101,224, 3, 0, 82,225, 1,224,142,226, +/* 0x0cf0 */ 73, 2, 0, 10, 5, 48,210,231, 1, 32,130,226, 5, 0, 82,227, +/* 0x0d00 */ 6,100,131,225, 40, 0, 0, 26, 0,176,160,227, 1,192,160,227, +/* 0x0d10 */ 11,112,160,225, 0, 0,224,227, 44,192,141,229, 24,176,141,229, +/* 0x0d20 */ 28,192,141,229, 32,192,141,229, 36,192,141,229, 57, 2, 0,234, +/* 0x0d30 */ 255,132,224,227, 8, 0, 80,225, 68, 0, 0,138, 9, 0, 94,225, +/* 0x0d40 */ 73, 2, 0, 10, 1, 48,222,228, 0, 4,160,225, 6,100,131,225, +/* 0x0d50 */ 12, 16,157,229, 24, 32,157,229, 1,160, 11,224, 2, 18,160,225, +/* 0x0d60 */ 1, 48,138,224,131, 80,160,225, 8, 48,157,229,181,192,147,225, +/* 0x0d70 */ 160, 53,160,225,156, 3, 4,224, 4, 0, 86,225,185, 0, 0, 42, +/* 0x0d80 */ 20, 0,157,229, 8, 48, 96,226, 87, 51,160,225, 16, 16,157,229, +/* 0x0d90 */ 1, 32, 11,224, 18, 48,131,224, 8, 0,157,229, 6, 44,160,227, +/* 0x0da0 */ 147, 2, 34,224, 24, 16,157,229, 2, 59,108,226, 6, 0, 81,227, +/* 0x0db0 */ 195, 50,140,224,230,142,130,226,181, 48,128,225, 12,128,136,226, +/* 0x0dc0 */ 4, 0,160,209, 1, 16,160,211,164, 0, 0,218, 44, 32,157,229, +/* 0x0dd0 */ 84, 80,157,229, 11, 48, 98,224, 3,112,213,231, 4, 0,160,225, +/* 0x0de0 */ 1, 16,160,227,135,112,160,225, 1, 92, 7,226,129,160,160,225, +/* 0x0df0 */ 133, 48,136,224, 10, 48,131,224, 1, 4, 80,227, 2, 76,131,226, +/* 0x0e00 */ 1,192,129,226,119, 0, 0, 42, 9, 0, 94,225, 0, 4,160,225, +/* 0x0e10 */ 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225,176, 48,212,225, +/* 0x0e20 */ 160, 37,160,225, 12, 16,129,224,147, 2, 12,224, 2, 43, 99,226, +/* 0x0e30 */ 12, 0, 86,225,194, 34,131,224,163, 50, 67,224,135, 0, 0, 42, +/* 0x0e40 */ 0, 0, 85,227, 12, 0,160,225,176, 32,196,225, 10, 16,160,225, +/* 0x0e50 */ 140, 0, 0, 10, 12, 0,160,225,164, 0, 0,234, 0, 0, 85,227, +/* 0x0e60 */ 176, 48,196,225, 6, 96,108,224, 0, 0,108,224,164, 0, 0, 10, +/* 0x0e70 */ 255, 0, 81,227,168, 0, 0,202,105, 0, 0,234, 1, 4, 80,227, +/* 0x0e80 */ 3, 16,129,224,151, 0, 0, 42, 9, 0, 94,225, 0, 4,160,225, +/* 0x0e90 */ 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225,180, 48,152,225, +/* 0x0ea0 */ 160, 37,160,225,147, 2, 12,224, 2, 43, 99,226, 12, 0, 86,225, +/* 0x0eb0 */ 163, 82, 67,224,194, 50,131,224,180, 48,136, 49,180, 80,136, 33, +/* 0x0ec0 */ 0, 0,108,224, 4, 16,160, 49, 12, 0,160, 49, 6, 96,108, 32, +/* 0x0ed0 */ 255, 0, 81,227,129, 64,160,225, 1, 48,129,226,143, 0, 0,218, +/* 0x0ee0 */ 24,192,157,229,255,112, 1,226, 3, 0, 92,227, 84, 16,157,229, +/* 0x0ef0 */ 0, 32,160,211, 11,112,193,231, 1,176,139,226, 24, 32,141,213, +/* 0x0f00 */ 57, 2, 0,218, 24, 48,157,229, 9, 0, 83,227, 24, 80,157,197, +/* 0x0f10 */ 3, 48, 67,210, 6, 80, 69,194, 24, 48,141,213, 24, 80,141,197, +/* 0x0f20 */ 57, 2, 0,234,172, 50, 76,224, 0, 32,100,224, 8,192,157,229, +/* 0x0f30 */ 8, 0, 82,225,181, 48,140,225, 6, 96,100,224,197, 0, 0,138, +/* 0x0f40 */ 9, 0, 94,225, 73, 2, 0, 10, 1, 48,222,228, 2, 36,160,225, +/* 0x0f50 */ 6,100,131,225, 8, 0,157,229, 24, 48,157,229,131,112,128,224, +/* 0x0f60 */ 6, 13,135,226,176,192,208,225,162, 53,160,225,156, 3, 4,224, +/* 0x0f70 */ 4, 0, 86,225,225, 0, 0, 42, 24, 32,157,229, 8, 80,157,229, +/* 0x0f80 */ 6, 0, 82,227, 2, 59,108,226,102, 30,133,226, 3, 32,160,195, +/* 0x0f90 */ 32, 80,157,229, 0, 32,160,211,195, 50,140,224, 24, 32,141,229, +/* 0x0fa0 */ 28,192,157,229, 44, 32,157,229, 36, 80,141,229, 4, 16,129,226, +/* 0x0fb0 */ 4, 80,160,225, 32,192,141,229, 28, 32,141,229,176, 48,192,225, +/* 0x0fc0 */ 98, 1, 0,234, 2, 32,100,224,172, 50, 76,224, 8, 0, 82,225, +/* 0x0fd0 */ 176, 48,192,225, 6, 96,100,224,236, 0, 0,138, 9, 0, 94,225, +/* 0x0fe0 */ 73, 2, 0, 10, 1, 48,222,228, 2, 36,160,225, 6,100,131,225, +/* 0x0ff0 */ 102, 95,135,226,176,192,213,225,162, 53,160,225,156, 3, 4,224, +/* 0x1000 */ 4, 0, 86,225, 26, 1, 0, 42, 2, 59,108,226,195, 50,140,224, +/* 0x1010 */ 8, 0, 84,225,176, 48,197,225,252, 0, 0,138, 9, 0, 94,225, +/* 0x1020 */ 73, 2, 0, 10, 1, 48,222,228, 4, 68,160,225, 6,100,131,225, +/* 0x1030 */ 8, 80,157,229,129, 48,133,224,138, 48,131,224, 30, 30,131,226, +/* 0x1040 */ 176,192,209,225,164, 53,160,225,156, 3, 2,224, 2, 0, 86,225, +/* 0x1050 */ 6, 96, 98, 32,172, 50, 76, 32, 4, 80, 98, 32, 50, 1, 0, 42, +/* 0x1060 */ 2, 59,108,226,195, 50,140,224, 0, 0, 91,227,176, 48,193,225, +/* 0x1070 */ 73, 2, 0, 10, 44,192,157,229, 24, 16,157,229, 84, 0,157,229, +/* 0x1080 */ 11, 48,108,224, 3,112,208,231, 6, 0, 81,227, 11, 16,160,195, +/* 0x1090 */ 9, 16,160,211, 24, 16,141,229, 11,112,192,231, 2, 0,160,225, +/* 0x10a0 */ 1,176,139,226, 57, 2, 0,234, 2, 32,100,224,172, 50, 76,224, +/* 0x10b0 */ 8, 0, 82,225,176, 48,197,225, 6, 96,100,224, 37, 1, 0,138, +/* 0x10c0 */ 9, 0, 94,225, 73, 2, 0, 10, 1, 48,222,228, 2, 36,160,225, +/* 0x10d0 */ 6,100,131,225, 27, 30,135,226,176,192,209,225,162, 53,160,225, +/* 0x10e0 */ 156, 3, 4,224, 4, 0, 86,225, 52, 1, 0, 42, 44, 80,157,229, +/* 0x10f0 */ 2, 59,108,226, 28, 32,157,229,195, 50,140,224, 28, 80,141,229, +/* 0x1100 */ 4, 80,160,225, 44, 32,141,229,176, 48,193,225, 90, 1, 0,234, +/* 0x1110 */ 2, 32,100,224,172, 50, 76,224, 8, 0, 82,225,176, 48,193,225, +/* 0x1120 */ 6, 96,100,224, 63, 1, 0,138, 9, 0, 94,225, 73, 2, 0, 10, +/* 0x1130 */ 1, 48,222,228, 2, 36,160,225, 6,100,131,225,114, 31,135,226, +/* 0x1140 */ 176,192,209,225,162, 53,160,225,156, 3, 4,224, 4, 0, 86,225, +/* 0x1150 */ 78, 1, 0, 42, 2, 59,108,226, 32, 32,157,229,195, 50,140,224, +/* 0x1160 */ 44, 0,157,229, 28,192,157,229, 4, 80,160,225, 32,192,141,229, +/* 0x1170 */ 28, 0,141,229, 49, 1, 0,234,172, 50, 76,224,176, 48,193,225, +/* 0x1180 */ 44,192,157,229, 32, 16,141,226, 10, 0,145,232, 2, 80,100,224, +/* 0x1190 */ 28, 32,157,229, 36, 16,141,229, 32, 32,141,229, 28,192,141,229, +/* 0x11a0 */ 44, 48,141,229, 6, 96,100,224, 24, 32,157,229, 8, 0,157,229, +/* 0x11b0 */ 6, 0, 82,227, 11, 32,160,195, 8, 32,160,211,166, 30,128,226, +/* 0x11c0 */ 24, 32,141,229, 8, 16,129,226,255,116,224,227, 7, 0, 85,225, +/* 0x11d0 */ 106, 1, 0,138, 9, 0, 94,225, 73, 2, 0, 10, 1, 48,222,228, +/* 0x11e0 */ 5, 84,160,225, 6,100,131,225,176,192,209,225,165, 53,160,225, +/* 0x11f0 */ 156, 3, 4,224, 4, 0, 86,225,120, 1, 0, 42, 10, 34,129,224, +/* 0x1200 */ 2, 59,108,226,195, 50,140,224, 4, 80,130,226, 4, 0,160,225, +/* 0x1210 */ 3,160,160,227, 0,128,160,227,176, 48,193,225,152, 1, 0,234, +/* 0x1220 */ 5, 32,100,224,172, 50, 76,224, 7, 0, 82,225, 6, 96,100,224, +/* 0x1230 */ 176, 48,193,225,131, 1, 0,138, 9, 0, 94,225, 73, 2, 0, 10, +/* 0x1240 */ 1, 48,222,228, 2, 36,160,225, 6,100,131,225,178,192,209,225, +/* 0x1250 */ 162, 53,160,225,156, 3, 4,224, 4, 0, 86,225,145, 1, 0, 42, +/* 0x1260 */ 10, 34,129,224, 2, 59,108,226,195, 50,140,224, 65, 95,130,226, +/* 0x1270 */ 4, 0,160,225, 3,160,160,227, 8,128,160,227,178, 48,193,225, +/* 0x1280 */ 152, 1, 0,234,172, 50, 76,224,178, 48,193,225, 6, 96,100,224, +/* 0x1290 */ 2, 0,100,224,129, 95,129,226, 8,160,160,227, 16,128,160,227, +/* 0x12a0 */ 10,112,160,225, 1, 16,160,227, 1, 48,129,226, 1, 4, 80,227, +/* 0x12b0 */ 129, 64,160,225, 3, 16,129,224,164, 1, 0, 42, 9, 0, 94,225, +/* 0x12c0 */ 0, 4,160,225, 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225, +/* 0x12d0 */ 180, 48,149,225,160, 37,160,225,147, 2, 12,224, 2, 43, 99,226, +/* 0x12e0 */ 12, 0, 86,225,194, 34,131,224,163, 50, 67,224, 0, 0,108,224, +/* 0x12f0 */ 4, 16,160, 49, 12, 0,160, 49,180, 32,133, 49, 6, 96,108, 32, +/* 0x1300 */ 180, 48,133, 33, 1,112, 87,226,154, 1, 0, 26, 1, 32,160,227, +/* 0x1310 */ 18, 58, 65,224, 24, 80,157,229, 8, 48,131,224, 3, 0, 85,227, +/* 0x1320 */ 40, 48,141,229, 36, 2, 0,202, 8,192,157,229, 3, 0, 83,227, +/* 0x1330 */ 3, 48,160,163,131, 51,140,224, 54, 94,131,226, 2,112,160,225, +/* 0x1340 */ 6,128,160,227, 1, 48,135,226, 1, 4, 80,227,135, 64,160,225, +/* 0x1350 */ 3,112,135,224,203, 1, 0, 42, 9, 0, 94,225, 0, 4,160,225, +/* 0x1360 */ 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225,180, 48,149,225, +/* 0x1370 */ 160, 37,160,225,147, 2, 12,224, 2, 43, 99,226, 12, 0, 86,225, +/* 0x1380 */ 194, 34,131,224,163, 50, 67,224, 0, 0,108,224, 4,112,160, 49, +/* 0x1390 */ 12, 0,160, 49,180, 32,133, 49, 6, 96,108, 32,180, 48,133, 33, +/* 0x13a0 */ 1,128, 88,226,193, 1, 0, 26, 64, 32, 71,226, 3, 0, 82,227, +/* 0x13b0 */ 2, 80,160,209, 30, 2, 0,218,194, 64,160,225, 13, 0, 82,227, +/* 0x13c0 */ 1, 48, 2,226, 1,112, 68,226, 2,192,131,227, 5, 64, 68,194, +/* 0x13d0 */ 8, 32,160,193,237, 1, 0,202, 28, 87,160,225, 8, 16,157,229, +/* 0x13e0 */ 133, 48,129,224,130, 48, 67,224, 85, 78,131,226, 14, 64,132,226, +/* 0x13f0 */ 1, 2, 0,234, 1, 4, 80,227, 1, 32,130,226,245, 1, 0, 42, +/* 0x1400 */ 9, 0, 94,225, 0, 4,160,225, 73, 2, 0, 10, 1, 48,222,228, +/* 0x1410 */ 6,100,131,225,160, 0,160,225, 0, 0, 86,225,140,192,160,225, +/* 0x1420 */ 6, 96, 96, 32, 1,192,140, 35, 4, 0, 82,225,237, 1, 0, 26, +/* 0x1430 */ 8, 32,157,229, 25, 77,130,226, 4, 64,132,226, 12, 82,160,225, +/* 0x1440 */ 4,112,160,227, 1,160,160,227, 10,128,160,225, 1, 4, 80,227, +/* 0x1450 */ 136, 16,160,225, 1,192,136,226, 12, 2, 0, 42, 9, 0, 94,225, +/* 0x1460 */ 0, 4,160,225, 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225, +/* 0x1470 */ 177, 48,148,225,160, 37,160,225, 12,128,136,224,147, 2, 12,224, +/* 0x1480 */ 2, 43, 99,226, 12, 0, 86,225,194, 34,131,224,163, 50, 67,224, +/* 0x1490 */ 10, 80,133, 33, 1,128,160, 49, 12, 0,160, 49,177, 32,132, 49, +/* 0x14a0 */ 177, 48,132, 33, 6, 96,108, 32, 0, 0,108, 32, 1,112, 87,226, +/* 0x14b0 */ 138,160,160,225, 3, 2, 0, 26, 1, 80,149,226, 44, 80,141,229, +/* 0x14c0 */ 60, 2, 0, 10, 24, 48,157,229, 7, 48,131,226, 24, 48,141,229, +/* 0x14d0 */ 44, 80,157,229, 11, 0, 85,225, 73, 2, 0,138, 40,192,157,229, +/* 0x14e0 */ 84, 16,157,229, 11, 48,101,224, 2, 32,140,226, 3, 64,129,224, +/* 0x14f0 */ 11,192,129,224, 1, 32, 82,226, 88, 80,157,229, 0, 48,160, 3, +/* 0x1500 */ 1, 48,160, 19, 1,176,139,226, 5, 0, 91,225, 0, 48,160, 35, +/* 0x1510 */ 1, 48, 3, 50, 1,112,212,228, 0, 0, 83,227, 1,112,204,228, +/* 0x1520 */ 45, 2, 0, 26, 88,192,157,229, 12, 0, 91,225, 60, 0, 0, 58, +/* 0x1530 */ 1, 4, 80,227, 65, 2, 0, 42, 9, 0, 94,225, 73, 2, 0, 10, +/* 0x1540 */ 1,224,142,226, 4, 0,157,229, 0, 16,157,229, 92, 32,157,229, +/* 0x1550 */ 14, 48, 96,224, 0, 0,160,227, 0, 48,129,229, 0,176,130,229, +/* 0x1560 */ 74, 2, 0,234, 1, 0,160,227, 48,208,141,226,240,143,189,232, +/* 0x1570 */ 248, 79, 45,233, 1,192,130,224, 40,144,157,229, 44,112,157,229, +/* 0x1580 */ 1,128,160,225, 9,160,135,224, 4,176,128,226, 0, 96,208,229, +/* 0x1590 */ 1, 80,208,229, 2, 64,208,229, 6,224,133,224, 0,112,224,227, +/* 0x15a0 */ 23, 85,224,225, 23, 68,224,225, 1, 48,160,227, 1, 32,160,227, +/* 0x15b0 */ 1, 16,160,227, 1, 0,160,227,255, 95, 45,233, 0, 96,160,227, +/* 0x15c0 */ 28, 96,141,229, 3, 44,160,227, 18, 46,160,225, 54, 32,130,226, +/* 0x15d0 */ 7, 44,130,226, 11, 16,160,225, 1, 11,160,227, 1, 3,128,227, +/* 0x15e0 */ 4, 0,129,228, 2, 32, 82,226, 26, 0, 0,202, 5, 0,136,226, +/* 0x15f0 */ 5, 1, 0,235, 8, 0, 80,225, 30, 0, 0, 26, 36, 48,157,229, +/* 0x1600 */ 16, 32,157,229, 3, 64, 73,224, 2, 0, 4,224, 44, 0,141,229, +/* 0x1610 */ 6, 2,128,224, 0, 16,139,226, 9, 1, 0,235, 80, 0, 0, 26, +/* 0x1620 */ 20, 48,157,229, 24, 32,157,229, 4, 48, 3,224, 28, 0,221,229, +/* 0x1630 */ 19, 50,160,225, 8, 32, 98,226, 48, 50,131,224,108,160,139,226, +/* 0x1640 */ 131, 48,131,224, 14,172,138,226, 1, 0,160,227,131,164,138,224, +/* 0x1650 */ 7, 0, 86,227, 69, 0, 0, 58, 0, 16,157,229, 1, 80, 89,231, +/* 0x1660 */ 133, 80,160,225, 2, 28,138,226, 1, 76, 5,226,132, 16,129,224, +/* 0x1670 */ 11, 1, 0,235, 1, 48, 0,226, 36, 4, 83,225, 71, 0, 0, 26, +/* 0x1680 */ 1, 12, 80,227, 58, 0, 0, 58, 73, 0, 0,234, 10, 16,160,225, +/* 0x1690 */ 11, 1, 0,235, 1, 12, 80,227, 69, 0, 0, 58, 6, 48,160,227, +/* 0x16a0 */ 10, 0, 86,227, 3, 48,160, 51, 4, 0, 86,227, 6, 48,160, 49, +/* 0x16b0 */ 3, 96, 70,224,112, 0, 0,234, 6, 29,139,226, 8, 1, 0,235, +/* 0x16c0 */ 95, 0, 0, 26, 8, 48,157,229, 4, 32,157,229, 0, 16,157,229, +/* 0x16d0 */ 12, 48,141,229, 8, 32,141,229, 4, 16,141,229, 7, 0, 86,227, +/* 0x16e0 */ 3, 96,160,227, 0, 96,160, 51,100,160,139,226, 6,172,138,226, +/* 0x16f0 */ 135, 0, 0,234,102, 31,139,226, 8, 1, 0,235,114, 0, 0, 26, +/* 0x1700 */ 44, 48,157,229, 30, 30,139,226, 6, 2,131,224, 9, 1, 0,235, +/* 0x1710 */ 130, 0, 0, 26, 7, 0, 86,227, 11, 96,160,227, 9, 96,160, 51, +/* 0x1720 */ 36, 48,157,229, 0, 16,157,229, 3, 64, 73,224, 1, 0, 84,225, +/* 0x1730 */ 253, 0, 0, 58, 1, 0, 89,231, 1, 0,201,228,237, 0, 0,234, +/* 0x1740 */ 27, 30,139,226, 8, 1, 0,235, 4, 64,157,229,127, 0, 0, 10, +/* 0x1750 */ 114, 31,139,226, 8, 1, 0,235, 8, 64,157,229,125, 0, 0, 10, +/* 0x1760 */ 8, 48,157,229, 12, 64,157,229, 12, 48,141,229, 4, 48,157,229, +/* 0x1770 */ 8, 48,141,229, 0, 16,157,229, 0, 64,141,229, 4, 16,141,229, +/* 0x1780 */ 7, 0, 86,227, 11, 96,160,227, 8, 96,160, 51,104,160,139,226, +/* 0x1790 */ 10,172,138,226, 0, 16,138,226, 10, 1, 0,235,144, 0, 0, 26, +/* 0x17a0 */ 44, 48,157,229, 4, 80,138,226, 0, 32,160,227, 3, 82,133,224, +/* 0x17b0 */ 8, 64,160,227,156, 0, 0,234, 2, 16,138,226, 10, 1, 0,235, +/* 0x17c0 */ 153, 0, 0, 26, 44, 48,157,229, 65, 95,138,226, 8, 32,160,227, +/* 0x17d0 */ 3, 82,133,224, 8, 64,160,227,156, 0, 0,234,129, 95,138,226, +/* 0x17e0 */ 16, 32,160,227, 1, 76,160,227, 52, 32,141,229, 1, 0,160,227, +/* 0x17f0 */ 5, 16,160,225, 11, 1, 0,235, 4, 48, 80,224,158, 0, 0, 58, +/* 0x1800 */ 52, 80,157,229, 3, 80,133,224, 52, 80,141,229, 0, 16,157,229, +/* 0x1810 */ 4, 0, 86,227,225, 0, 0, 42, 7, 96,134,226, 4, 0, 85,227, +/* 0x1820 */ 3, 80,160, 35,133, 83,139,224, 54, 94,133,226, 1, 0,160,227, +/* 0x1830 */ 64, 64,160,227, 5, 16,160,225, 11, 1, 0,235, 4, 48, 80,224, +/* 0x1840 */ 175, 0, 0, 58, 44, 48,141,229, 4, 0, 83,227,221, 0, 0, 58, +/* 0x1850 */ 163, 64,160,225, 1, 64, 68,226, 1, 16, 3,226, 2, 16,129,227, +/* 0x1860 */ 14, 0, 83,227,194, 0, 0, 42, 17, 20,160,225, 94,160,139,226, +/* 0x1870 */ 3, 48, 65,224, 5,172,138,226,131,160,138,224,206, 0, 0,234, +/* 0x1880 */ 4, 64, 68,226,255, 0, 0,235,167,112,160,225, 7, 0, 92,225, +/* 0x1890 */ 7,192, 76, 32, 1, 16,161,224, 1, 64, 84,226,195, 0, 0, 26, +/* 0x18a0 */ 68,160,139,226, 6,172,138,226, 1, 18,160,225, 4, 64,160,227, +/* 0x18b0 */ 0, 16,141,229, 1, 80,160,227, 1, 0,160,227, 10, 16,160,225, +/* 0x18c0 */ 11, 1, 0,235, 1, 0, 16,227,216, 0, 0, 10, 0, 16,157,229, +/* 0x18d0 */ 5, 16,129,225, 0, 16,141,229,133, 80,160,225, 1, 64, 84,226, +/* 0x18e0 */ 209, 0, 0, 26, 0, 16,157,229,222, 0, 0,234, 44, 16,157,229, +/* 0x18f0 */ 1, 16,145,226, 0, 16,141,229, 52, 80,157,229, 36, 48,157,229, +/* 0x1900 */ 2, 80,133,226, 3, 48, 73,224, 3, 0, 81,225,253, 0, 0,138, +/* 0x1910 */ 40, 32,157,229, 1, 0, 89,231, 1, 0,201,228, 2, 0, 89,225, +/* 0x1920 */ 241, 0, 0, 42, 1, 80, 85,226,231, 0, 0, 26, 28, 0,205,229, +/* 0x1930 */ 40, 32,157,229, 2, 0, 89,225, 33, 0, 0, 58,255, 0, 0,235, +/* 0x1940 */ 0, 0,160,227, 32, 32,157,229, 2, 48, 72,224, 56, 32,157,229, +/* 0x1950 */ 0, 48,130,229, 36, 32,157,229, 2, 48, 73,224,104, 32,157,229, +/* 0x1960 */ 0, 48,130,229, 60,208,141,226,240,143,189,232, 1, 0,160,227, +/* 0x1970 */ 243, 0, 0,234, 1, 4, 87,227, 14,240,160, 33, 48, 48,157,229, +/* 0x1980 */ 7,116,160,225, 8, 0, 83,225,253, 0, 0, 10, 1, 48,216,228, +/* 0x1990 */ 12,196,131,225, 14,240,160,225, 6, 0,160,225,128, 16,129,224, +/* 0x19a0 */ 0, 0,160,227,128, 16,129,224, 1, 4, 87,227, 14, 32,160,225, +/* 0x19b0 */ 1, 1, 0, 59,176, 48,209,225,167,229,160,225,147, 14, 14,224, +/* 0x19c0 */ 14, 0, 92,225, 14,112,160, 49, 14,112, 71, 32, 2,235, 99, 50, +/* 0x19d0 */ 14,192, 76, 32,174, 50,131, 48,163, 50, 67, 32, 0, 0,176,224, +/* 0x19e0 */ 176, 48,193,225, 2,240,160,225, 0, 46,115,121,109,116, 97, 98, +/* 0x19f0 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, +/* 0x1a00 */ 97, 98, 0, 46,114,101,108, 83, 79, 95, 72, 69, 65, 68, 0,112, +/* 0x1a10 */ 116,114, 95, 78, 69, 88, 84, 0, 46,114,101,108, 83, 79, 95, 84, +/* 0x1a20 */ 65, 73, 76, 0, 46,114,101,108, 83, 79, 95, 77, 65, 73, 78, 0, +/* 0x1a30 */ 46,114,101,108, 69, 88, 80, 95, 72, 69, 65, 68, 0, 69, 88, 80, +/* 0x1a40 */ 95, 84, 65, 73, 76, 0, 46,114,101,108, 78, 82, 86, 50, 69, 0, +/* 0x1a50 */ 46,114,101,108, 78, 82, 86, 50, 68, 0, 46,114,101,108, 78, 82, +/* 0x1a60 */ 86, 50, 66, 0, 46,114,101,108, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1a70 */ 48, 48, 0, 46,114,101,108, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x1a80 */ 48, 0, 46,114,101,108, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1a90 */ 0, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 0, 0, 0, 0, 0, +/* 0x1aa0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ab0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ac0 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, +/* 0x1ad0 */ 0, 0, 0, 0, 52, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ae0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, +/* 0x1af0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 34, 0, 0, +/* 0x1b00 */ 8, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, +/* 0x1b10 */ 8, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, +/* 0x1b20 */ 0, 0, 0, 0, 72, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b30 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, +/* 0x1b40 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, +/* 0x1b50 */ 84, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1b60 */ 0, 0, 0, 0, 48, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b70 */ 0, 0, 0, 0,188, 34, 0, 0,136, 0, 0, 0, 25, 0, 0, 0, +/* 0x1b80 */ 4, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 64, 0, 0, 0, +/* 0x1b90 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,164, 2, 0, 0, +/* 0x1ba0 */ 44, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, +/* 0x1bb0 */ 0, 0, 0, 0, 60, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x1bc0 */ 0, 0, 0, 0, 68, 35, 0, 0,232, 1, 0, 0, 25, 0, 0, 0, +/* 0x1bd0 */ 6, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 76, 0, 0, 0, +/* 0x1be0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,208, 7, 0, 0, +/* 0x1bf0 */ 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1c00 */ 0, 0, 0, 0, 72, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x1c10 */ 0, 0, 0, 0, 44, 37, 0, 0, 56, 0, 0, 0, 25, 0, 0, 0, +/* 0x1c20 */ 8, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 85, 0, 0, 0, +/* 0x1c30 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,172, 8, 0, 0, +/* 0x1c40 */ 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1c50 */ 0, 0, 0, 0, 98, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, +/* 0x1c60 */ 0, 0, 0, 0,208, 8, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, +/* 0x1c70 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, +/* 0x1c80 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 37, 0, 0, +/* 0x1c90 */ 184, 0, 0, 0, 25, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, +/* 0x1ca0 */ 8, 0, 0, 0,108, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, +/* 0x1cb0 */ 0, 0, 0, 0,228, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, +/* 0x1cc0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, +/* 0x1cd0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 38, 0, 0, +/* 0x1ce0 */ 152, 0, 0, 0, 25, 0, 0, 0, 13, 0, 0, 0, 4, 0, 0, 0, +/* 0x1cf0 */ 8, 0, 0, 0,118, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, +/* 0x1d00 */ 0, 0, 0, 0,228, 10, 0, 0,196, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d10 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 0, +/* 0x1d20 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 38, 0, 0, +/* 0x1d30 */ 120, 0, 0, 0, 25, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, +/* 0x1d40 */ 8, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d50 */ 0, 0, 0, 0,168, 11, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d60 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, +/* 0x1d70 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 39, 0, 0, +/* 0x1d80 */ 32, 0, 0, 0, 25, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, +/* 0x1d90 */ 8, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1da0 */ 0, 0, 0, 0, 56, 12, 0, 0, 56, 9, 0, 0, 0, 0, 0, 0, +/* 0x1db0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,139, 0, 0, 0, +/* 0x1dc0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 39, 0, 0, +/* 0x1dd0 */ 72, 2, 0, 0, 25, 0, 0, 0, 19, 0, 0, 0, 4, 0, 0, 0, +/* 0x1de0 */ 8, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1df0 */ 0, 0, 0, 0,112, 21, 0, 0,120, 4, 0, 0, 0, 0, 0, 0, +/* 0x1e00 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,154, 0, 0, 0, +/* 0x1e10 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 41, 0, 0, +/* 0x1e20 */ 176, 1, 0, 0, 25, 0, 0, 0, 21, 0, 0, 0, 4, 0, 0, 0, +/* 0x1e30 */ 8, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e40 */ 0, 0, 0, 0,232, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e50 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, +/* 0x1e60 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 25, 0, 0, +/* 0x1e70 */ 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1e80 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e90 */ 0, 0, 0, 0,212, 30, 0, 0,192, 2, 0, 0, 26, 0, 0, 0, +/* 0x1ea0 */ 14, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, +/* 0x1eb0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 33, 0, 0, +/* 0x1ec0 */ 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1ed0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ee0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ef0 */ 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f00 */ 3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f10 */ 3, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f20 */ 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f30 */ 3, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f40 */ 3, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f50 */ 3, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f60 */ 3, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f70 */ 3, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f80 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f90 */ 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fa0 */ 3, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fb0 */ 3, 0, 23, 0, 1, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fc0 */ 16, 0, 8, 0, 10, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fd0 */ 16, 0, 4, 0, 17, 0, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fe0 */ 16, 0, 4, 0, 32, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ff0 */ 16, 0, 4, 0, 39, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, +/* 0x2000 */ 16, 0, 4, 0, 46, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, +/* 0x2010 */ 16, 0, 4, 0, 55, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, +/* 0x2020 */ 16, 0, 4, 0, 65, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, +/* 0x2030 */ 16, 0, 4, 0, 70, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, +/* 0x2040 */ 16, 0, 4, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2050 */ 18, 0, 10, 0, 88, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, +/* 0x2060 */ 16, 0, 4, 0,102, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, +/* 0x2070 */ 16, 0, 4, 0,108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, +/* 0x2080 */ 18, 0, 13, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2090 */ 16, 0, 1, 0,136, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x20a0 */ 16, 0, 4, 0,141, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, +/* 0x20b0 */ 16, 0, 4, 0,148, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, +/* 0x20c0 */ 16, 0, 4, 0,157, 0, 0, 0,208, 1, 0, 0, 0, 0, 0, 0, +/* 0x20d0 */ 16, 0, 4, 0,164, 0, 0, 0, 0, 0, 0, 0,196, 0, 0, 0, +/* 0x20e0 */ 18, 0, 15, 0,187, 0, 0, 0,232, 1, 0, 0, 0, 0, 0, 0, +/* 0x20f0 */ 16, 0, 4, 0,197, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, +/* 0x2100 */ 16, 0, 4, 0,205, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, +/* 0x2110 */ 18, 0, 11, 0,228, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, +/* 0x2120 */ 16, 0, 4, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2130 */ 16, 0, 21, 0,244, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, +/* 0x2140 */ 16, 0, 4, 0,248, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, +/* 0x2150 */ 16, 0, 4, 0,253, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, +/* 0x2160 */ 16, 0, 4, 0, 3, 1, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, +/* 0x2170 */ 16, 0, 4, 0, 12, 1, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, +/* 0x2180 */ 16, 0, 4, 0, 18, 1, 0, 0,176, 1, 0, 0,124, 3, 0, 0, +/* 0x2190 */ 18, 0, 6, 0, 0,102, 95,101,120,112, 97,110,100, 0,109,117, +/* 0x21a0 */ 110,109, 97,112, 0,103,101,116, 95,115,121,115, 95,109,117,110, +/* 0x21b0 */ 109, 97,112, 0,103,101,116,112,105,100, 0,109,101,109, 99,112, +/* 0x21c0 */ 121, 0,114,101, 97,100,108,105,110,107, 0, 95, 95,117,100,105, +/* 0x21d0 */ 118,115,105, 51, 0,109,109, 97,112, 0, 95, 95, 99,108,101, 97, +/* 0x21e0 */ 114, 95, 99, 97, 99,104,101, 0,101,111,102, 0,109,109, 97,112, +/* 0x21f0 */ 95,112,114,105,118, 97,110,111,110, 0,119,114,105,116,101, 0, +/* 0x2200 */ 117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,112, +/* 0x2210 */ 114,101,115,115, 95, 56, 0,102,111,108,100, 0,114,101, 97,100, +/* 0x2220 */ 0,117,110,108,105,110,107, 0,117,110,100,101,114,108, 97,121, +/* 0x2230 */ 0,109,101,109,115,101,116, 0,117, 99,108, 95,110,114,118, 50, +/* 0x2240 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 0,109, +/* 0x2250 */ 121, 95, 97,108,108,111, 99, 97, 0,109,121, 95, 98,107,112,116, +/* 0x2260 */ 0,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109, +/* 0x2270 */ 112,114,101,115,115, 95, 56, 0,101,120,105,116, 0, 76,122,109, +/* 0x2280 */ 97, 68,101, 99,111,100,101, 0, 98,114,107, 0,111,112,101,110, +/* 0x2290 */ 0,100,105,118, 49, 48, 0,109,112,114,111,116,101, 99,116, 0, +/* 0x22a0 */ 99,108,111,115,101, 0,117,112,120, 95,115,111, 95,109, 97,105, +/* 0x22b0 */ 110, 0, 0, 0, 0, 0, 0, 0, 1, 43, 0, 0,168, 0, 0, 0, +/* 0x22c0 */ 1, 1, 0, 0,188, 0, 0, 0, 1, 1, 0, 0,208, 0, 0, 0, +/* 0x22d0 */ 1, 1, 0, 0,220, 0, 0, 0, 1, 1, 0, 0,232, 0, 0, 0, +/* 0x22e0 */ 1, 1, 0, 0, 20, 1, 0, 0, 1, 1, 0, 0, 32, 1, 0, 0, +/* 0x22f0 */ 1, 1, 0, 0, 48, 1, 0, 0, 1, 1, 0, 0, 60, 1, 0, 0, +/* 0x2300 */ 1, 1, 0, 0, 76, 1, 0, 0, 1, 1, 0, 0, 84, 1, 0, 0, +/* 0x2310 */ 1, 1, 0, 0,108, 1, 0, 0, 1, 1, 0, 0,120, 1, 0, 0, +/* 0x2320 */ 1, 1, 0, 0,156, 1, 0, 0, 1, 18, 0, 0,184, 1, 0, 0, +/* 0x2330 */ 1, 24, 0, 0,196, 1, 0, 0, 1, 18, 0, 0,224, 1, 0, 0, +/* 0x2340 */ 1, 31, 0, 0, 4, 0, 0, 0, 1, 34, 0, 0, 12, 0, 0, 0, +/* 0x2350 */ 1, 36, 0, 0, 44, 0, 0, 0, 1, 2, 0, 0, 56, 0, 0, 0, +/* 0x2360 */ 1, 2, 0, 0, 88, 0, 0, 0, 1, 2, 0, 0,144, 0, 0, 0, +/* 0x2370 */ 1, 2, 0, 0,160, 0, 0, 0, 1, 2, 0, 0,172, 0, 0, 0, +/* 0x2380 */ 1, 2, 0, 0,192, 0, 0, 0, 1, 2, 0, 0,204, 0, 0, 0, +/* 0x2390 */ 1, 2, 0, 0,212, 0, 0, 0, 1, 2, 0, 0,216, 0, 0, 0, +/* 0x23a0 */ 1, 2, 0, 0,232, 0, 0, 0, 1, 2, 0, 0,244, 0, 0, 0, +/* 0x23b0 */ 1, 2, 0, 0, 0, 1, 0, 0, 1, 2, 0, 0, 8, 1, 0, 0, +/* 0x23c0 */ 1, 2, 0, 0, 24, 1, 0, 0, 1, 2, 0, 0, 48, 1, 0, 0, +/* 0x23d0 */ 1, 14, 0, 0, 56, 1, 0, 0, 1, 2, 0, 0, 72, 1, 0, 0, +/* 0x23e0 */ 1, 2, 0, 0, 80, 1, 0, 0, 1, 2, 0, 0,112, 1, 0, 0, +/* 0x23f0 */ 1, 2, 0, 0,124, 1, 0, 0, 1, 2, 0, 0,160, 1, 0, 0, +/* 0x2400 */ 1, 2, 0, 0, 0, 2, 0, 0, 1, 21, 0, 0, 16, 2, 0, 0, +/* 0x2410 */ 1, 18, 0, 0, 52, 2, 0, 0, 1, 41, 0, 0, 80, 2, 0, 0, +/* 0x2420 */ 1, 2, 0, 0,100, 2, 0, 0, 1, 2, 0, 0,140, 2, 0, 0, +/* 0x2430 */ 1, 2, 0, 0,152, 2, 0, 0, 1, 2, 0, 0,168, 2, 0, 0, +/* 0x2440 */ 1, 2, 0, 0,240, 2, 0, 0, 1, 2, 0, 0,252, 2, 0, 0, +/* 0x2450 */ 1, 2, 0, 0, 16, 3, 0, 0, 1, 2, 0, 0, 24, 3, 0, 0, +/* 0x2460 */ 1, 2, 0, 0, 44, 3, 0, 0, 1, 2, 0, 0,116, 3, 0, 0, +/* 0x2470 */ 1, 30, 0, 0,160, 3, 0, 0, 1, 2, 0, 0,172, 3, 0, 0, +/* 0x2480 */ 1, 2, 0, 0,184, 3, 0, 0, 1, 2, 0, 0,188, 3, 0, 0, +/* 0x2490 */ 1, 16, 0, 0,204, 3, 0, 0, 1, 2, 0, 0,216, 3, 0, 0, +/* 0x24a0 */ 1, 2, 0, 0,236, 3, 0, 0, 1, 2, 0, 0, 16, 4, 0, 0, +/* 0x24b0 */ 1, 2, 0, 0, 20, 4, 0, 0, 1, 2, 0, 0, 52, 4, 0, 0, +/* 0x24c0 */ 1, 21, 0, 0, 60, 4, 0, 0, 1, 2, 0, 0, 64, 4, 0, 0, +/* 0x24d0 */ 1, 2, 0, 0, 92, 4, 0, 0, 1, 22, 0, 0, 96, 4, 0, 0, +/* 0x24e0 */ 1, 2, 0, 0,144, 4, 0, 0, 1, 41, 0, 0,164, 4, 0, 0, +/* 0x24f0 */ 1, 2, 0, 0,168, 4, 0, 0, 1, 2, 0, 0,192, 4, 0, 0, +/* 0x2500 */ 1, 2, 0, 0,196, 4, 0, 0, 1, 2, 0, 0,224, 4, 0, 0, +/* 0x2510 */ 1, 22, 0, 0,240, 4, 0, 0, 1, 41, 0, 0,244, 4, 0, 0, +/* 0x2520 */ 1, 2, 0, 0, 8, 5, 0, 0, 1, 15, 0, 0, 40, 0, 0, 0, +/* 0x2530 */ 1, 3, 0, 0, 68, 0, 0, 0, 1, 3, 0, 0,132, 0, 0, 0, +/* 0x2540 */ 1, 3, 0, 0,148, 0, 0, 0, 1, 3, 0, 0,168, 0, 0, 0, +/* 0x2550 */ 1, 3, 0, 0,184, 0, 0, 0, 1, 3, 0, 0,204, 0, 0, 0, +/* 0x2560 */ 1, 22, 0, 0, 16, 0, 0, 0, 1, 4, 0, 0, 68, 0, 0, 0, +/* 0x2570 */ 1, 4, 0, 0, 72, 0, 0, 0, 1, 4, 0, 0, 80, 0, 0, 0, +/* 0x2580 */ 1, 4, 0, 0, 92, 0, 0, 0, 1, 4, 0, 0,104, 0, 0, 0, +/* 0x2590 */ 1, 4, 0, 0,116, 0, 0, 0, 1, 4, 0, 0,120, 0, 0, 0, +/* 0x25a0 */ 1, 4, 0, 0,132, 0, 0, 0, 1, 4, 0, 0,148, 0, 0, 0, +/* 0x25b0 */ 1, 4, 0, 0,156, 0, 0, 0, 1, 4, 0, 0,160, 0, 0, 0, +/* 0x25c0 */ 1, 4, 0, 0,168, 0, 0, 0, 1, 4, 0, 0,172, 0, 0, 0, +/* 0x25d0 */ 1, 4, 0, 0,184, 0, 0, 0, 1, 4, 0, 0,188, 0, 0, 0, +/* 0x25e0 */ 1, 4, 0, 0,196, 0, 0, 0, 1, 4, 0, 0,208, 0, 0, 0, +/* 0x25f0 */ 1, 4, 0, 0,212, 0, 0, 0, 1, 4, 0, 0,220, 0, 0, 0, +/* 0x2600 */ 1, 4, 0, 0,228, 0, 0, 0, 1, 4, 0, 0, 12, 1, 0, 0, +/* 0x2610 */ 1, 4, 0, 0, 16, 1, 0, 0, 1, 4, 0, 0, 16, 0, 0, 0, +/* 0x2620 */ 1, 5, 0, 0, 68, 0, 0, 0, 1, 5, 0, 0, 72, 0, 0, 0, +/* 0x2630 */ 1, 5, 0, 0, 80, 0, 0, 0, 1, 5, 0, 0, 92, 0, 0, 0, +/* 0x2640 */ 1, 5, 0, 0,104, 0, 0, 0, 1, 5, 0, 0,116, 0, 0, 0, +/* 0x2650 */ 1, 5, 0, 0,120, 0, 0, 0, 1, 5, 0, 0,132, 0, 0, 0, +/* 0x2660 */ 1, 5, 0, 0,148, 0, 0, 0, 1, 5, 0, 0,156, 0, 0, 0, +/* 0x2670 */ 1, 5, 0, 0,164, 0, 0, 0, 1, 5, 0, 0,176, 0, 0, 0, +/* 0x2680 */ 1, 5, 0, 0,184, 0, 0, 0, 1, 5, 0, 0,196, 0, 0, 0, +/* 0x2690 */ 1, 5, 0, 0,208, 0, 0, 0, 1, 5, 0, 0,212, 0, 0, 0, +/* 0x26a0 */ 1, 5, 0, 0,248, 0, 0, 0, 1, 5, 0, 0,252, 0, 0, 0, +/* 0x26b0 */ 1, 5, 0, 0, 16, 0, 0, 0, 1, 6, 0, 0, 72, 0, 0, 0, +/* 0x26c0 */ 1, 6, 0, 0, 80, 0, 0, 0, 1, 6, 0, 0, 84, 0, 0, 0, +/* 0x26d0 */ 1, 6, 0, 0,100, 0, 0, 0, 1, 6, 0, 0,104, 0, 0, 0, +/* 0x26e0 */ 1, 6, 0, 0,108, 0, 0, 0, 1, 6, 0, 0,120, 0, 0, 0, +/* 0x26f0 */ 1, 6, 0, 0,136, 0, 0, 0, 1, 6, 0, 0,140, 0, 0, 0, +/* 0x2700 */ 1, 6, 0, 0,148, 0, 0, 0, 1, 6, 0, 0,156, 0, 0, 0, +/* 0x2710 */ 1, 6, 0, 0,160, 0, 0, 0, 1, 6, 0, 0,188, 0, 0, 0, +/* 0x2720 */ 1, 6, 0, 0,192, 0, 0, 0, 1, 6, 0, 0, 8, 0, 0, 0, +/* 0x2730 */ 1, 7, 0, 0, 76, 0, 0, 0, 1, 7, 0, 0,128, 0, 0, 0, +/* 0x2740 */ 1, 7, 0, 0,140, 0, 0, 0, 1, 7, 0, 0,116, 0, 0, 0, +/* 0x2750 */ 1, 8, 0, 0,144, 0, 0, 0, 1, 8, 0, 0,184, 0, 0, 0, +/* 0x2760 */ 1, 8, 0, 0,204, 0, 0, 0, 1, 8, 0, 0,244, 0, 0, 0, +/* 0x2770 */ 1, 8, 0, 0, 0, 1, 0, 0, 1, 8, 0, 0, 8, 1, 0, 0, +/* 0x2780 */ 1, 8, 0, 0, 68, 1, 0, 0, 1, 8, 0, 0,144, 1, 0, 0, +/* 0x2790 */ 1, 8, 0, 0,204, 1, 0, 0, 1, 8, 0, 0,216, 1, 0, 0, +/* 0x27a0 */ 1, 8, 0, 0, 4, 2, 0, 0, 1, 8, 0, 0, 24, 2, 0, 0, +/* 0x27b0 */ 1, 8, 0, 0, 32, 2, 0, 0, 1, 8, 0, 0, 52, 2, 0, 0, +/* 0x27c0 */ 1, 8, 0, 0, 60, 2, 0, 0, 1, 8, 0, 0, 64, 2, 0, 0, +/* 0x27d0 */ 1, 8, 0, 0, 76, 2, 0, 0, 1, 8, 0, 0, 88, 2, 0, 0, +/* 0x27e0 */ 1, 8, 0, 0,164, 2, 0, 0, 1, 8, 0, 0,200, 2, 0, 0, +/* 0x27f0 */ 1, 8, 0, 0,232, 2, 0, 0, 1, 8, 0, 0, 4, 3, 0, 0, +/* 0x2800 */ 1, 8, 0, 0, 12, 3, 0, 0, 1, 8, 0, 0, 60, 3, 0, 0, +/* 0x2810 */ 1, 8, 0, 0,136, 3, 0, 0, 1, 8, 0, 0,160, 3, 0, 0, +/* 0x2820 */ 1, 8, 0, 0,168, 3, 0, 0, 1, 8, 0, 0,204, 3, 0, 0, +/* 0x2830 */ 1, 8, 0, 0,224, 3, 0, 0, 1, 8, 0, 0,232, 3, 0, 0, +/* 0x2840 */ 1, 8, 0, 0, 36, 4, 0, 0, 1, 8, 0, 0, 56, 4, 0, 0, +/* 0x2850 */ 1, 8, 0, 0,108, 4, 0, 0, 1, 8, 0, 0,132, 4, 0, 0, +/* 0x2860 */ 1, 8, 0, 0,140, 4, 0, 0, 1, 8, 0, 0,176, 4, 0, 0, +/* 0x2870 */ 1, 8, 0, 0,212, 4, 0, 0, 1, 8, 0, 0,236, 4, 0, 0, +/* 0x2880 */ 1, 8, 0, 0,244, 4, 0, 0, 1, 8, 0, 0, 24, 5, 0, 0, +/* 0x2890 */ 1, 8, 0, 0, 60, 5, 0, 0, 1, 8, 0, 0,152, 5, 0, 0, +/* 0x28a0 */ 1, 8, 0, 0,160, 5, 0, 0, 1, 8, 0, 0,192, 5, 0, 0, +/* 0x28b0 */ 1, 8, 0, 0,228, 5, 0, 0, 1, 8, 0, 0,252, 5, 0, 0, +/* 0x28c0 */ 1, 8, 0, 0, 4, 6, 0, 0, 1, 8, 0, 0, 36, 6, 0, 0, +/* 0x28d0 */ 1, 8, 0, 0, 72, 6, 0, 0, 1, 8, 0, 0,128, 6, 0, 0, +/* 0x28e0 */ 1, 8, 0, 0,140, 6, 0, 0, 1, 8, 0, 0,208, 6, 0, 0, +/* 0x28f0 */ 1, 8, 0, 0,236, 6, 0, 0, 1, 8, 0, 0, 28, 7, 0, 0, +/* 0x2900 */ 1, 8, 0, 0, 40, 7, 0, 0, 1, 8, 0, 0,108, 7, 0, 0, +/* 0x2910 */ 1, 8, 0, 0,124, 7, 0, 0, 1, 8, 0, 0,156, 7, 0, 0, +/* 0x2920 */ 1, 8, 0, 0,184, 7, 0, 0, 1, 8, 0, 0,196, 7, 0, 0, +/* 0x2930 */ 1, 8, 0, 0,208, 7, 0, 0, 1, 8, 0, 0,244, 7, 0, 0, +/* 0x2940 */ 1, 8, 0, 0, 32, 8, 0, 0, 1, 8, 0, 0, 44, 8, 0, 0, +/* 0x2950 */ 1, 8, 0, 0,124, 8, 0, 0, 1, 8, 0, 0,136, 8, 0, 0, +/* 0x2960 */ 1, 8, 0, 0,160, 8, 0, 0, 1, 8, 0, 0,232, 8, 0, 0, +/* 0x2970 */ 1, 8, 0, 0,244, 8, 0, 0, 1, 8, 0, 0,252, 8, 0, 0, +/* 0x2980 */ 1, 8, 0, 0, 4, 9, 0, 0, 1, 8, 0, 0, 40, 9, 0, 0, +/* 0x2990 */ 1, 8, 0, 0,120, 0, 0, 0, 1, 9, 0, 0,128, 0, 0, 0, +/* 0x29a0 */ 1, 9, 0, 0,136, 0, 0, 0, 1, 9, 0, 0,168, 0, 0, 0, +/* 0x29b0 */ 1, 9, 0, 0,172, 0, 0, 0, 1, 9, 0, 0,228, 0, 0, 0, +/* 0x29c0 */ 1, 9, 0, 0, 0, 1, 0, 0, 1, 9, 0, 0, 12, 1, 0, 0, +/* 0x29d0 */ 1, 9, 0, 0, 20, 1, 0, 0, 1, 9, 0, 0, 24, 1, 0, 0, +/* 0x29e0 */ 1, 9, 0, 0, 32, 1, 0, 0, 1, 9, 0, 0, 40, 1, 0, 0, +/* 0x29f0 */ 1, 9, 0, 0, 68, 1, 0, 0, 1, 9, 0, 0, 76, 1, 0, 0, +/* 0x2a00 */ 1, 9, 0, 0, 80, 1, 0, 0, 1, 9, 0, 0,128, 1, 0, 0, +/* 0x2a10 */ 1, 9, 0, 0,136, 1, 0, 0, 1, 9, 0, 0,140, 1, 0, 0, +/* 0x2a20 */ 1, 9, 0, 0,156, 1, 0, 0, 1, 9, 0, 0,160, 1, 0, 0, +/* 0x2a30 */ 1, 9, 0, 0,192, 1, 0, 0, 1, 9, 0, 0,204, 1, 0, 0, +/* 0x2a40 */ 1, 9, 0, 0,212, 1, 0, 0, 1, 9, 0, 0,220, 1, 0, 0, +/* 0x2a50 */ 1, 9, 0, 0,228, 1, 0, 0, 1, 9, 0, 0,236, 1, 0, 0, +/* 0x2a60 */ 1, 9, 0, 0, 40, 2, 0, 0, 1, 9, 0, 0, 44, 2, 0, 0, +/* 0x2a70 */ 1, 9, 0, 0, 68, 2, 0, 0, 1, 9, 0, 0, 76, 2, 0, 0, +/* 0x2a80 */ 1, 9, 0, 0, 80, 2, 0, 0, 1, 9, 0, 0,104, 2, 0, 0, +/* 0x2a90 */ 1, 9, 0, 0,132, 2, 0, 0, 1, 9, 0, 0,140, 2, 0, 0, +/* 0x2aa0 */ 1, 9, 0, 0,164, 2, 0, 0, 1, 9, 0, 0,200, 2, 0, 0, +/* 0x2ab0 */ 1, 9, 0, 0,208, 2, 0, 0, 1, 9, 0, 0,220, 2, 0, 0, +/* 0x2ac0 */ 1, 9, 0, 0,244, 2, 0, 0, 1, 9, 0, 0, 12, 3, 0, 0, +/* 0x2ad0 */ 1, 9, 0, 0, 20, 3, 0, 0, 1, 9, 0, 0, 44, 3, 0, 0, +/* 0x2ae0 */ 1, 9, 0, 0, 80, 3, 0, 0, 1, 9, 0, 0, 88, 3, 0, 0, +/* 0x2af0 */ 1, 9, 0, 0,112, 3, 0, 0, 1, 9, 0, 0,120, 3, 0, 0, +/* 0x2b00 */ 1, 9, 0, 0,156, 3, 0, 0, 1, 9, 0, 0,176, 3, 0, 0, +/* 0x2b10 */ 1, 9, 0, 0,184, 3, 0, 0, 1, 9, 0, 0,200, 3, 0, 0, +/* 0x2b20 */ 1, 9, 0, 0,204, 3, 0, 0, 1, 9, 0, 0, 0, 4, 0, 0, +/* 0x2b30 */ 1, 9, 0, 0, 24, 4, 0, 0, 1, 9, 0, 0, 64, 4, 0, 0, +/* 0x2b40 */ 1, 9, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32, +/* 0x2b50 */ 101,108,102, 51, 50, 45,108,105,116,116,108,101, 97,114,109, 10, +/* 0x2b60 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, +/* 0x2b70 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, +/* 0x2b80 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, +/* 0x2b90 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, +/* 0x2ba0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, +/* 0x2bb0 */ 10, 32, 32, 48, 32, 83, 79, 95, 72, 69, 65, 68, 32, 32, 32, 32, +/* 0x2bc0 */ 32, 32, 32, 48, 49, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, +/* 0x2bd0 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x2be0 */ 83, 10, 32, 32, 49, 32,112,116,114, 95, 78, 69, 88, 84, 32, 32, +/* 0x2bf0 */ 32, 32, 32, 32, 48, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, +/* 0x2c00 */ 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x2c10 */ 83, 10, 32, 32, 50, 32, 83, 79, 95, 84, 65, 73, 76, 32, 32, 32, +/* 0x2c20 */ 32, 32, 32, 32, 48, 50, 53, 52, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x2c30 */ 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x2c40 */ 78, 84, 83, 10, 32, 32, 51, 32, 83, 79, 95, 77, 65, 73, 78, 32, +/* 0x2c50 */ 32, 32, 32, 32, 32, 32, 48, 53, 50, 99, 32, 32, 48, 32, 32, 48, +/* 0x2c60 */ 32, 32, 48, 50, 97, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, +/* 0x2c70 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, 69, 88, 80, 95, 72, +/* 0x2c80 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,100, 99, 32, 32, 48, 32, +/* 0x2c90 */ 32, 48, 32, 32, 48, 55,100, 48, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x2ca0 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, 32, 69, 88, 80, +/* 0x2cb0 */ 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 50, 52, 32, 32, +/* 0x2cc0 */ 48, 32, 32, 48, 32, 32, 48, 56, 97, 99, 32, 32, 50, 42, 42, 48, +/* 0x2cd0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 78, +/* 0x2ce0 */ 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 49, +/* 0x2cf0 */ 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 56,100, 48, 32, 32, 50, +/* 0x2d00 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, +/* 0x2d10 */ 55, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d20 */ 48, 49, 48, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 57,101, 52, +/* 0x2d30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x2d40 */ 10, 32, 32, 56, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, +/* 0x2d50 */ 32, 32, 32, 48, 99, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 97, +/* 0x2d60 */ 101, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x2d70 */ 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x2d80 */ 48, 32, 32, 32, 32, 48, 57, 48, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x2d90 */ 48, 98, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x2da0 */ 69, 78, 84, 83, 10, 32, 49, 48, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2db0 */ 67, 50, 48, 32, 32, 32, 32, 48, 57, 51, 56, 32, 32, 48, 32, 32, +/* 0x2dc0 */ 48, 32, 32, 48, 99, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x2dd0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 49, 32, 76, 90, 77, 65, +/* 0x2de0 */ 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 52, 55, 56, 32, 32, +/* 0x2df0 */ 48, 32, 32, 48, 32, 32, 48, 49, 53, 55, 48, 32, 32, 50, 42, 42, +/* 0x2e00 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 50, 32, +/* 0x2e10 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 32, +/* 0x2e20 */ 32, 48, 32, 32, 48, 32, 32, 48, 49, 57,101, 56, 32, 32, 50, 42, +/* 0x2e30 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, +/* 0x2e40 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, +/* 0x2e50 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 79, 95, 84, +/* 0x2e60 */ 65, 73, 76, 32, 48, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, +/* 0x2e70 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, +/* 0x2e80 */ 79, 95, 77, 65, 73, 78, 32, 48, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x2e90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x2ea0 */ 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 32, 48, 32, 69, 88, 80, +/* 0x2eb0 */ 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x2ec0 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, +/* 0x2ed0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2ee0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, 78, 82, +/* 0x2ef0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x2f00 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, +/* 0x2f10 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x2f20 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 48, +/* 0x2f30 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, +/* 0x2f40 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, +/* 0x2f50 */ 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, +/* 0x2f60 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2f70 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x2f80 */ 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x2f90 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, +/* 0x2fa0 */ 79, 95, 72, 69, 65, 68, 32, 48, 32, 83, 79, 95, 72, 69, 65, 68, +/* 0x2fb0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x2fc0 */ 32, 32,112,116,114, 95, 78, 69, 88, 84, 32, 48, 32,112,116,114, +/* 0x2fd0 */ 95, 78, 69, 88, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x2fe0 */ 32, 32, 32, 32,100, 32, 32, 69, 88, 80, 95, 84, 65, 73, 76, 32, +/* 0x2ff0 */ 48, 32, 69, 88, 80, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, +/* 0x3000 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x3010 */ 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x3020 */ 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 55, 48, 32,103, 32, 32, +/* 0x3030 */ 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 32, 48, 32, +/* 0x3040 */ 102, 95,101,120,112, 97,110,100, 10, 48, 48, 48, 48, 48, 48, 53, +/* 0x3050 */ 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x3060 */ 76, 32, 48, 32,109,117,110,109, 97,112, 10, 48, 48, 48, 48, 48, +/* 0x3070 */ 48, 56, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, +/* 0x3080 */ 65, 73, 76, 32, 48, 32,103,101,116, 95,115,121,115, 95,109,117, +/* 0x3090 */ 110,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 52, 48, 32,103, 32, +/* 0x30a0 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, +/* 0x30b0 */ 103,101,116,112,105,100, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, +/* 0x30c0 */ 103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, +/* 0x30d0 */ 48, 32,109,101,109, 99,112,121, 10, 48, 48, 48, 48, 48, 48, 53, +/* 0x30e0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x30f0 */ 76, 32, 48, 32,114,101, 97,100,108,105,110,107, 10, 48, 48, 48, +/* 0x3100 */ 48, 48, 49,102, 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3110 */ 95, 84, 65, 73, 76, 32, 48, 32, 95, 95,117,100,105,118,115,105, +/* 0x3120 */ 51, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32,103, 32, 32, 32, 32, +/* 0x3130 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,109, 97, +/* 0x3140 */ 112, 10, 48, 48, 48, 48, 48, 48, 54, 56, 32,103, 32, 32, 32, 32, +/* 0x3150 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 95, 95, 99, +/* 0x3160 */ 108,101, 97,114, 95, 99, 97, 99,104,101, 10, 48, 48, 48, 48, 48, +/* 0x3170 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 69, 88, 80, 95, +/* 0x3180 */ 84, 65, 73, 76, 32, 48, 32,101,111,102, 10, 48, 48, 48, 48, 48, +/* 0x3190 */ 48, 57, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, +/* 0x31a0 */ 65, 73, 76, 32, 48, 32,109,109, 97,112, 95,112,114,105,118, 97, +/* 0x31b0 */ 110,111,110, 10, 48, 48, 48, 48, 48, 48, 50, 48, 32,103, 32, 32, +/* 0x31c0 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,119, +/* 0x31d0 */ 114,105,116,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x31e0 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 48, 48, +/* 0x31f0 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109, +/* 0x3200 */ 112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3210 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 72, 69, 65, 68, +/* 0x3220 */ 32, 48, 32,102,111,108,100, 10, 48, 48, 48, 48, 48, 48, 49, 56, +/* 0x3230 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3240 */ 32, 48, 32,114,101, 97,100, 10, 48, 48, 48, 48, 48, 48, 51, 56, +/* 0x3250 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3260 */ 32, 48, 32,117,110,108,105,110,107, 10, 48, 48, 48, 48, 48, 49, +/* 0x3270 */ 56, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x3280 */ 73, 76, 32, 48, 32,117,110,100,101,114,108, 97,121, 10, 48, 48, +/* 0x3290 */ 48, 48, 48, 49,100, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x32a0 */ 79, 95, 84, 65, 73, 76, 32, 48, 32,109,101,109,115,101,116, 10, +/* 0x32b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, +/* 0x32c0 */ 32, 78, 82, 86, 50, 66, 32, 48, 99, 52, 32,117, 99,108, 95,110, +/* 0x32d0 */ 114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, +/* 0x32e0 */ 56, 10, 48, 48, 48, 48, 48, 49,101, 56, 32,103, 32, 32, 32, 32, +/* 0x32f0 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,121, 95, +/* 0x3300 */ 97,108,108,111, 99, 97, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, +/* 0x3310 */ 103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, +/* 0x3320 */ 48, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 48, +/* 0x3330 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, +/* 0x3340 */ 32, 48, 49, 49, 52, 32,117, 99,108, 95,110,114,118, 50,101, 95, +/* 0x3350 */ 100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48, 48, 48, +/* 0x3360 */ 48, 48, 48, 49, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3370 */ 95, 84, 65, 73, 76, 32, 48, 32,101,120,105,116, 10, 48, 48, 48, +/* 0x3380 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3390 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68, +/* 0x33a0 */ 101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 52, 56, 32,103, +/* 0x33b0 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x33c0 */ 32, 98,114,107, 10, 48, 48, 48, 48, 48, 48, 50, 56, 32,103, 32, +/* 0x33d0 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, +/* 0x33e0 */ 111,112,101,110, 10, 48, 48, 48, 48, 48, 49,102, 56, 32,103, 32, +/* 0x33f0 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, +/* 0x3400 */ 100,105,118, 49, 48, 10, 48, 48, 48, 48, 48, 48, 54, 48, 32,103, +/* 0x3410 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x3420 */ 32,109,112,114,111,116,101, 99,116, 10, 48, 48, 48, 48, 48, 48, +/* 0x3430 */ 51, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x3440 */ 73, 76, 32, 48, 32, 99,108,111,115,101, 10, 48, 48, 48, 48, 48, +/* 0x3450 */ 49, 98, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 83, 79, 95, 77, +/* 0x3460 */ 65, 73, 78, 32, 48, 51, 55, 99, 32,117,112,120, 95,115,111, 95, +/* 0x3470 */ 109, 97,105,110, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x3480 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, +/* 0x3490 */ 95, 72, 69, 65, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x34a0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x34b0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x34c0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x34d0 */ 32, 32, 32, 32,117,112,120, 95,115,111, 95,109, 97,105,110, 10, +/* 0x34e0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x34f0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, 84, 65, 73, 76, +/* 0x3500 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, +/* 0x3510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x3520 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, +/* 0x3530 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3540 */ 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, +/* 0x3550 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3560 */ 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, +/* 0x3570 */ 100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3580 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, +/* 0x3590 */ 48, 48, 48,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x35a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, +/* 0x35b0 */ 48, 48, 48, 48, 48, 48,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x35c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x35d0 */ 73, 76, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, +/* 0x35e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x35f0 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, +/* 0x3600 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3610 */ 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, 51, +/* 0x3620 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3630 */ 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, +/* 0x3640 */ 48, 49, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3650 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, +/* 0x3660 */ 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3670 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x3680 */ 76, 10, 48, 48, 48, 48, 48, 49, 53, 52, 32, 82, 95, 65, 82, 77, +/* 0x3690 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x36a0 */ 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, 54, 99, 32, 82, 95, +/* 0x36b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x36c0 */ 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, 55, 56, +/* 0x36d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x36e0 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, +/* 0x36f0 */ 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3700 */ 32, 32, 32, 32, 32, 32,109,101,109, 99,112,121, 10, 48, 48, 48, +/* 0x3710 */ 48, 48, 49, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3720 */ 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 95,112,114,105, +/* 0x3730 */ 118, 97,110,111,110, 10, 48, 48, 48, 48, 48, 49, 99, 52, 32, 82, +/* 0x3740 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3750 */ 32,109,101,109, 99,112,121, 10, 48, 48, 48, 48, 48, 49,101, 48, +/* 0x3760 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3770 */ 32, 32, 32,109,101,109,115,101,116, 10, 10, 82, 69, 76, 79, 67, +/* 0x3780 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x3790 */ 82, 32, 91, 83, 79, 95, 77, 65, 73, 78, 93, 58, 10, 79, 70, 70, +/* 0x37a0 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, +/* 0x37b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, +/* 0x37c0 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x37d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, +/* 0x37e0 */ 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x37f0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,101,120,105,116, +/* 0x3800 */ 10, 48, 48, 48, 48, 48, 48, 50, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3810 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, +/* 0x3820 */ 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 51, 56, 32, 82, 95, 65, +/* 0x3830 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3840 */ 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 53, 56, 32, +/* 0x3850 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3860 */ 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, +/* 0x3870 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3880 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x3890 */ 48, 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x38a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x38b0 */ 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x38c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, +/* 0x38d0 */ 73, 78, 10, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, 65, 82, +/* 0x38e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x38f0 */ 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, +/* 0x3900 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3910 */ 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48,100, +/* 0x3920 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3930 */ 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, +/* 0x3940 */ 48, 48,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3950 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3960 */ 48, 48, 48, 48, 48,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3970 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3980 */ 78, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x3990 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x39a0 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x39b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x39c0 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 48, 56, +/* 0x39d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x39e0 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x39f0 */ 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3a00 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, +/* 0x3a10 */ 48, 48, 48, 49, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3a20 */ 52, 32, 32, 32, 32, 32, 32, 32, 32,102, 95,101,120,112, 97,110, +/* 0x3a30 */ 100, 10, 48, 48, 48, 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, +/* 0x3a40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3a50 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 52, 56, 32, 82, 95, +/* 0x3a60 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3a70 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 53, 48, +/* 0x3a80 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3a90 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x3aa0 */ 49, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3ab0 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, +/* 0x3ac0 */ 48, 48, 48, 49, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3ad0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x3ae0 */ 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x3af0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, +/* 0x3b00 */ 65, 73, 78, 10, 48, 48, 48, 48, 48, 50, 48, 48, 32, 82, 95, 65, +/* 0x3b10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109, +/* 0x3b20 */ 109, 97,112, 10, 48, 48, 48, 48, 48, 50, 49, 48, 32, 82, 95, 65, +/* 0x3b30 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109, +/* 0x3b40 */ 101,109, 99,112,121, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, +/* 0x3b50 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3b60 */ 32,109,112,114,111,116,101, 99,116, 10, 48, 48, 48, 48, 48, 50, +/* 0x3b70 */ 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3b80 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x3b90 */ 48, 48, 50, 54, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3ba0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x3bb0 */ 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3bc0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, +/* 0x3bd0 */ 73, 78, 10, 48, 48, 48, 48, 48, 50, 57, 56, 32, 82, 95, 65, 82, +/* 0x3be0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3bf0 */ 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 50, 97, 56, 32, 82, +/* 0x3c00 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3c10 */ 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 50,102, +/* 0x3c20 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3c30 */ 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, +/* 0x3c40 */ 48, 50,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3c50 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3c60 */ 48, 48, 48, 48, 51, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3c70 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3c80 */ 78, 10, 48, 48, 48, 48, 48, 51, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x3c90 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3ca0 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, +/* 0x3cb0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3cc0 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 51, 55, 52, +/* 0x3cd0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3ce0 */ 32, 32, 32,117,110,100,101,114,108, 97,121, 10, 48, 48, 48, 48, +/* 0x3cf0 */ 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3d00 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3d10 */ 48, 48, 48, 48, 51, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3d20 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3d30 */ 78, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, +/* 0x3d40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3d50 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 51, 98, 99, 32, 82, 95, +/* 0x3d60 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3d70 */ 103,101,116, 95,115,121,115, 95,109,117,110,109, 97,112, 10, 48, +/* 0x3d80 */ 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3d90 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3da0 */ 78, 10, 48, 48, 48, 48, 48, 51,100, 56, 32, 82, 95, 65, 82, 77, +/* 0x3db0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3dc0 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 51,101, 99, 32, 82, 95, +/* 0x3dd0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3de0 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 49, 48, +/* 0x3df0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3e00 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x3e10 */ 52, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3e20 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, +/* 0x3e30 */ 48, 48, 48, 52, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3e40 */ 52, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, +/* 0x3e50 */ 48, 48, 48, 52, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3e60 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x3e70 */ 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x3e80 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, +/* 0x3e90 */ 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 53, 99, 32, 82, 95, 65, +/* 0x3ea0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 95, +/* 0x3eb0 */ 95, 99,108,101, 97,114, 95, 99, 97, 99,104,101, 10, 48, 48, 48, +/* 0x3ec0 */ 48, 48, 52, 54, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3ed0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x3ee0 */ 48, 48, 48, 48, 48, 52, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3ef0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,112,114,111,116, +/* 0x3f00 */ 101, 99,116, 10, 48, 48, 48, 48, 48, 52, 97, 52, 32, 82, 95, 65, +/* 0x3f10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3f20 */ 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 97, 56, 32, +/* 0x3f30 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3f40 */ 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, +/* 0x3f50 */ 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3f60 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x3f70 */ 48, 48, 52, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3f80 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x3f90 */ 48, 48, 48, 48, 48, 52,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3fa0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 99,108,101, +/* 0x3fb0 */ 97,114, 95, 99, 97, 99,104,101, 10, 48, 48, 48, 48, 48, 52,102, +/* 0x3fc0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3fd0 */ 32, 32, 32, 32,109,112,114,111,116,101, 99,116, 10, 48, 48, 48, +/* 0x3fe0 */ 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3ff0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x4000 */ 48, 48, 48, 48, 48, 53, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4010 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,117,110,109, 97, +/* 0x4020 */ 112, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x4030 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 88, 80, 95, 72, +/* 0x4040 */ 69, 65, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x4050 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4060 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 50, 56, 32, +/* 0x4070 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4080 */ 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, +/* 0x4090 */ 48, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x40a0 */ 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, +/* 0x40b0 */ 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x40c0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, +/* 0x40d0 */ 65, 68, 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, +/* 0x40e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 88, +/* 0x40f0 */ 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, +/* 0x4100 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4110 */ 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, +/* 0x4120 */ 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4130 */ 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, +/* 0x4140 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4150 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 99,108,101, 97, +/* 0x4160 */ 114, 95, 99, 97, 99,104,101, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x4170 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x4180 */ 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x4190 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x41a0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x41b0 */ 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x41c0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x41d0 */ 48, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x41e0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x41f0 */ 48, 48, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4200 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x4210 */ 48, 48, 48, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4220 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x4230 */ 48, 48, 48, 48, 53, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4240 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, +/* 0x4250 */ 48, 48, 48, 48, 48, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4260 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, +/* 0x4270 */ 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4280 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, +/* 0x4290 */ 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x42a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x42b0 */ 69, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, +/* 0x42c0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x42d0 */ 50, 69, 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, +/* 0x42e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x42f0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, +/* 0x4300 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x4310 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, +/* 0x4320 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4330 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, +/* 0x4340 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4350 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, +/* 0x4360 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4370 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 98, 56, +/* 0x4380 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4390 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 98, +/* 0x43a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x43b0 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x43c0 */ 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x43d0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x43e0 */ 48,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x43f0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x4400 */ 48, 48,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4410 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x4420 */ 48, 48, 48,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4430 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x4440 */ 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4450 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, +/* 0x4460 */ 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4470 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, +/* 0x4480 */ 48, 48, 48, 48, 48, 49, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4490 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, +/* 0x44a0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, +/* 0x44b0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, +/* 0x44c0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x44d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x44e0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, +/* 0x44f0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x4500 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 52, 52, 32, 82, 95, 65, +/* 0x4510 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x4520 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 52, 56, 32, 82, 95, +/* 0x4530 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4540 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 53, 48, 32, 82, +/* 0x4550 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4560 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 53, 99, 32, +/* 0x4570 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4580 */ 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 54, 56, +/* 0x4590 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x45a0 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 55, +/* 0x45b0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x45c0 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x45d0 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x45e0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x45f0 */ 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4600 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x4610 */ 48, 48, 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4620 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x4630 */ 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4640 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, +/* 0x4650 */ 48, 48, 48, 48, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4660 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, +/* 0x4670 */ 48, 48, 48, 48, 48, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4680 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, +/* 0x4690 */ 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x46a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, +/* 0x46b0 */ 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x46c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x46d0 */ 68, 10, 48, 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x46e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x46f0 */ 50, 68, 10, 48, 48, 48, 48, 48, 48,100, 52, 32, 82, 95, 65, 82, +/* 0x4700 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x4710 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 65, +/* 0x4720 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x4730 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, +/* 0x4740 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4750 */ 78, 82, 86, 50, 68, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x4760 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, +/* 0x4770 */ 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, +/* 0x4780 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4790 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, +/* 0x47a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x47b0 */ 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 52, +/* 0x47c0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x47d0 */ 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, +/* 0x47e0 */ 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x47f0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, +/* 0x4800 */ 48, 53, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4810 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, +/* 0x4820 */ 48, 48, 54, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4830 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x4840 */ 48, 48, 48, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4850 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, +/* 0x4860 */ 48, 48, 48, 48, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4870 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, +/* 0x4880 */ 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4890 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, +/* 0x48a0 */ 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x48b0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, +/* 0x48c0 */ 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x48d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x48e0 */ 66, 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, 77, +/* 0x48f0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x4900 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, +/* 0x4910 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x4920 */ 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, +/* 0x4930 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x4940 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, +/* 0x4950 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4960 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, +/* 0x4970 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4980 */ 32, 78, 82, 86, 50, 66, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, +/* 0x4990 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, +/* 0x49a0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, +/* 0x49b0 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, +/* 0x49c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, +/* 0x49d0 */ 48, 48, 48, 48, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x49e0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, +/* 0x49f0 */ 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 52, 99, 32, 82, 95, 65, +/* 0x4a00 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x4a10 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x4a20 */ 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4a30 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, +/* 0x4a40 */ 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4a50 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x4a60 */ 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x4a70 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, +/* 0x4a80 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, +/* 0x4a90 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x4aa0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x4ab0 */ 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4ac0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x4ad0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, +/* 0x4ae0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x4af0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, +/* 0x4b00 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4b10 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x4b20 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4b30 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x4b40 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, +/* 0x4b50 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4b60 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x4b70 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4b80 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x4b90 */ 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x4ba0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x4bb0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, +/* 0x4bc0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4bd0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x4be0 */ 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4bf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x4c00 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, +/* 0x4c10 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x4c20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, +/* 0x4c30 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4c40 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x4c50 */ 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4c60 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x4c70 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, +/* 0x4c80 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4c90 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x4ca0 */ 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4cb0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x4cc0 */ 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x4cd0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x4ce0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, +/* 0x4cf0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4d00 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x4d10 */ 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4d20 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x4d30 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, +/* 0x4d40 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x4d50 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, +/* 0x4d60 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4d70 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x4d80 */ 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4d90 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x4da0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, +/* 0x4db0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4dc0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x4dd0 */ 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4de0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x4df0 */ 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x4e00 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x4e10 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, +/* 0x4e20 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4e30 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x4e40 */ 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4e50 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x4e60 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, +/* 0x4e70 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x4e80 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, +/* 0x4e90 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4ea0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x4eb0 */ 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4ec0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x4ed0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, +/* 0x4ee0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4ef0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x4f00 */ 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4f10 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x4f20 */ 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x4f30 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x4f40 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, +/* 0x4f50 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4f60 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x4f70 */ 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4f80 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x4f90 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, +/* 0x4fa0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x4fb0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, +/* 0x4fc0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4fd0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x4fe0 */ 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4ff0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5000 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, +/* 0x5010 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5020 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x5030 */ 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5040 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x5050 */ 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x5060 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5070 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, +/* 0x5080 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5090 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x50a0 */ 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x50b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x50c0 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, +/* 0x50d0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x50e0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, +/* 0x50f0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5100 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x5110 */ 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5120 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5130 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, +/* 0x5140 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5150 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x5160 */ 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5170 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x5180 */ 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x5190 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x51a0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, +/* 0x51b0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x51c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x51d0 */ 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x51e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x51f0 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, +/* 0x5200 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5210 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, +/* 0x5220 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5230 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x5240 */ 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5250 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5260 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, +/* 0x5270 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5280 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x5290 */ 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x52a0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x52b0 */ 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x52c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x52d0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, +/* 0x52e0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x52f0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x5300 */ 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5310 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5320 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, +/* 0x5330 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5340 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, +/* 0x5350 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5360 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x5370 */ 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5380 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5390 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, +/* 0x53a0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x53b0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x53c0 */ 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x53d0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x53e0 */ 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x53f0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5400 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, +/* 0x5410 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5420 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x5430 */ 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5440 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5450 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, +/* 0x5460 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5470 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, +/* 0x5480 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5490 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, +/* 0x54a0 */ 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x54b0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x54c0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, +/* 0x54d0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x54e0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, +/* 0x54f0 */ 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5500 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x5510 */ 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x5520 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5530 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, +/* 0x5540 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5550 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x5560 */ 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5570 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5580 */ 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x5590 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, +/* 0x55a0 */ 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x55b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x55c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x55d0 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x55e0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x55f0 */ 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5600 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5610 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, +/* 0x5620 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5630 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x5640 */ 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5650 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x5660 */ 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, +/* 0x5670 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5680 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, +/* 0x5690 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x56a0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x56b0 */ 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x56c0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x56d0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, +/* 0x56e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x56f0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, +/* 0x5700 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5710 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x5720 */ 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5730 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5740 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, +/* 0x5750 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5760 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x5770 */ 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5780 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x5790 */ 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, +/* 0x57a0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x57b0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, +/* 0x57c0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x57d0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x57e0 */ 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x57f0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5800 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, +/* 0x5810 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5820 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, +/* 0x5830 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5840 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x5850 */ 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5860 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5870 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, +/* 0x5880 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5890 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x58a0 */ 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x58b0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x58c0 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, +/* 0x58d0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x58e0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, +/* 0x58f0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5900 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x5910 */ 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5920 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5930 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, +/* 0x5940 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5950 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, +/* 0x5960 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5970 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x5980 */ 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5990 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x59a0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, +/* 0x59b0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x59c0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x59d0 */ 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x59e0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x59f0 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, +/* 0x5a00 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5a10 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, +/* 0x5a20 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5a30 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x5a40 */ 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5a50 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5a60 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, +/* 0x5a70 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5a80 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, +/* 0x5a90 */ 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5aa0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x5ab0 */ 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5ac0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5ad0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, +/* 0x5ae0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5af0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x5b00 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5b10 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x5b20 */ 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x5b30 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5b40 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, +/* 0x5b50 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5b60 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x5b70 */ 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5b80 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5b90 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, +/* 0x5ba0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5bb0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, +/* 0x5bc0 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5bd0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x5be0 */ 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5bf0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5c00 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, +/* 0x5c10 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5c20 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x5c30 */ 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5c40 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x5c50 */ 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, +/* 0x5c60 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5c70 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, +/* 0x5c80 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5c90 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x5ca0 */ 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5cb0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5cc0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, +/* 0x5cd0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5ce0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, +/* 0x5cf0 */ 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5d00 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, +/* 0x5d10 */ 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5d20 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5d30 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, +/* 0x5d40 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5d50 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, +/* 0x5d60 */ 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5d70 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x5d80 */ 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x5d90 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5da0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, +/* 0x5db0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5dc0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10 +}; diff --git a/src/stub/arm.v5a-darwin.macho-entry.h b/src/stub/arm.v5a-darwin.macho-entry.h index d56dd50d..c5a6b384 100644 --- a/src/stub/arm.v5a-darwin.macho-entry.h +++ b/src/stub/arm.v5a-darwin.macho-entry.h @@ -1,5 +1,5 @@ /* arm.v5a-darwin.macho-entry.h - created from arm.v5a-darwin.macho-entry.bin, 14091 (0x370b) bytes + created from arm.v5a-darwin.macho-entry.bin, 14129 (0x3731) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_SIZE 14091 -#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_ADLER32 0x2394a8e5 -#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_CRC32 0x85ed1678 +#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_SIZE 14129 +#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_ADLER32 0xfe74b14d +#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_CRC32 0x2df44426 -unsigned char stub_arm_v5a_darwin_macho_entry[14091] = { +unsigned char stub_arm_v5a_darwin_macho_entry[14129] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 72, 20, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -106,7 +106,7 @@ unsigned char stub_arm_v5a_darwin_macho_entry[14091] = { /* 0x0430 */ 0, 64,160,225, 3, 0,189,232, 0, 16,145,229, 3, 0, 45,233, /* 0x0440 */ 1, 48,160,227, 2,193,160,227,128, 0, 0,239, 3, 0,189,232, /* 0x0450 */ 0, 48,160,227, 2,193,160,227,128, 0, 0,239, 4, 0,160,225, -/* 0x0460 */ 0,136,189,232,112, 0, 32,225,240, 79, 45,233, 48,208, 77,226, +/* 0x0460 */ 0,136,189,232, 45, 0, 0,234,240, 79, 45,233, 48,208, 77,226, /* 0x0470 */ 0, 48,141,229, 0, 48,208,229, 2, 80,208,229, 1,224,208,229, /* 0x0480 */ 0,192,157,229, 20, 48,141,229, 92, 48,157,229, 0, 64,160,227, /* 0x0490 */ 0, 64,140,229, 0, 64,131,229, 20,192,157,229, 1, 48,208,229, @@ -587,334 +587,337 @@ unsigned char stub_arm_v5a_darwin_macho_entry[14091] = { /* 0x2240 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x2250 */ 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, /* 0x2260 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x2270 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, -/* 0x2280 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x2290 */ 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x22a0 */ 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, -/* 0x22b0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x22c0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, -/* 0x22d0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x22e0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x22f0 */ 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2270 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, +/* 0x2280 */ 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2290 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, +/* 0x22a0 */ 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x22b0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, +/* 0x22c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x22d0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x22e0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, +/* 0x22f0 */ 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2300 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2310 */ 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, +/* 0x2310 */ 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, /* 0x2320 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2330 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, +/* 0x2330 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, /* 0x2340 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2350 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2360 */ 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2360 */ 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2370 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2380 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, +/* 0x2380 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, /* 0x2390 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x23a0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x23b0 */ 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x23b0 */ 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x23c0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x23d0 */ 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x23d0 */ 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x23e0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x23f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, +/* 0x23f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, /* 0x2400 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2410 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2420 */ 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2420 */ 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2430 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2440 */ 48, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, +/* 0x2440 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, /* 0x2450 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2460 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, +/* 0x2460 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, /* 0x2470 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2480 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2490 */ 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2490 */ 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x24a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x24b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, +/* 0x24b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, /* 0x24c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x24d0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x24e0 */ 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x24e0 */ 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x24f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2500 */ 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2500 */ 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2510 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2520 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, +/* 0x2520 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, /* 0x2530 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2540 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2550 */ 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2550 */ 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2560 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2570 */ 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, +/* 0x2570 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, /* 0x2580 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2590 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, +/* 0x2590 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, /* 0x25a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x25b0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x25c0 */ 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x25c0 */ 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x25d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x25e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, +/* 0x25e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, /* 0x25f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2600 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x2610 */ 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2600 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, +/* 0x2610 */ 101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2620 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2630 */ 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2630 */ 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2640 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2650 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, +/* 0x2650 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, /* 0x2660 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2670 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2680 */ 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2680 */ 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2690 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x26a0 */ 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, +/* 0x26a0 */ 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, /* 0x26b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x26c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, +/* 0x26c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, /* 0x26d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x26e0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x26f0 */ 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x26f0 */ 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2700 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2710 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, +/* 0x2710 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, /* 0x2720 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2730 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x2740 */ 101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2740 */ 101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2750 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2760 */ 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2760 */ 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2770 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2780 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, +/* 0x2780 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, /* 0x2790 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x27a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x27b0 */ 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x27b0 */ 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x27c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x27d0 */ 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, +/* 0x27d0 */ 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, /* 0x27e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x27f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, +/* 0x27f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, /* 0x2800 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2810 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2820 */ 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2820 */ 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2830 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2840 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, +/* 0x2840 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, /* 0x2850 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2860 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x2870 */ 101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2870 */ 100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2880 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2890 */ 48, 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2890 */ 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x28a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x28b0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, +/* 0x28b0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, /* 0x28c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x28d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x28e0 */ 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x28e0 */ 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x28f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2900 */ 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, +/* 0x2900 */ 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, /* 0x2910 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2920 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, +/* 0x2920 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, /* 0x2930 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2940 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2950 */ 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2950 */ 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2960 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2970 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, +/* 0x2970 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, /* 0x2980 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2990 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, -/* 0x29a0 */ 102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x29a0 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x29b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x29c0 */ 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x29c0 */ 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x29d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x29e0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, +/* 0x29e0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, /* 0x29f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2a00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2a10 */ 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2a10 */ 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2a20 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2a30 */ 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, +/* 0x2a30 */ 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, /* 0x2a40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2a50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, +/* 0x2a50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, /* 0x2a60 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2a70 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2a80 */ 48, 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2a80 */ 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2a90 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2aa0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, +/* 0x2aa0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, /* 0x2ab0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2ac0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2ad0 */ 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2ac0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, +/* 0x2ad0 */ 101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2ae0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2af0 */ 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2af0 */ 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2b00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2b10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, +/* 0x2b10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, /* 0x2b20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2b30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2b40 */ 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2b40 */ 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2b50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2b60 */ 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, +/* 0x2b60 */ 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, /* 0x2b70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2b80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, +/* 0x2b80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, /* 0x2b90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2ba0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2bb0 */ 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2bb0 */ 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2bc0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2bd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, +/* 0x2bd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, /* 0x2be0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2bf0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2c00 */ 102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2c00 */ 100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2c10 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2c20 */ 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2c20 */ 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2c30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2c40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, +/* 0x2c40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, /* 0x2c50 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2c60 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2c70 */ 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2c70 */ 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2c80 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2c90 */ 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, +/* 0x2c90 */ 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, /* 0x2ca0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2cb0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, +/* 0x2cb0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, /* 0x2cc0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2cd0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2ce0 */ 48, 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2ce0 */ 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2cf0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2d00 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, +/* 0x2d00 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, /* 0x2d10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2d20 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, -/* 0x2d30 */ 102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2d30 */ 102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2d40 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2d50 */ 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2d50 */ 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2d60 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2d70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, +/* 0x2d70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, /* 0x2d80 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2d90 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, -/* 0x2da0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, -/* 0x2db0 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, -/* 0x2dc0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, -/* 0x2dd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, -/* 0x2de0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, -/* 0x2df0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2e00 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, -/* 0x2e10 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2d90 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2da0 */ 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2db0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2dc0 */ 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x2dd0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, +/* 0x2de0 */ 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x2df0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2e00 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, +/* 0x2e10 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2e20 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x2e30 */ 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2e30 */ 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2e40 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2e50 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, +/* 0x2e50 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, /* 0x2e60 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e70 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x2e80 */ 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2e80 */ 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2e90 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2ea0 */ 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2ea0 */ 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2eb0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2ec0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, +/* 0x2ec0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, /* 0x2ed0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2ee0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x2ef0 */ 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ef0 */ 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2f00 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2f10 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, +/* 0x2f10 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, /* 0x2f20 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x2f30 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, -/* 0x2f40 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2f40 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2f50 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x2f60 */ 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2f60 */ 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2f70 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2f80 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, +/* 0x2f80 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, /* 0x2f90 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2fa0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x2fb0 */ 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2fb0 */ 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2fc0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2fd0 */ 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2fd0 */ 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2fe0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2ff0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, +/* 0x2ff0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, /* 0x3000 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3010 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3020 */ 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3020 */ 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3030 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3040 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, +/* 0x3040 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, /* 0x3050 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x3060 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, -/* 0x3070 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3070 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3080 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3090 */ 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3090 */ 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x30a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x30b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, +/* 0x30b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, /* 0x30c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x30d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x30e0 */ 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x30e0 */ 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x30f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3100 */ 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3100 */ 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x3110 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3120 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, +/* 0x3120 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, /* 0x3130 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3140 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3150 */ 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3150 */ 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3160 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3170 */ 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, +/* 0x3170 */ 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, /* 0x3180 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x3190 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, -/* 0x31a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x31a0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x31b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x31c0 */ 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x31c0 */ 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x31d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x31e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, +/* 0x31e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, /* 0x31f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3200 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3210 */ 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3210 */ 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3220 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3230 */ 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3230 */ 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x3240 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3250 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, +/* 0x3250 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, /* 0x3260 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3270 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3280 */ 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3280 */ 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3290 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x32a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, +/* 0x32a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, /* 0x32b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x32c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, -/* 0x32d0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x32d0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x32e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x32f0 */ 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x32f0 */ 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3300 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3310 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, +/* 0x3310 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, /* 0x3320 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3330 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3340 */ 50,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3340 */ 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3350 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3360 */ 10, 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3360 */ 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x3370 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3380 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, +/* 0x3380 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, /* 0x3390 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x33a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x33b0 */ 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x33b0 */ 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x33c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x33d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, +/* 0x33d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, /* 0x33e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x33f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, -/* 0x3400 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x33f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, +/* 0x3400 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3410 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3420 */ 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3420 */ 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3430 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3440 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, +/* 0x3440 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, /* 0x3450 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3460 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3470 */ 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3470 */ 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3480 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3490 */ 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3490 */ 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x34a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x34b0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, +/* 0x34b0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, /* 0x34c0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x34d0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x34e0 */ 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x34e0 */ 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x34f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3500 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, +/* 0x3500 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, /* 0x3510 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3520 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, +/* 0x3520 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, /* 0x3530 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3540 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3550 */ 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3550 */ 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3560 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3570 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, +/* 0x3570 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, /* 0x3580 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3590 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x35a0 */ 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x35a0 */ 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x35b0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x35c0 */ 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x35c0 */ 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x35d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x35e0 */ 95, 68, 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x35f0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x3600 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, -/* 0x3610 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x3620 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x3630 */ 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3640 */ 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, -/* 0x3650 */ 90, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, -/* 0x3660 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, -/* 0x3670 */ 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 50, 52, 32, -/* 0x3680 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3690 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, -/* 0x36a0 */ 48, 49, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x36b0 */ 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, -/* 0x36c0 */ 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, -/* 0x36d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, -/* 0x36e0 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, -/* 0x36f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x3700 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10 +/* 0x35e0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, +/* 0x35f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3600 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 10, 82, 69, +/* 0x3610 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, +/* 0x3620 */ 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 90, 93, +/* 0x3630 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x3640 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x3650 */ 85, 69, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, +/* 0x3660 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, +/* 0x3670 */ 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 49, 56, +/* 0x3680 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3690 */ 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, +/* 0x36a0 */ 48, 48, 49, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x36b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x36c0 */ 90, 10, 48, 48, 48, 48, 48, 49, 51, 99, 32, 82, 95, 65, 82, 77, +/* 0x36d0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, +/* 0x36e0 */ 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, +/* 0x36f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3700 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3710 */ 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3720 */ 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, +/* 0x3730 */ 10 }; diff --git a/src/stub/arm.v5a-darwin.macho-fold.h b/src/stub/arm.v5a-darwin.macho-fold.h index 2e09a8ce..677aadf5 100644 --- a/src/stub/arm.v5a-darwin.macho-fold.h +++ b/src/stub/arm.v5a-darwin.macho-fold.h @@ -32,8 +32,8 @@ #define STUB_ARM_V5A_DARWIN_MACHO_FOLD_SIZE 2668 -#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_ADLER32 0x7cca544e -#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_CRC32 0x1387c871 +#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_ADLER32 0x023453aa +#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_CRC32 0x580629b6 unsigned char stub_arm_v5a_darwin_macho_fold[2668] = { /* 0x0000 */ 24, 48,154,229, 2,202,160,227, 12, 0, 83,225, 12, 48,160, 49, @@ -88,11 +88,11 @@ unsigned char stub_arm_v5a_darwin_macho_fold[2668] = { /* 0x0310 */ 3, 0, 82,225, 1, 0, 0,154, 5, 0,160,227,194,255,255,235, /* 0x0320 */ 8, 16,157,229, 4,224,157,229, 14, 0, 81,225, 29, 0, 0, 42, /* 0x0330 */ 12,192,221,229, 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, -/* 0x0340 */ 16,224,141,229, 0,192,141,229, 15,224,160,225, 7,240,160,225, +/* 0x0340 */ 16,224,141,229, 0,192,141,229, 15,224,160,225, 23,255, 47,225, /* 0x0350 */ 0, 0, 80,227, 3, 0, 0, 26, 16, 32,157,229, 4, 48,157,229, /* 0x0360 */ 3, 0, 82,225, 1, 0, 0, 10, 7, 0,160,227,174,255,255,235, /* 0x0370 */ 13, 48,221,229, 0, 0, 83,227, 0, 0, 86, 19, 4, 0,148, 21, -/* 0x0380 */ 16, 16,157, 21, 14, 32,221, 21, 15,224,160, 17, 6,240,160, 17, +/* 0x0380 */ 16, 16,157, 21, 14, 32,221, 21, 15,224,160, 17, 22,255, 47, 17, /* 0x0390 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, /* 0x03a0 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, /* 0x03b0 */ 4, 16,148,229,158,255,255,235, 4, 48,157,229, 6, 0,148,232, diff --git a/src/stub/arm.v5a-linux.elf-entry.h b/src/stub/arm.v5a-linux.elf-entry.h index 5657be8f..84c1cc5b 100644 --- a/src/stub/arm.v5a-linux.elf-entry.h +++ b/src/stub/arm.v5a-linux.elf-entry.h @@ -1,5 +1,5 @@ /* arm.v5a-linux.elf-entry.h - created from arm.v5a-linux.elf-entry.bin, 13936 (0x3670) bytes + created from arm.v5a-linux.elf-entry.bin, 13974 (0x3696) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V5A_LINUX_ELF_ENTRY_SIZE 13936 -#define STUB_ARM_V5A_LINUX_ELF_ENTRY_ADLER32 0xa73269bd -#define STUB_ARM_V5A_LINUX_ELF_ENTRY_CRC32 0xdcc3295a +#define STUB_ARM_V5A_LINUX_ELF_ENTRY_SIZE 13974 +#define STUB_ARM_V5A_LINUX_ELF_ENTRY_ADLER32 0xb34770a6 +#define STUB_ARM_V5A_LINUX_ELF_ENTRY_CRC32 0x103e791c -unsigned char stub_arm_v5a_linux_elf_entry[13936] = { +unsigned char stub_arm_v5a_linux_elf_entry[13974] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 168, 19, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -104,7 +104,7 @@ unsigned char stub_arm_v5a_linux_elf_entry[13936] = { /* 0x0410 */ 45, 0, 0,235, 11,208,160,225, 0, 48,160,225, 3, 0,189,232, /* 0x0420 */ 0, 16,145,229, 0, 16,129,224, 0, 32,160,227, 7,192,160,225, /* 0x0430 */ 2,112,160,227, 15,120,135,227, 0, 0, 0,239, 12,112,160,225, -/* 0x0440 */ 3, 0,160,225, 0,136,189,232,240, 1,240,231,240, 79, 45,233, +/* 0x0440 */ 3, 0,160,225, 0,136,189,232, 44, 0, 0,234,240, 79, 45,233, /* 0x0450 */ 48,208, 77,226, 0, 48,141,229, 0, 48,208,229, 2, 80,208,229, /* 0x0460 */ 1,224,208,229, 0,192,157,229, 20, 48,141,229, 92, 48,157,229, /* 0x0470 */ 0, 64,160,227, 0, 64,140,229, 0, 64,131,229, 20,192,157,229, @@ -324,7 +324,7 @@ unsigned char stub_arm_v5a_linux_elf_entry[13936] = { /* 0x11d0 */ 147, 14, 14,224, 14, 0, 92,225, 14,112,160, 49, 14,112, 71, 32, /* 0x11e0 */ 2,235, 99, 50, 14,192, 76, 32,174, 50,131, 48,163, 50, 67, 32, /* 0x11f0 */ 0, 0,176,224,176, 48,193,225, 2,240,160,225, 20, 48,141,229, -/* 0x1200 */ 4, 96,142,226, 0, 80,160,227, 0, 64,224,227, 3, 32,160,227, +/* 0x1200 */ 4, 96,142,226, 0, 80,160,227, 0, 64,224,227, 7, 32,160,227, /* 0x1210 */ 0, 16,150,229, 0, 0,160,227, 12, 16,141,229,192,112,160,227, /* 0x1220 */ 0, 0, 0,239, 8, 0,141,229, 0, 48,150,229, 4, 48, 45,229, /* 0x1230 */ 13, 48,160,225, 0, 32,160,225, 8, 0,214,229, 4, 0, 45,229, @@ -585,326 +585,329 @@ unsigned char stub_arm_v5a_linux_elf_entry[13936] = { /* 0x2220 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x2230 */ 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, /* 0x2240 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2250 */ 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x2260 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x2270 */ 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, -/* 0x2280 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x2290 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x22a0 */ 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x22b0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x22c0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, +/* 0x2250 */ 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, +/* 0x2260 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2270 */ 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, +/* 0x2280 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x2290 */ 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x22a0 */ 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, +/* 0x22b0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, +/* 0x22c0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, /* 0x22d0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x22e0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x22f0 */ 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x22f0 */ 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2300 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2310 */ 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2310 */ 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2320 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2330 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, +/* 0x2330 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, /* 0x2340 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2350 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2360 */ 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2360 */ 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2370 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2380 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, +/* 0x2380 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, /* 0x2390 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x23a0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, -/* 0x23b0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x23a0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, +/* 0x23b0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x23c0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x23d0 */ 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x23d0 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x23e0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x23f0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, +/* 0x23f0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, /* 0x2400 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2410 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2420 */ 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2420 */ 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2430 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2440 */ 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2440 */ 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2450 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2460 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, +/* 0x2460 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, /* 0x2470 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2480 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2490 */ 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2490 */ 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x24a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x24b0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, +/* 0x24b0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, /* 0x24c0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x24d0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, -/* 0x24e0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x24e0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x24f0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2500 */ 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2500 */ 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2510 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2520 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, +/* 0x2520 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, /* 0x2530 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2540 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2550 */ 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2550 */ 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2560 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2570 */ 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2570 */ 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2580 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2590 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, +/* 0x2590 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, /* 0x25a0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x25b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x25c0 */ 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x25c0 */ 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x25d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x25e0 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, +/* 0x25e0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, /* 0x25f0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x2600 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, -/* 0x2610 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2610 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2620 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2630 */ 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2630 */ 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2640 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2650 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, +/* 0x2650 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, /* 0x2660 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2670 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2680 */ 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2680 */ 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2690 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x26a0 */ 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x26a0 */ 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x26b0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x26c0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, +/* 0x26c0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, /* 0x26d0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x26e0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x26f0 */ 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x26f0 */ 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2700 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2710 */ 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, +/* 0x2710 */ 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, /* 0x2720 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2730 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, -/* 0x2740 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2730 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, +/* 0x2740 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2750 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2760 */ 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2760 */ 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2770 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2780 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, +/* 0x2780 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, /* 0x2790 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x27a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x27b0 */ 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x27b0 */ 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x27c0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x27d0 */ 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x27d0 */ 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x27e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x27f0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, +/* 0x27f0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, /* 0x2800 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2810 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2820 */ 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2820 */ 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2830 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2840 */ 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, +/* 0x2840 */ 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, /* 0x2850 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2860 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, -/* 0x2870 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2860 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, +/* 0x2870 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2880 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2890 */ 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2890 */ 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x28a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x28b0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, +/* 0x28b0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, /* 0x28c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x28d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x28e0 */ 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x28e0 */ 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x28f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2900 */ 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x2900 */ 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2910 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2920 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, +/* 0x2920 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, /* 0x2930 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2940 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2950 */ 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2950 */ 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2960 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2970 */ 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, +/* 0x2970 */ 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, /* 0x2980 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2990 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, -/* 0x29a0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2990 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, +/* 0x29a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x29b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x29c0 */ 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x29c0 */ 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x29d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x29e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, +/* 0x29e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, /* 0x29f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2a00 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2a10 */ 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2a10 */ 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2a20 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2a30 */ 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2a30 */ 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2a40 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2a50 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, +/* 0x2a50 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, /* 0x2a60 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2a70 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2a80 */ 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2a80 */ 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2a90 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2aa0 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, +/* 0x2aa0 */ 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, /* 0x2ab0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2ac0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, -/* 0x2ad0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2ac0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, +/* 0x2ad0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2ae0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2af0 */ 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2af0 */ 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2b00 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2b10 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, +/* 0x2b10 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, /* 0x2b20 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2b30 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2b40 */ 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2b40 */ 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2b50 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2b60 */ 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2b60 */ 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2b70 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2b80 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, +/* 0x2b80 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, /* 0x2b90 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2ba0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2bb0 */ 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2bb0 */ 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2bc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2bd0 */ 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, +/* 0x2bd0 */ 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, /* 0x2be0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2bf0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, -/* 0x2c00 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2bf0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, +/* 0x2c00 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2c10 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2c20 */ 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2c20 */ 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2c30 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2c40 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, +/* 0x2c40 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, /* 0x2c50 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2c60 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2c70 */ 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2c70 */ 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2c80 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2c90 */ 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x2c90 */ 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2ca0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2cb0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, +/* 0x2cb0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, /* 0x2cc0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2cd0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2ce0 */ 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ce0 */ 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2cf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2d00 */ 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, +/* 0x2d00 */ 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, /* 0x2d10 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2d20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, -/* 0x2d30 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2d20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, +/* 0x2d30 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2d40 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2d50 */ 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2d50 */ 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2d60 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2d70 */ 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x2d80 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, -/* 0x2d90 */ 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x2da0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2db0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, -/* 0x2dc0 */ 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2dd0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x2de0 */ 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, +/* 0x2d70 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, +/* 0x2d80 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d90 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, +/* 0x2da0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, +/* 0x2db0 */ 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, +/* 0x2dc0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x2dd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x2de0 */ 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, /* 0x2df0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2e00 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, +/* 0x2e00 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, /* 0x2e10 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2e20 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x2e30 */ 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2e30 */ 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2e40 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2e50 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, +/* 0x2e50 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, /* 0x2e60 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2e70 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, -/* 0x2e80 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2e80 */ 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2e90 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x2ea0 */ 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ea0 */ 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2eb0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2ec0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, +/* 0x2ec0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, /* 0x2ed0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2ee0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x2ef0 */ 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2ef0 */ 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2f00 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x2f10 */ 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x2f10 */ 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, /* 0x2f20 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2f30 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, +/* 0x2f30 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, /* 0x2f40 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2f50 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x2f60 */ 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2f60 */ 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2f70 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2f80 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, +/* 0x2f80 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, /* 0x2f90 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2fa0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x2fb0 */ 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2fb0 */ 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2fc0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x2fd0 */ 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2fd0 */ 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2fe0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2ff0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, +/* 0x2ff0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, /* 0x3000 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3010 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3020 */ 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3020 */ 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3030 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3040 */ 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, +/* 0x3040 */ 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, /* 0x3050 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3060 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, +/* 0x3060 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, /* 0x3070 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3080 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3090 */ 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3090 */ 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x30a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x30b0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, +/* 0x30b0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, /* 0x30c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x30d0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x30e0 */ 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x30e0 */ 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x30f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3100 */ 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3100 */ 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3110 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3120 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, +/* 0x3120 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, /* 0x3130 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3140 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3150 */ 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3150 */ 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3160 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3170 */ 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, +/* 0x3170 */ 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, /* 0x3180 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3190 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, +/* 0x3190 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, /* 0x31a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x31b0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x31c0 */ 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x31c0 */ 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x31d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x31e0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, +/* 0x31e0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, /* 0x31f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3200 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x3210 */ 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3210 */ 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3220 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3230 */ 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3230 */ 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3240 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3250 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, +/* 0x3250 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, /* 0x3260 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3270 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3280 */ 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3280 */ 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3290 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x32a0 */ 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, +/* 0x32a0 */ 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, /* 0x32b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x32c0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, +/* 0x32c0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, /* 0x32d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x32e0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x32f0 */ 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x32f0 */ 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3300 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3310 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, +/* 0x3310 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, /* 0x3320 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3330 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x3340 */ 100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3340 */ 100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3350 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3360 */ 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3360 */ 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3370 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3380 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, +/* 0x3380 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, /* 0x3390 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x33a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x33b0 */ 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x33b0 */ 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x33c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x33d0 */ 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, +/* 0x33d0 */ 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, /* 0x33e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x33f0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, +/* 0x33f0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, /* 0x3400 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3410 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3420 */ 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3420 */ 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3430 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3440 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, +/* 0x3440 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, /* 0x3450 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3460 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x3470 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3470 */ 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3480 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3490 */ 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3490 */ 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x34a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x34b0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, +/* 0x34b0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, /* 0x34c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x34d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x34e0 */ 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x34e0 */ 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x34f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3500 */ 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, +/* 0x3500 */ 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, /* 0x3510 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3520 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, +/* 0x3520 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, /* 0x3530 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3540 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3550 */ 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3550 */ 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3560 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3570 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, +/* 0x3570 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, /* 0x3580 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3590 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x35a0 */ 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x35a0 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x35b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x35c0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x35d0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, -/* 0x35e0 */ 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, -/* 0x35f0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x3600 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,102, 48, 32, 82, 95, -/* 0x3610 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3620 */ 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,102, -/* 0x3630 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3640 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, -/* 0x3650 */ 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, -/* 0x3660 */ 50, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x35c0 */ 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x35d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x35e0 */ 68, 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x35f0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, +/* 0x3600 */ 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x3610 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3620 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x3630 */ 48,102, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3640 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, +/* 0x3650 */ 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3660 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x3670 */ 78, 90, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, +/* 0x3680 */ 77, 95, 65, 66, 83, 51, 50, 32, 32, 32, 32, 32, 32, 32, 79, 95, +/* 0x3690 */ 66, 73, 78, 70, 79, 10 }; diff --git a/src/stub/arm.v5a-linux.elf-fold.h b/src/stub/arm.v5a-linux.elf-fold.h index 5928db78..c5222bbb 100644 --- a/src/stub/arm.v5a-linux.elf-fold.h +++ b/src/stub/arm.v5a-linux.elf-fold.h @@ -1,5 +1,5 @@ /* arm.v5a-linux.elf-fold.h - created from arm.v5a-linux.elf-fold.bin, 3012 (0xbc4) bytes + created from arm.v5a-linux.elf-fold.bin, 3020 (0xbcc) bytes This file is part of the UPX executable compressor. @@ -31,17 +31,17 @@ */ -#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3012 -#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x1a56e1a5 -#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x53afc6d8 +#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3020 +#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x3df6e584 +#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x3bac7d70 -unsigned char stub_arm_v5a_linux_elf_fold[3012] = { +unsigned char stub_arm_v5a_linux_elf_fold[3020] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, -/* 0x0040 */ 0,128, 0, 0,196, 11, 0, 0,196, 11, 0, 0, 5, 0, 0, 0, -/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,196, 11, 0, 0, 0, 0, 0, 0, +/* 0x0040 */ 0,128, 0, 0,204, 11, 0, 0,204, 11, 0, 0, 5, 0, 0, 0, +/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,204, 11, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 34, 0, 0, 0,192, 31,189,232, 13, 16,160,225, 1,218, 77,226, @@ -61,7 +61,7 @@ unsigned char stub_arm_v5a_linux_elf_fold[3012] = { /* 0x0160 */ 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229, /* 0x0170 */ 251,255,255, 26, 0,208,160,225, 16, 12,189,232, 10,220, 77,226, /* 0x0180 */ 4,144,154,229, 13,128,160,225, 0,112,154,229,176, 96,143,226, -/* 0x0190 */ 12,144,137,226,248, 15, 45,233, 15, 0,189,232, 59, 2, 0,235, +/* 0x0190 */ 12,144,137,226,248, 15, 45,233, 15, 0,189,232, 61, 2, 0,235, /* 0x01a0 */ 20,208,141,226, 10,220,141,226, 16, 0,141,229, 92, 16,155,229, /* 0x01b0 */ 60, 32,155,229, 11, 0,160,225, 2, 16, 65,224, 97, 0, 0,235, /* 0x01c0 */ 4, 64,157,228, 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227, @@ -71,7 +71,7 @@ unsigned char stub_arm_v5a_linux_elf_fold[3012] = { /* 0x0200 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 1,199, 77,226, /* 0x0210 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225, /* 0x0220 */ 250,255,255, 58, 1,215,141,226, 0,192,160,227, 91,112,160,227, -/* 0x0230 */ 4,240, 18,229, 47,112,114,111, 99, 47,115,101,108,102, 47,101, +/* 0x0230 */ 14,240,160,225, 47,112,114,111, 99, 47,115,101,108,102, 47,101, /* 0x0240 */ 120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, /* 0x0250 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, /* 0x0260 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26, @@ -133,11 +133,11 @@ unsigned char stub_arm_v5a_linux_elf_fold[3012] = { /* 0x05e0 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226, /* 0x05f0 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,128,160,225, /* 0x0600 */ 28, 16,145,229, 52,208, 77,226, 0,144, 82,226, 12, 0,141,229, -/* 0x0610 */ 8, 48,141,229, 1, 96,136,224, 18, 0, 0, 10, 88, 16,157,229, -/* 0x0620 */ 0, 0,145,229,176, 49,208,225, 52, 16,128,226, 2, 0, 83,227, -/* 0x0630 */ 40, 48,145, 21, 8, 80,145, 5, 0, 0, 99, 16, 20, 48,145,229, -/* 0x0640 */ 0, 80,160, 17, 0, 32,160, 3, 24, 0,141, 21, 3, 16,160,225, -/* 0x0650 */ 5, 0,160,225, 5, 48,131,224, 24, 32,141, 5, 20, 48,141,229, +/* 0x0610 */ 8, 48,141,229, 1, 96,136,224, 18, 0, 0, 10, 88, 32,157,229, +/* 0x0620 */ 0, 0,146,229,176, 49,208,225, 52, 16,128,226, 2, 0, 83,227, +/* 0x0630 */ 40, 48,145, 21, 0, 48,160, 3, 0, 0, 99, 16, 8, 80,145, 5, +/* 0x0640 */ 24, 48,141, 5, 20, 48,145,229, 0, 80,160, 17, 24, 0,141, 21, +/* 0x0650 */ 3, 16,160,225, 5, 0,160,225, 5, 48,131,224, 20, 48,141,229, /* 0x0660 */ 56,255,255,235, 41, 0, 0,234,176, 49,216,225,188, 34,216,225, /* 0x0670 */ 3, 0, 83,227, 16,192,160, 19, 0,192,160, 3, 1, 0, 66,226, /* 0x0680 */ 6, 16,160,225, 0, 64,224,227, 9, 80,160,225, 13, 0, 0,234, @@ -150,79 +150,79 @@ unsigned char stub_arm_v5a_linux_elf_fold[3012] = { /* 0x06f0 */ 5, 16,160,225, 12, 48,160,225, 0, 32,160,227, 45,255,255,235, /* 0x0700 */ 0, 64,100,224, 0, 80,133,224, 24, 64,141,229, 20, 80,141,229, /* 0x0710 */ 24,192,157,229, 52, 48,160,227,147, 12, 12,224, 0, 0,160,227, -/* 0x0720 */ 32, 80,134,226, 36,192,141,229, 28, 0,141,229,171, 0, 0,234, +/* 0x0720 */ 32, 80,134,226, 36,192,141,229, 28, 0,141,229,173, 0, 0,234, /* 0x0730 */ 0, 0, 89,227, 9, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, -/* 0x0740 */ 6, 0, 0, 26, 24, 16,157,229, 24, 32, 21,229, 8, 0,157,229, -/* 0x0750 */ 2, 32,129,224, 3, 16,160,227, 51,255,255,235,155, 0, 0,234, -/* 0x0760 */ 32, 48, 21,229, 1, 0, 83,227,152, 0, 0, 26, 12, 48, 21,229, -/* 0x0770 */ 0, 0, 83,227,149, 0, 0, 10, 0, 0, 89,227, 18, 0, 0, 10, +/* 0x0740 */ 6, 0, 0, 26, 24, 32, 21,229, 24, 48,157,229, 8, 0,157,229, +/* 0x0750 */ 2, 32,131,224, 3, 16,160,227, 51,255,255,235,157, 0, 0,234, +/* 0x0760 */ 32, 48, 21,229, 1, 0, 83,227,154, 0, 0, 26, 12, 48, 21,229, +/* 0x0770 */ 0, 0, 83,227,151, 0, 0, 10, 0, 0, 89,227, 18, 0, 0, 10, /* 0x0780 */ 28, 48, 21,229, 0, 0, 83,227, 15, 0, 0, 26, 28, 48,152,229, -/* 0x0790 */ 24, 32, 21,229, 3, 16,160,227, 3, 32,130,224, 24, 48,157,229, -/* 0x07a0 */ 8, 0,157,229, 2, 32,131,224, 31,255,255,235, 8, 0,157,229, +/* 0x0790 */ 24, 32, 21,229, 24,192,157,229, 3, 32,130,224, 2, 32,140,224, +/* 0x07a0 */ 3, 16,160,227, 8, 0,157,229, 31,255,255,235, 8, 0,157,229, /* 0x07b0 */ 5, 16,160,227,188, 34,216,225, 27,255,255,235, 8, 0,157,229, -/* 0x07c0 */ 4, 16,160,227,186, 34,216,225, 23,255,255,235, 8, 48, 21,229, -/* 0x07d0 */ 176, 34,159,229, 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225, -/* 0x07e0 */ 24,192,157,229, 24, 48, 21,229, 16, 32, 21,229, 3, 48,140,224, -/* 0x07f0 */ 16, 48,141,229, 16, 0,157,229, 3, 58,160,225, 12, 16, 21,229, -/* 0x0800 */ 35, 58,160,225, 0, 0, 89,227, 44, 32,141,229, 48, 0,141,229, -/* 0x0810 */ 3,160,130,224, 7,176, 4,226, 40, 16,141,229, 0, 96, 99,224, -/* 0x0820 */ 14, 0, 0, 10, 6, 0,160,225, 10, 16,160,225, 3, 32,160,227, -/* 0x0830 */ 16, 48,160,227,223,254,255,235, 0, 0, 86,225, 82, 0, 0, 26, -/* 0x0840 */ 92, 32,157,229, 4, 48, 20,226, 2, 48,160, 17, 9, 0,160,225, -/* 0x0850 */ 44, 16,141,226, 12, 32,157,229, 22,255,255,235, 11, 0, 0,234, -/* 0x0860 */ 28,192, 21,229, 6, 0,160,225, 12,192, 99,224, 4,192,141,229, -/* 0x0870 */ 12,192,157,229, 10, 16,160,225, 11, 32,160,225, 18, 48,160,227, -/* 0x0880 */ 0,192,141,229,192,254,255,235, 0, 0, 86,225, 62, 0, 0, 26, -/* 0x0890 */ 0, 48,106,226, 3,122,160,225, 2, 0, 27,227, 39,122,160,225, -/* 0x08a0 */ 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10, 10, 16,134,224, -/* 0x08b0 */ 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228, -/* 0x08c0 */ 251,255,255, 26, 0, 0, 89,227, 49, 0, 0, 10,183,254,255,235, -/* 0x08d0 */ 32, 48, 21,229, 32, 0,141,229, 1, 0, 83,227, 36, 0, 0, 26, -/* 0x08e0 */ 8, 48, 21,229, 1, 0, 19,227, 33, 0, 0, 10, 12, 32, 21,229, -/* 0x08f0 */ 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225, 75, 0, 0, 26, -/* 0x0900 */ 1, 48,130,224, 24, 0,157,229, 3, 48,131,226, 3, 48,128,224, -/* 0x0910 */ 3, 64,195,227, 0, 48,100,226, 3, 58,160,225, 35, 58,160,225, -/* 0x0920 */ 7, 0, 83,227, 65, 0, 0,154, 10, 0, 0,234, 0,224,160,227, -/* 0x0930 */ 3, 32,160,227, 0,192,224,227, 14, 0,160,225, 1, 26,160,227, -/* 0x0940 */ 34, 48,160,227, 0, 80,141,232,143,254,255,235, 0, 32, 80,226, -/* 0x0950 */ 61, 0, 0, 26, 6, 0, 0,234, 32, 16,157,229, 40, 49,159,229, -/* 0x0960 */ 10, 0,132,232, 4, 0,160,225, 8, 16,132,226,127,254,255,235, -/* 0x0970 */ 63, 0, 0,234, 6, 0,160,225, 10, 16,160,225, 11, 32,160,225, -/* 0x0980 */ 117,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227, -/* 0x0990 */ 64,254,255,235, 16, 32,157,229, 40,192,157,229, 7, 48,138,224, -/* 0x09a0 */ 12, 16,130,224, 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42, -/* 0x09b0 */ 1, 16,100,224, 11, 32,160,225, 4, 0,160,225, 16, 48,160,227, -/* 0x09c0 */ 124,254,255,235, 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234, -/* 0x09d0 */ 28, 0,157,229, 32, 80,133,226, 1, 0,128,226, 28, 0,141,229, -/* 0x09e0 */ 188, 50,216,225, 28, 16,157,229, 3, 0, 81,225, 79,255,255,186, -/* 0x09f0 */ 0, 0, 89,227, 4, 0, 0, 10,176, 49,216,225, 3, 0, 83,227, -/* 0x0a00 */ 1, 0, 0, 10, 20, 0,157,229, 68,254,255,235, 88, 32,157,229, -/* 0x0a10 */ 0, 0, 82,227, 24, 48,157, 21, 0, 48,130, 21, 24, 0,152,229, -/* 0x0a20 */ 24, 32,157,229, 0, 0,130,224, 52,208,141,226,240,143,189,232, -/* 0x0a30 */ 28, 48, 21,229, 0, 0, 83,227, 36,192,157, 5, 12, 48,129, 0, -/* 0x0a40 */ 8, 64,131, 2,195,255,255, 10,183,255,255,234, 32, 16,157,229, -/* 0x0a50 */ 52, 48,159,229, 2, 64,160,225, 10, 0,130,232, 8, 16,130,226, -/* 0x0a60 */ 66,254,255,235, 4, 0,160,225, 8, 16,160,227, 5, 32,160,227, -/* 0x0a70 */ 57,254,255,235, 4, 32,160,225, 8, 0,157,229, 0, 16,160,227, -/* 0x0a80 */ 105,254,255,235,186,255,255,234, 64, 98, 81,115, 14,240,160,225, -/* 0x0a90 */ 240, 71, 45,233, 12,208, 77,226, 52, 96,141,226, 0,144,160,225, -/* 0x0aa0 */ 1,112,160,225, 3,128,160,225, 6, 0,160,225, 44, 16,141,226, -/* 0x0ab0 */ 0, 48,160,227, 48,160,157,229, 2, 80,160,225, 52, 64,157,229, -/* 0x0ac0 */ 124,254,255,235, 60, 48,157,229, 56,192,157,229, 12,224,141,226, -/* 0x0ad0 */ 4, 48, 46,229, 12,192,100,224, 6, 32,160,225, 10, 16,160,225, -/* 0x0ae0 */ 9, 48,160,225, 5, 0,160,225, 56,192,141,229, 0,224,141,229, -/* 0x0af0 */ 52,112,141,229, 4,128,141,229,190,254,255,235, 0, 64,160,225, -/* 0x0b00 */ 9, 16,160,227, 9, 0,160,225, 4, 32,160,225, 70,254,255,235, -/* 0x0b10 */ 188, 2,218,225, 52, 32,138,226, 0, 16,160,227, 35, 0, 0,234, -/* 0x0b20 */ 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26, 8, 48,146,229, -/* 0x0b30 */ 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, 1, 32,160,225, -/* 0x0b40 */ 226,253,255,235, 0, 80, 80,226, 4, 0, 0,186, 10, 16,160,225, -/* 0x0b50 */ 2, 44,160,227,211,253,255,235, 2, 12, 80,227, 1, 0, 0, 10, -/* 0x0b60 */ 127, 0,160,227,203,253,255,235, 0,224,160,227, 14, 32,160,225, -/* 0x0b70 */ 8,192,141,226, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, -/* 0x0b80 */ 0, 80,141,232,155,254,255,235, 7, 16,160,227, 0, 64,160,225, -/* 0x0b90 */ 8, 32,157,229, 9, 0,160,225, 35,254,255,235, 5, 0,160,225, -/* 0x0ba0 */ 207,253,255,235, 3, 0, 0,234, 32, 32,130,226, 1, 16,129,226, -/* 0x0bb0 */ 0, 0, 81,225,217,255,255,186, 4, 0,160,225, 12,208,141,226, -/* 0x0bc0 */ 240,135,189,232 +/* 0x07c0 */ 4, 16,160,227,186, 34,216,225, 23,255,255,235, 8, 16, 21,229, +/* 0x07d0 */ 184, 34,159,229, 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225, +/* 0x07e0 */ 24, 0,157,229, 24, 48, 21,229, 16, 32, 21,229, 3, 48,128,224, +/* 0x07f0 */ 16, 48,141,229, 16,192,157,229, 3, 58,160,225, 12, 0, 21,229, +/* 0x0800 */ 35, 58,160,225, 0, 0, 89,227, 44, 32,141,229, 48,192,141,229, +/* 0x0810 */ 3,160,130,224, 7,176, 4,226, 40, 0,141,229, 12, 96, 99,224, +/* 0x0820 */ 16, 0, 0, 10, 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19, +/* 0x0830 */ 6, 0,160,225, 10, 16,160,225, 16, 48,160,227,221,254,255,235, +/* 0x0840 */ 0, 0, 86,225, 82, 0, 0, 26, 92, 32,157,229, 4, 48, 20,226, +/* 0x0850 */ 2, 48,160, 17, 9, 0,160,225, 44, 16,141,226, 12, 32,157,229, +/* 0x0860 */ 20,255,255,235, 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225, +/* 0x0870 */ 12,192, 99,224, 4,192,141,229, 12,192,157,229, 10, 16,160,225, +/* 0x0880 */ 11, 32,160,225, 18, 48,160,227, 0,192,141,229,190,254,255,235, +/* 0x0890 */ 0, 0, 86,225, 62, 0, 0, 26, 0, 48,106,226, 3,122,160,225, +/* 0x08a0 */ 2, 0, 27,227, 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227, +/* 0x08b0 */ 5, 0, 0, 10, 10, 16,134,224, 7, 32,160,225, 0, 48,160,227, +/* 0x08c0 */ 1, 32, 82,226, 1, 48,193,228,251,255,255, 26, 0, 0, 89,227, +/* 0x08d0 */ 49, 0, 0, 10,181,254,255,235, 32, 48, 21,229, 32, 0,141,229, +/* 0x08e0 */ 1, 0, 83,227, 36, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, +/* 0x08f0 */ 33, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229, +/* 0x0900 */ 3, 0, 82,225, 75, 0, 0, 26, 1, 48,130,224, 24, 0,157,229, +/* 0x0910 */ 3, 48,131,226, 3, 48,128,224, 3, 64,195,227, 0, 48,100,226, +/* 0x0920 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 65, 0, 0,154, +/* 0x0930 */ 10, 0, 0,234, 0,224,160,227, 7, 32,160,227, 0,192,224,227, +/* 0x0940 */ 14, 0,160,225, 1, 26,160,227, 34, 48,160,227, 0, 80,141,232, +/* 0x0950 */ 141,254,255,235, 0, 32, 80,226, 61, 0, 0, 26, 6, 0, 0,234, +/* 0x0960 */ 32, 32,157,229, 40, 49,159,229, 12, 0,132,232, 4, 0,160,225, +/* 0x0970 */ 8, 16,132,226,125,254,255,235, 63, 0, 0,234, 6, 0,160,225, +/* 0x0980 */ 10, 16,160,225, 11, 32,160,225,115,254,255,235, 0, 0, 80,227, +/* 0x0990 */ 1, 0, 0, 10,127, 0,160,227, 62,254,255,235, 16,192,157,229, +/* 0x09a0 */ 40, 0,157,229, 7, 48,138,224, 0, 16,140,224, 3, 64,134,224, +/* 0x09b0 */ 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224, 11, 32,160,225, +/* 0x09c0 */ 4, 0,160,225, 16, 48,160,227,122,254,255,235, 0, 0, 84,225, +/* 0x09d0 */ 0, 0, 0, 10,254,255,255,234, 28, 32,157,229, 32, 80,133,226, +/* 0x09e0 */ 1, 32,130,226, 28, 32,141,229,188, 50,216,225, 28,192,157,229, +/* 0x09f0 */ 3, 0, 92,225, 77,255,255,186, 0, 0, 89,227, 4, 0, 0, 10, +/* 0x0a00 */ 176, 49,216,225, 3, 0, 83,227, 1, 0, 0, 10, 20, 0,157,229, +/* 0x0a10 */ 66,254,255,235, 88, 0,157,229, 24, 48,157,229, 0, 0, 80,227, +/* 0x0a20 */ 24, 32,157, 21, 0, 32,128, 21, 24, 0,152,229, 0, 0,131,224, +/* 0x0a30 */ 52,208,141,226,240,143,189,232, 28, 48, 21,229, 0, 0, 83,227, +/* 0x0a40 */ 36,192,157, 5, 12, 48,129, 0, 8, 64,131, 2,195,255,255, 10, +/* 0x0a50 */ 183,255,255,234, 2, 64,160,225, 52, 48,159,229, 32, 32,157,229, +/* 0x0a60 */ 8, 16,132,226, 12, 0,132,232, 64,254,255,235, 4, 0,160,225, +/* 0x0a70 */ 8, 16,160,227, 5, 32,160,227, 55,254,255,235, 4, 32,160,225, +/* 0x0a80 */ 8, 0,157,229, 0, 16,160,227,103,254,255,235,186,255,255,234, +/* 0x0a90 */ 64, 98, 81,115, 14,240,160,225,240, 71, 45,233, 12,208, 77,226, +/* 0x0aa0 */ 52, 96,141,226, 0,144,160,225, 1,112,160,225, 3,128,160,225, +/* 0x0ab0 */ 6, 0,160,225, 44, 16,141,226, 0, 48,160,227, 48,160,157,229, +/* 0x0ac0 */ 2, 80,160,225, 52, 64,157,229,122,254,255,235, 60, 48,157,229, +/* 0x0ad0 */ 56,192,157,229, 12,224,141,226, 4, 48, 46,229, 12,192,100,224, +/* 0x0ae0 */ 6, 32,160,225, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, +/* 0x0af0 */ 56,192,141,229, 0,224,141,229, 52,112,141,229, 4,128,141,229, +/* 0x0b00 */ 188,254,255,235, 0, 64,160,225, 9, 16,160,227, 9, 0,160,225, +/* 0x0b10 */ 4, 32,160,225, 68,254,255,235,188, 2,218,225, 52, 32,138,226, +/* 0x0b20 */ 0, 16,160,227, 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, +/* 0x0b30 */ 30, 0, 0, 26, 8, 48,146,229, 8, 0,157,229, 0, 16,160,227, +/* 0x0b40 */ 0, 0,131,224, 1, 32,160,225,224,253,255,235, 0, 80, 80,226, +/* 0x0b50 */ 4, 0, 0,186, 10, 16,160,225, 2, 44,160,227,209,253,255,235, +/* 0x0b60 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227,201,253,255,235, +/* 0x0b70 */ 0,224,160,227, 14, 32,160,225, 8,192,141,226, 10, 16,160,225, +/* 0x0b80 */ 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,153,254,255,235, +/* 0x0b90 */ 7, 16,160,227, 0, 64,160,225, 8, 32,157,229, 9, 0,160,225, +/* 0x0ba0 */ 33,254,255,235, 5, 0,160,225,205,253,255,235, 3, 0, 0,234, +/* 0x0bb0 */ 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,217,255,255,186, +/* 0x0bc0 */ 4, 0,160,225, 12,208,141,226,240,135,189,232 }; diff --git a/src/stub/arm.v5a-linux.elf-so_entry.h b/src/stub/arm.v5a-linux.elf-so_entry.h new file mode 100644 index 00000000..e3475fce --- /dev/null +++ b/src/stub/arm.v5a-linux.elf-so_entry.h @@ -0,0 +1,181 @@ +/* arm.v5a-linux.elf-so_entry.h + created from arm.v5a-linux.elf-so_entry.bin, 2270 (0x8de) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_SIZE 2270 +#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_ADLER32 0xd02dd5ae +#define STUB_ARM_V5A_LINUX_ELF_SO_ENTRY_CRC32 0x278a424a + +unsigned char stub_arm_v5a_linux_elf_so_entry[2270] = { +/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 224, 1, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 8, 0, 5, 0,120, 71,192, 70, 0, 0,160,225,255, 64, 45,233, +/* 0x0040 */ 8,208, 77,226,254,255,255,235, 0, 80,160,227, 0, 64,224,227, +/* 0x0050 */ 34, 48,160,227, 3, 32,160,227, 0, 16,158,229, 4, 16,141,229, +/* 0x0060 */ 0, 0,160,227, 0, 64, 45,233,192,112,160,227, 0, 0, 0,239, +/* 0x0070 */ 1, 10,112,227, 16, 0, 0, 58,240, 1,240,231, 0, 64,189,232, +/* 0x0080 */ 0, 0,141,229, 4, 48,141,226, 0, 32,160,225, 4, 16,158,229, +/* 0x0090 */ 12, 0,142,226, 31, 0, 0,235, 0, 0,157,229, 4, 16,157,229, +/* 0x00a0 */ 5, 32,160,227,125,112,160,227, 0, 0, 0,239,144, 0, 79,226, +/* 0x00b0 */ 8, 16,141,226, 0,240,157,229, 0, 16,129,224, 62, 64, 45,233, +/* 0x00c0 */ 0, 80,224,227, 2, 65,160,227, 66, 0, 0,234, 26, 0,189,232, +/* 0x00d0 */ 1, 0, 64,224, 3, 32, 66,224, 0, 32,132,229, 0, 64,160,225, +/* 0x00e0 */ 3, 0,160,225, 2, 16,131,224, 0, 32,160,227, 7,192,160,225, +/* 0x00f0 */ 2,112,160,227, 15,120,135,227, 0, 0, 0,239, 12,112,160,225, +/* 0x0100 */ 4, 0,160,225, 48,128,189,232, 4, 64,148,224, 14,240,160, 17, +/* 0x0110 */ 1, 64,208,228, 4, 64,164,224, 4, 76,176,225, 14,240,160,225, +/* 0x0120 */ 1, 16,160,227, 14,192,160,225, 51, 0, 0,235, 1, 16,177,224, +/* 0x0130 */ 51, 0, 0,235, 59, 0, 0, 58, 12,240,160,225, 1, 48,208,228, +/* 0x0140 */ 1, 48,194,228, 51, 0, 0,235, 64, 0, 0, 42, 57, 0, 0,235, +/* 0x0150 */ 3, 48, 81,226, 0, 16,160,227, 76, 0, 0, 58, 1, 80,208,228, +/* 0x0160 */ 3, 84,133,225, 5, 80,240,225, 36, 0, 0, 10, 51, 0, 0,235, +/* 0x0170 */ 1, 16,177,224, 51, 0, 0,235, 1, 16,177,224, 83, 0, 0, 26, +/* 0x0180 */ 57, 0, 0,235, 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, +/* 0x0190 */ 5, 48,210,231, 1, 16, 81,226, 1, 48,194,228, 85, 0, 0, 42, +/* 0x01a0 */ 66, 0, 0,234, 3, 0, 0,235, 0, 46,115,121,109,116, 97, 98, +/* 0x01b0 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, +/* 0x01c0 */ 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, +/* 0x01d0 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, +/* 0x01e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x01f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0200 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, +/* 0x0210 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,112, 1, 0, 0, +/* 0x0220 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x0230 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0240 */ 144, 3, 0, 0,144, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, +/* 0x0250 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, +/* 0x0260 */ 6, 0, 0, 0, 0, 0, 0, 0,164, 1, 0, 0, 4, 0, 0, 0, +/* 0x0270 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x0280 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0290 */ 32, 4, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, +/* 0x02a0 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, +/* 0x02b0 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 1, 0, 0, 53, 0, 0, 0, +/* 0x02c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x02d0 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x02e0 */ 32, 3, 0, 0, 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, +/* 0x02f0 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, +/* 0x0300 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 3, 0, 0, 31, 0, 0, 0, +/* 0x0310 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0320 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0330 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, +/* 0x0340 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, +/* 0x0350 */ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 1, 0, +/* 0x0360 */ 8, 0, 0, 0,132, 0, 0, 0,236, 0, 0, 0, 18, 0, 1, 0, +/* 0x0370 */ 0, 95,115,116, 97,114,116, 0,117, 99,108, 95,110,114,118, 50, +/* 0x0380 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 0, 0, +/* 0x0390 */ 16, 0, 0, 0, 1, 2, 0, 0, 64, 0, 0, 0, 1, 1, 0, 0, +/* 0x03a0 */ 96, 0, 0, 0, 1, 1, 0, 0,148, 0, 0, 0, 1, 1, 0, 0, +/* 0x03b0 */ 244, 0, 0, 0, 1, 1, 0, 0,252, 0, 0, 0, 1, 1, 0, 0, +/* 0x03c0 */ 0, 1, 0, 0, 1, 1, 0, 0, 16, 1, 0, 0, 1, 1, 0, 0, +/* 0x03d0 */ 20, 1, 0, 0, 1, 1, 0, 0, 24, 1, 0, 0, 1, 1, 0, 0, +/* 0x03e0 */ 36, 1, 0, 0, 1, 1, 0, 0, 52, 1, 0, 0, 1, 1, 0, 0, +/* 0x03f0 */ 56, 1, 0, 0, 1, 1, 0, 0, 64, 1, 0, 0, 1, 1, 0, 0, +/* 0x0400 */ 72, 1, 0, 0, 1, 1, 0, 0, 76, 1, 0, 0, 1, 1, 0, 0, +/* 0x0410 */ 104, 1, 0, 0, 1, 1, 0, 0,108, 1, 0, 0, 1, 1, 0, 0, +/* 0x0420 */ 0, 0, 0, 0, 1, 1, 0, 0,102,105,108,101, 32,102,111,114, +/* 0x0430 */ 109, 97,116, 32,101,108,102, 51, 50, 45,108,105,116,116,108,101, +/* 0x0440 */ 97,114,109, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, +/* 0x0450 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0460 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, +/* 0x0470 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, +/* 0x0480 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, +/* 0x0490 */ 108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x04a0 */ 88, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, +/* 0x04b0 */ 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, +/* 0x04c0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, +/* 0x04d0 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, +/* 0x04e0 */ 48, 32, 32, 48, 49, 97, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, +/* 0x04f0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, +/* 0x0500 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x0510 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, +/* 0x0520 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, +/* 0x0530 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x0540 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x0550 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, +/* 0x0560 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97, +/* 0x0570 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32,103, 32, 32, 32, +/* 0x0580 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,101, 99, +/* 0x0590 */ 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109, +/* 0x05a0 */ 112,114,101,115,115, 95, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x05b0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x05c0 */ 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, +/* 0x05d0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x05e0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x05f0 */ 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0600 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, +/* 0x0610 */ 10, 48, 48, 48, 48, 48, 48, 52, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x0620 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0630 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 54, 48, 32, 82, 95, +/* 0x0640 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0650 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 57, +/* 0x0660 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0670 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x0680 */ 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0690 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x06a0 */ 10, 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x06b0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x06c0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x06d0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x06e0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 49, +/* 0x06f0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0700 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x0710 */ 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0720 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x0730 */ 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x0740 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0750 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 50, 52, 32, 82, 95, +/* 0x0760 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0770 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 51, +/* 0x0780 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0790 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x07a0 */ 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x07b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x07c0 */ 10, 48, 48, 48, 48, 48, 49, 52, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x07d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x07e0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 52, 56, 32, 82, 95, +/* 0x07f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x0800 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 52, +/* 0x0810 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x0820 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, +/* 0x0830 */ 48, 48, 49, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x0840 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x0850 */ 10, 48, 48, 48, 48, 48, 49, 54, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x0860 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0870 */ 65, 73, 78, 88, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x0880 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x0890 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x08a0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x08b0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x08c0 */ 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x08d0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10 +}; diff --git a/src/stub/arm.v5a-linux.elf-so_fold.h b/src/stub/arm.v5a-linux.elf-so_fold.h new file mode 100644 index 00000000..4a28294a --- /dev/null +++ b/src/stub/arm.v5a-linux.elf-so_fold.h @@ -0,0 +1,1558 @@ +/* arm.v5a-linux.elf-so_fold.h + created from arm.v5a-linux.elf-so_fold.bin, 24299 (0x5eeb) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_ARM_V5A_LINUX_ELF_SO_FOLD_SIZE 24299 +#define STUB_ARM_V5A_LINUX_ELF_SO_FOLD_ADLER32 0xd4efb801 +#define STUB_ARM_V5A_LINUX_ELF_SO_FOLD_CRC32 0xc13a7642 + +unsigned char stub_arm_v5a_linux_elf_so_fold[24299] = { +/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 56, 27, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 27, 0, 24, 0,254,255,255,235, 0,224,160,225, 3, 0,189,232, +/* 0x0040 */ 91,112,160,227, 14,240,160,225, 15, 0,160,225, 14,240,160,225, +/* 0x0050 */ 0,192,160,227, 91,112,160,227, 4,240, 18,229,240, 1,240,231, +/* 0x0060 */ 14,240,160,225, 7,192,160,225, 1,112,160,227, 0, 0, 0,239, +/* 0x0070 */ 12,112,160,225, 7,192,160,225, 3,112,160,227, 0, 0, 0,239, +/* 0x0080 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 4,112,160,227, +/* 0x0090 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225, +/* 0x00a0 */ 5,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225, +/* 0x00b0 */ 7,192,160,225, 6,112,160,227, 0, 0, 0,239, 12,112,160,225, +/* 0x00c0 */ 14,240,160,225, 7,192,160,225, 10,112,160,227, 0, 0, 0,239, +/* 0x00d0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 20,112,160,227, +/* 0x00e0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225, +/* 0x00f0 */ 45,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225, +/* 0x0100 */ 7,192,160,225, 85,112,160,227, 0, 0, 0,239, 12,112,160,225, +/* 0x0110 */ 14,240,160,225, 7,192,160,225, 91,112,160,227, 0, 0, 0,239, +/* 0x0120 */ 12,112,160,225, 14,240,160,225, 7,192,160,225,125,112,160,227, +/* 0x0130 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 0, 32,160,227, +/* 0x0140 */ 7,192,160,225, 2,112,160,227, 15,120,135,227, 0, 0, 0,239, +/* 0x0150 */ 12,112,160,225, 14,240,160,225, 48, 64, 45,233, 16, 80,157,229, +/* 0x0160 */ 12, 64,157,229, 37, 86,160,225, 7,192,160,225,192,112,160,227, +/* 0x0170 */ 0, 0, 0,239, 12,112,160,225, 48,128,189,232,104, 0, 31,229, +/* 0x0180 */ 14,240,160,225, 48, 64, 45,233, 34, 64,160,227, 0, 80,160,227, +/* 0x0190 */ 4, 48,131,225, 0, 64,224,227, 68, 0, 0,234, 2, 0, 18,225, +/* 0x01a0 */ 14,240,160, 1, 2,192,160,225, 3, 0, 16,227, 92, 0, 0, 10, +/* 0x01b0 */ 1,192,130,224, 1, 48,209,228, 12, 0, 81,225, 1, 48,192,228, +/* 0x01c0 */ 87, 0, 0, 26, 14,240,160,225, 3, 0, 17,227,112, 0, 0, 10, +/* 0x01d0 */ 3, 48,210,227, 3,192,129,224, 86, 0, 0, 10, 4, 32, 45,229, +/* 0x01e0 */ 1, 32,209,228, 1, 48,209,228, 3, 36,130,225, 1, 48,209,228, +/* 0x01f0 */ 3, 40,130,225, 1, 48,209,228, 3, 44,130,225, 4, 32,128,228, +/* 0x0200 */ 12, 0, 81,225, 98, 0, 0, 26, 4, 32,157,228, 3, 32, 18,226, +/* 0x0210 */ 86, 0, 0, 26, 14,240,160,225, 15, 48,210,227, 3,192,129,224, +/* 0x0220 */ 125, 0, 0, 26, 3, 48,210,227, 3,192,129,224, 86, 0, 0, 10, +/* 0x0230 */ 4, 48,145,228, 4, 48,128,228, 12, 0, 81,225,118, 0, 0, 26, +/* 0x0240 */ 3, 32, 18,226, 86, 0, 0, 26, 14,240,160,225,240, 0, 45,233, +/* 0x0250 */ 240, 0,177,232,240, 0,160,232, 12, 0, 81,225,126, 0, 0, 26, +/* 0x0260 */ 240, 0,189,232, 15, 32, 18,226,115, 0, 0, 26, 14,240,160,225, +/* 0x0270 */ 255, 64, 45,233,240, 0,189,232, 13, 0,160,225, 6, 48, 77,224, +/* 0x0280 */ 7,208,195,227, 4, 0, 45,229, 4, 0,141,226,254,255,255,235, +/* 0x0290 */ 5, 0,160,225, 4, 16,160,225, 3, 32,160,227, 1, 0, 23,227, +/* 0x02a0 */ 4, 32,130, 19, 16, 48,160,227,254,255,255,235, 4, 16,141,226, +/* 0x02b0 */ 6, 32,160,225,254,255,255,235, 0,208,157,229,240,128,189,232, +/* 0x02c0 */ 2, 0, 18,225, 14,240,160, 1, 1, 16,192,228, 1, 32, 82,226, +/* 0x02d0 */ 254,255,255,202, 14,240,160,225, 0, 0, 77,224, 7, 0,192,227, +/* 0x02e0 */ 0,208,160,225, 14,240,160,225, 0,192,160,225, 1, 16, 65,224, +/* 0x02f0 */ 0, 32,160,225,128, 1,144,224,129, 17,161,224,162, 30,129,224, +/* 0x0300 */ 0, 32,160,225, 0, 2,144,224, 1, 18,161,224, 34, 30,129,224, +/* 0x0310 */ 0, 32,160,225, 0, 4,144,224, 1, 20,161,224, 34, 28,129,224, +/* 0x0320 */ 0, 32,160,225, 0, 8,144,224, 1, 24,161,224, 34, 24,129,224, +/* 0x0330 */ 140, 15, 80,224,172, 16,193,224, 12, 0,144,224, 0, 0,161,226, +/* 0x0340 */ 14,240,160,225, 4,224, 45,229,254,255,255,235,127, 0,160,227, +/* 0x0350 */ 254,255,255,235,240, 64, 45,233, 0, 80,160,225, 1,112,160,225, +/* 0x0360 */ 2, 96,160,225, 24, 0,144,232, 2, 0, 83,225, 11, 0, 0, 42, +/* 0x0370 */ 8, 0,160,227,254,255,255,235, 1, 48, 70,226, 1, 0,115,227, +/* 0x0380 */ 22, 0, 0, 10, 7, 16,160,225, 0, 32,160,227, 1, 0,131,226, +/* 0x0390 */ 4, 48,210,231, 1, 48,193,228, 1, 32,130,226, 0, 0, 82,225, +/* 0x03a0 */ 17, 0, 0, 26, 4, 48,149,229, 6, 48,131,224, 4, 48,133,229, +/* 0x03b0 */ 0, 48,149,229, 3, 48,102,224, 0, 48,133,229,240,128,189,232, +/* 0x03c0 */ 48, 64, 45,233, 16,208, 77,226, 0, 80,160,225, 1, 64,160,225, +/* 0x03d0 */ 0, 48,145,229, 0, 0, 83,227,106, 0, 0, 10, 5, 0,160,225, +/* 0x03e0 */ 13, 16,160,225, 12, 32,160,227, 2, 0, 0,235, 0, 48,157,229, +/* 0x03f0 */ 0, 0, 83,227, 55, 0, 0, 26, 4, 32,157,229,248, 48,159,229, +/* 0x0400 */ 3, 0, 82,225, 49, 0, 0, 10, 2, 0,160,227,254,255,255,235, +/* 0x0410 */ 0, 48,149,229, 0, 0, 83,227,106, 0, 0, 10, 3, 0,160,227, +/* 0x0420 */ 254,255,255,235,106, 0, 0,234, 4, 48,157,229, 0, 0, 83,227, +/* 0x0430 */ 60, 0, 0, 26, 4, 0,160,227,254,255,255,235, 12, 0,157,232, +/* 0x0440 */ 2, 0, 83,225, 66, 0, 0,138, 0, 48,148,229, 3, 0, 82,225, +/* 0x0450 */ 68, 0, 0,154, 5, 0,160,227,254,255,255,235, 4, 32,157,229, +/* 0x0460 */ 0, 48,157,229, 3, 0, 82,225, 94, 0, 0, 42, 16, 32,141,226, +/* 0x0470 */ 4, 48, 34,229, 4, 0,149,229, 12, 0, 64,226, 4, 16,148,229, +/* 0x0480 */ 254,255,255,235, 0, 0, 80,227, 84, 0, 0, 26, 0, 32,157,229, +/* 0x0490 */ 12, 48,157,229, 3, 0, 82,225, 86, 0, 0, 10, 7, 0,160,227, +/* 0x04a0 */ 254,255,255,235, 4, 48,149,229, 4, 32,157,229, 2, 48,131,224, +/* 0x04b0 */ 4, 48,133,229, 0, 48,149,229, 3, 48, 98,224, 0, 48,133,229, +/* 0x04c0 */ 97, 0, 0,234, 5, 0,160,225, 4, 16,148,229, 2, 0, 0,235, +/* 0x04d0 */ 4, 48,148,229, 0, 32,157,229, 2, 48,131,224, 4, 48,132,229, +/* 0x04e0 */ 0, 48,148,229, 3, 48, 98,224, 0, 48,132,229, 0, 0, 83,227, +/* 0x04f0 */ 36, 0, 0, 26, 16,208,141,226, 48,128,189,232, 85, 80, 88, 33, +/* 0x0500 */ 240, 79, 45,233, 84,208, 77,226, 0,224,160,225, 8, 16,141,229, +/* 0x0510 */ 0, 48,144,229, 0,160, 99,224, 68,192,141,226, 15, 0,144,232, +/* 0x0520 */ 15, 0,140,232, 80, 64,157,229, 4, 64,138,224, 14,224,100,224, +/* 0x0530 */ 16,224,141,229, 0, 48,224,227, 0, 48,141,229, 0, 0,160,227, +/* 0x0540 */ 4, 0,141,229, 14, 16,160,225, 3, 32,160,227, 35, 48,131,226, +/* 0x0550 */ 254,255,255,235, 20, 0,141,229, 4, 16,160,225, 16, 32,157,229, +/* 0x0560 */ 254,255,255,235, 20, 32,157,229, 24, 64,130,226, 24, 48,146,229, +/* 0x0570 */ 60, 48,141,229, 64,160,141,229, 10, 0,160,225, 24, 16,146,229, +/* 0x0580 */ 3, 32,160,227,254,255,255,235, 4, 48,148,229, 12, 48,131,226, +/* 0x0590 */ 52, 48,141,229, 56, 64,141,229, 52, 0,141,226, 60, 16,141,226, +/* 0x05a0 */ 29, 0, 0,235,188,114,218,225, 7, 0,160,225, 0, 0, 87,227, +/* 0x05b0 */ 7,176,160, 1,168, 0, 0, 10, 10, 32,160,225, 0,176,160,227, +/* 0x05c0 */ 11, 16,160,225, 52, 48,146,229, 1, 0, 83,227, 1,176,139, 2, +/* 0x05d0 */ 1, 16,129,226, 32, 32,130,226, 1, 0, 87,225,158, 0, 0, 26, +/* 0x05e0 */ 2, 0, 91,227, 0,144,160,131,172, 0, 0,138, 76,144,157,229, +/* 0x05f0 */ 0, 0, 80,227, 24, 0,141, 5, 58, 1, 0, 10, 12,160,141,229, +/* 0x0600 */ 138, 48,138,224, 3, 49,138,224, 3, 49,160,225, 36, 48,141,229, +/* 0x0610 */ 10, 96,160,225, 0, 48,160,227, 24, 48,141,229, 28, 48,141,229, +/* 0x0620 */ 3,128,160,225, 6, 80,160,225, 52, 48,150,229, 1, 0, 83,227, +/* 0x0630 */ 34, 1, 0, 26, 76, 48,150,229, 2, 0, 19,227, 34, 1, 0, 26, +/* 0x0640 */ 28, 32,157,229, 1, 32,130,226, 28, 32,141,229, 1, 0, 82,227, +/* 0x0650 */ 196, 0, 0, 26, 2, 0, 91,227, 34, 1, 0,138, 12, 32,160,227, +/* 0x0660 */ 52, 32,141,229, 52, 0,141,226, 40, 16,141,226, 2, 0, 0,235, +/* 0x0670 */ 56, 48,157,229, 12, 48, 67,226, 56, 48,141,229, 60, 64,149,229, +/* 0x0680 */ 4, 64,137,224, 4, 16,138,224, 72, 0,149,229, 0, 0,105,224, +/* 0x0690 */ 200,145,159,229, 9, 64, 4,224, 1, 16,100,224, 64, 16,141,229, +/* 0x06a0 */ 4, 0,128,224, 60, 0,141,229, 4, 32,160,225, 76, 48,149,229, +/* 0x06b0 */ 254,255,255,235, 64, 48,157,229, 4, 48,131,224, 64, 48,141,229, +/* 0x06c0 */ 40, 48,157,229, 60, 48,141,229, 44, 48,157,229, 12, 48,131,226, +/* 0x06d0 */ 52, 48,141,229, 52, 0,141,226, 60, 16,141,226, 29, 0, 0,235, +/* 0x06e0 */ 24, 48,157,229, 0, 0, 83,227, 23, 1, 0, 26, 76, 48,149,229, +/* 0x06f0 */ 1, 0, 19,227, 23, 1, 0, 10,254,255,255,235, 32, 0,141,229, +/* 0x0700 */ 52, 48,149,229, 1, 0, 83,227, 21, 1, 0, 26, 76, 48,149,229, +/* 0x0710 */ 1, 0, 19,227, 21, 1, 0, 10, 72, 32,149,229, 60, 16,149,229, +/* 0x0720 */ 68, 48,149,229, 3, 0, 82,225, 39, 1, 0, 26, 1, 48,130,224, +/* 0x0730 */ 3, 48,131,226, 12, 32,157,229, 3, 48,130,224, 3, 64,195,227, +/* 0x0740 */ 0, 48,100,226, 9, 48, 3,224, 7, 0, 83,227, 39, 1, 0,154, +/* 0x0750 */ 13, 1, 0,234, 0, 48,224,227, 0, 48,141,229, 0, 0,160,227, +/* 0x0760 */ 4, 0,141,229, 1, 26,160,227, 7, 32,160,227, 35, 48,131,226, +/* 0x0770 */ 254,255,255,235, 0, 0, 80,227, 46, 1, 0, 26, 21, 1, 0,234, +/* 0x0780 */ 32, 48,157,229, 0, 48,132,229,212, 48,159,229, 4, 48,132,229, +/* 0x0790 */ 4, 0,160,225, 8, 16,132,226,254,255,255,235, 22, 1, 0,234, +/* 0x07a0 */ 0, 64,160,227, 24, 64,141,229, 60, 0,149,229, 76, 48,149,229, +/* 0x07b0 */ 7, 48, 3,226, 3, 49,160,225,168, 32,159,229, 50, 35,160,225, +/* 0x07c0 */ 0, 0,138,224, 72, 16,149,229, 7, 32, 2,226,254,255,255,235, +/* 0x07d0 */ 0,144,160,227, 1,128,136,226, 32, 96,134,226, 8, 0, 87,225, +/* 0x07e0 */ 58, 1, 0, 10,182, 0, 0,234, 56, 48,149,229, 0, 0, 83,227, +/* 0x07f0 */ 36, 32,157, 5, 2, 48,129, 0, 8, 64,131, 2, 13, 1, 0, 10, +/* 0x0800 */ 2, 1, 0,234, 0, 64,160,225, 32, 48,157,229, 0, 48,128,229, +/* 0x0810 */ 76, 48,159,229, 4, 48,128,229, 8, 16,132,226,254,255,255,235, +/* 0x0820 */ 4, 0,160,225, 8, 16,160,227, 5, 32,160,227,254,255,255,235, +/* 0x0830 */ 22, 1, 0,234, 72, 64,157,229, 4, 64,138,224, 20, 0,157,229, +/* 0x0840 */ 16, 16,157,229,254,255,255,235, 8, 32,157,229, 7, 0,146,232, +/* 0x0850 */ 52,255, 47,225, 24, 0,157,229, 84,208,141,226,240,143,189,232, +/* 0x0860 */ 255, 15, 0, 0,255,128,189,232, 64, 98, 81,115,255, 48, 3,226, +/* 0x0870 */ 80, 0, 83,227, 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, +/* 0x0880 */ 14,240,160, 1, 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, +/* 0x0890 */ 11, 4, 83,227, 14, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224, +/* 0x08a0 */ 255, 36,194,227, 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227, +/* 0x08b0 */ 4, 0, 0, 26, 14,240,160,225, 0, 16,160,225, 1, 0,209,228, +/* 0x08c0 */ 1, 32,209,228, 2, 4,128,225, 1, 32,209,228, 2, 8,128,225, +/* 0x08d0 */ 1, 32,209,228, 2, 12,128,225, 14,240,160,225,255, 64, 45,233, +/* 0x08e0 */ 8, 64,208,229, 0, 80,160,225, 8, 48,157,229, 4, 0,133,226, +/* 0x08f0 */ 17, 0, 0,235, 0, 16,160,225, 4, 32,157,229, 12, 0,133,226, +/* 0x0900 */ 53, 0, 0,235, 0, 48,157,229, 10, 32,211,229, 9, 48,211,229, +/* 0x0910 */ 3, 0, 19,225, 45, 0, 0, 10, 4, 0,157,229, 8, 16,157,229, +/* 0x0920 */ 0, 16,145,229,254,255,255,235, 8, 16,157,229, 4, 0,157,229, +/* 0x0930 */ 0, 16,145,229, 0, 16,129,224,254,255,255,235, 0, 0,160,227, +/* 0x0940 */ 0, 0,141,229,255,128,189,232, 8, 0,189,232, 0, 0,160,225, +/* 0x0950 */ 3, 0, 64,224, 8, 0,189,232, 2, 0,189,232, 3, 32, 66,224, +/* 0x0960 */ 8, 0,189,232, 0, 32,131,229, 14,240,160,225,252, 64, 45,233, +/* 0x0970 */ 0,112,129,224, 0, 80,224,227, 2, 65,160,227, 14, 0, 0,234, +/* 0x0980 */ 24, 0,189,232, 7, 0, 64,224, 3, 32, 66,224, 0, 32,132,229, +/* 0x0990 */ 240,128,189,232, 1, 64,208,228, 4, 64,164,224, 4, 76,176,225, +/* 0x09a0 */ 14,240,160,225, 1, 48,208,228, 1, 48,194,228, 4, 64,148,224, +/* 0x09b0 */ 8, 0, 0, 11, 12, 0, 0, 42, 1, 16,160,227, 23, 0, 0,234, +/* 0x09c0 */ 1, 16, 65,226, 4, 64,148,224, 8, 0, 0, 11, 1, 16,161,224, +/* 0x09d0 */ 4, 64,148,224, 8, 0, 0, 11, 1, 16,161,224, 4, 64,148,224, +/* 0x09e0 */ 8, 0, 0, 11, 19, 0, 0, 58, 3, 48, 81,226, 0, 16,160,227, +/* 0x09f0 */ 39, 0, 0, 58, 1, 80,208,228, 3, 84,133,225, 5, 80,240,225, +/* 0x0a00 */ 3, 0, 0, 10,197, 80,176,225, 54, 0, 0, 42, 42, 0, 0,234, +/* 0x0a10 */ 4, 64,148,224, 8, 0, 0, 11, 54, 0, 0, 42, 1, 16,160,227, +/* 0x0a20 */ 4, 64,148,224, 8, 0, 0, 11, 54, 0, 0, 42, 4, 64,148,224, +/* 0x0a30 */ 8, 0, 0, 11, 1, 16,161,224, 4, 64,148,224, 8, 0, 0, 11, +/* 0x0a40 */ 46, 0, 0, 58, 4, 16,129,226, 58, 0, 0,234, 4, 64,148,224, +/* 0x0a50 */ 8, 0, 0, 11, 1, 16,161,224, 2, 16,129,226, 5, 12,117,227, +/* 0x0a60 */ 1, 16,129, 50, 1, 48,130,224, 1, 48, 83,229, 5, 48,210,231, +/* 0x0a70 */ 1, 48,194,228, 1, 16, 81,226, 62, 0, 0, 26, 14, 0, 0,234, +/* 0x0a80 */ 252, 64, 45,233, 0,112,129,224, 0, 80,224,227, 2, 65,160,227, +/* 0x0a90 */ 14, 0, 0,234, 24, 0,189,232, 7, 0, 64,224, 3, 32, 66,224, +/* 0x0aa0 */ 0, 32,132,229,240,128,189,232, 1, 64,208,228, 4, 64,164,224, +/* 0x0ab0 */ 4, 76,176,225, 14,240,160,225, 1, 48,208,228, 1, 48,194,228, +/* 0x0ac0 */ 4, 64,148,224, 8, 0, 0, 11, 12, 0, 0, 42, 1, 16,160,227, +/* 0x0ad0 */ 23, 0, 0,234, 1, 16, 65,226, 4, 64,148,224, 8, 0, 0, 11, +/* 0x0ae0 */ 1, 16,177,224, 4, 64,148,224, 8, 0, 0, 11, 1, 16,177,224, +/* 0x0af0 */ 4, 64,148,224, 8, 0, 0, 11, 19, 0, 0, 58, 3, 48, 81,226, +/* 0x0b00 */ 0, 16,160,227, 38, 0, 0, 58, 1, 80,208,228, 3, 84,133,225, +/* 0x0b10 */ 5, 80,240,225, 3, 0, 0, 10,197, 80,176,225, 40, 0, 0,234, +/* 0x0b20 */ 4, 64,148,224, 8, 0, 0, 11, 1, 16,177,224, 4, 64,148,224, +/* 0x0b30 */ 8, 0, 0, 11, 1, 16,177,224, 53, 0, 0, 26, 1, 16,160,227, +/* 0x0b40 */ 4, 64,148,224, 8, 0, 0, 11, 1, 16,177,224, 4, 64,148,224, +/* 0x0b50 */ 8, 0, 0, 11, 46, 0, 0, 58, 2, 16,129,226, 1, 16,129,226, +/* 0x0b60 */ 5, 12,117,227, 1, 16,129, 50, 0, 48,210,229, 5, 48,210,231, +/* 0x0b70 */ 1, 48,194,228, 1, 16, 81,226, 57, 0, 0, 26, 14, 0, 0,234, +/* 0x0b80 */ 0, 16,129,224, 62, 64, 45,233, 0, 80,224,227, 2, 65,160,227, +/* 0x0b90 */ 23, 0, 0,234, 26, 0,189,232, 1, 0, 64,224, 3, 32, 66,224, +/* 0x0ba0 */ 0, 32,132,229, 48,128,189,232, 4, 64,148,224, 14,240,160, 17, +/* 0x0bb0 */ 1, 64,208,228, 4, 64,164,224, 4, 76,176,225, 14,240,160,225, +/* 0x0bc0 */ 1, 16,160,227, 14,192,160,225, 8, 0, 0,235, 1, 16,177,224, +/* 0x0bd0 */ 8, 0, 0,235, 16, 0, 0, 58, 12,240,160,225, 1, 48,208,228, +/* 0x0be0 */ 1, 48,194,228, 8, 0, 0,235, 21, 0, 0, 42, 14, 0, 0,235, +/* 0x0bf0 */ 3, 48, 81,226, 0, 16,160,227, 33, 0, 0, 58, 1, 80,208,228, +/* 0x0c00 */ 3, 84,133,225, 5, 80,240,225, 3, 0, 0, 10, 8, 0, 0,235, +/* 0x0c10 */ 1, 16,177,224, 8, 0, 0,235, 1, 16,177,224, 40, 0, 0, 26, +/* 0x0c20 */ 14, 0, 0,235, 2, 16,129,226, 13, 12,117,227, 1, 16,129, 50, +/* 0x0c30 */ 5, 48,210,231, 1, 16, 81,226, 1, 48,194,228, 42, 0, 0, 42, +/* 0x0c40 */ 23, 0, 0,234, 0,192,157,229, 14, 0, 92,227, 33, 0, 0, 26, +/* 0x0c50 */ 0, 72, 45,233, 0,176,208,229, 6,204,160,227,171,177,160,225, +/* 0x0c60 */ 28,203,160,225, 13,176,160,225, 58,205,140,226, 12,208, 77,224, +/* 0x0c70 */ 0,192,147,229, 8, 48,141,229, 4,192,141,229, 0, 32,141,229, +/* 0x0c80 */ 12, 48,141,226, 0,192,160,227, 4,192,131,228, 11, 0, 83,225, +/* 0x0c90 */ 15, 0, 0, 26, 12, 48,141,226, 2, 32, 65,226, 0, 16,160,225, +/* 0x0ca0 */ 1,192,209,228, 7,192, 12,226, 18,192,205,229, 1,192,209,228, +/* 0x0cb0 */ 44, 2,160,225, 17, 0,205,229, 15,192, 12,226, 16,192,205,229, +/* 0x0cc0 */ 16, 0,141,226, 34, 0, 0,235, 11,208,160,225, 0,136,189,232, +/* 0x0cd0 */ 33, 0, 0,234,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, +/* 0x0ce0 */ 0, 48,208,229, 2, 80,208,229, 1,224,208,229, 0,192,157,229, +/* 0x0cf0 */ 20, 48,141,229, 92, 48,157,229, 0, 64,160,227, 0, 64,140,229, +/* 0x0d00 */ 0, 64,131,229, 20,192,157,229, 1, 48,208,229, 3, 48,140,224, +/* 0x0d10 */ 3,204,160,227, 28,195,160,225, 1, 48,160,227, 19,238,160,225, +/* 0x0d20 */ 19, 53,160,225,115,206,140,226, 1, 48, 67,226, 1,224, 78,226, +/* 0x0d30 */ 4, 0,128,226, 6,192,140,226, 4, 16,141,229, 12, 48,141,229, +/* 0x0d40 */ 16,224,141,229, 8, 0,141,229, 31, 0, 0,234, 8, 0,157,229, +/* 0x0d50 */ 1, 27,160,227,176, 16,131,225, 12, 0, 84,225,132, 48,160,225, +/* 0x0d60 */ 1, 64,132,226, 28, 0, 0, 26, 4, 48,157,229, 0, 96,160,227, +/* 0x0d70 */ 2,144,131,224, 3,224,160,225, 6, 32,160,225, 4, 80,157,229, +/* 0x0d80 */ 9, 48,101,224, 3, 0, 82,225, 1,224,142,226, 73, 2, 0, 10, +/* 0x0d90 */ 5, 48,210,231, 1, 32,130,226, 5, 0, 82,227, 6,100,131,225, +/* 0x0da0 */ 40, 0, 0, 26, 0,176,160,227, 1,192,160,227, 11,112,160,225, +/* 0x0db0 */ 0, 0,224,227, 44,192,141,229, 24,176,141,229, 28,192,141,229, +/* 0x0dc0 */ 32,192,141,229, 36,192,141,229, 57, 2, 0,234,255,132,224,227, +/* 0x0dd0 */ 8, 0, 80,225, 68, 0, 0,138, 9, 0, 94,225, 73, 2, 0, 10, +/* 0x0de0 */ 1, 48,222,228, 0, 4,160,225, 6,100,131,225, 12, 16,157,229, +/* 0x0df0 */ 24, 32,157,229, 1,160, 11,224, 2, 18,160,225, 1, 48,138,224, +/* 0x0e00 */ 131, 80,160,225, 8, 48,157,229,181,192,147,225,160, 53,160,225, +/* 0x0e10 */ 156, 3, 4,224, 4, 0, 86,225,185, 0, 0, 42, 20, 0,157,229, +/* 0x0e20 */ 8, 48, 96,226, 87, 51,160,225, 16, 16,157,229, 1, 32, 11,224, +/* 0x0e30 */ 18, 48,131,224, 8, 0,157,229, 6, 44,160,227,147, 2, 34,224, +/* 0x0e40 */ 24, 16,157,229, 2, 59,108,226, 6, 0, 81,227,195, 50,140,224, +/* 0x0e50 */ 230,142,130,226,181, 48,128,225, 12,128,136,226, 4, 0,160,209, +/* 0x0e60 */ 1, 16,160,211,164, 0, 0,218, 44, 32,157,229, 84, 80,157,229, +/* 0x0e70 */ 11, 48, 98,224, 3,112,213,231, 4, 0,160,225, 1, 16,160,227, +/* 0x0e80 */ 135,112,160,225, 1, 92, 7,226,129,160,160,225,133, 48,136,224, +/* 0x0e90 */ 10, 48,131,224, 1, 4, 80,227, 2, 76,131,226, 1,192,129,226, +/* 0x0ea0 */ 119, 0, 0, 42, 9, 0, 94,225, 0, 4,160,225, 73, 2, 0, 10, +/* 0x0eb0 */ 1, 48,222,228, 6,100,131,225,176, 48,212,225,160, 37,160,225, +/* 0x0ec0 */ 12, 16,129,224,147, 2, 12,224, 2, 43, 99,226, 12, 0, 86,225, +/* 0x0ed0 */ 194, 34,131,224,163, 50, 67,224,135, 0, 0, 42, 0, 0, 85,227, +/* 0x0ee0 */ 12, 0,160,225,176, 32,196,225, 10, 16,160,225,140, 0, 0, 10, +/* 0x0ef0 */ 12, 0,160,225,164, 0, 0,234, 0, 0, 85,227,176, 48,196,225, +/* 0x0f00 */ 6, 96,108,224, 0, 0,108,224,164, 0, 0, 10,255, 0, 81,227, +/* 0x0f10 */ 168, 0, 0,202,105, 0, 0,234, 1, 4, 80,227, 3, 16,129,224, +/* 0x0f20 */ 151, 0, 0, 42, 9, 0, 94,225, 0, 4,160,225, 73, 2, 0, 10, +/* 0x0f30 */ 1, 48,222,228, 6,100,131,225,180, 48,152,225,160, 37,160,225, +/* 0x0f40 */ 147, 2, 12,224, 2, 43, 99,226, 12, 0, 86,225,163, 82, 67,224, +/* 0x0f50 */ 194, 50,131,224,180, 48,136, 49,180, 80,136, 33, 0, 0,108,224, +/* 0x0f60 */ 4, 16,160, 49, 12, 0,160, 49, 6, 96,108, 32,255, 0, 81,227, +/* 0x0f70 */ 129, 64,160,225, 1, 48,129,226,143, 0, 0,218, 24,192,157,229, +/* 0x0f80 */ 255,112, 1,226, 3, 0, 92,227, 84, 16,157,229, 0, 32,160,211, +/* 0x0f90 */ 11,112,193,231, 1,176,139,226, 24, 32,141,213, 57, 2, 0,218, +/* 0x0fa0 */ 24, 48,157,229, 9, 0, 83,227, 24, 80,157,197, 3, 48, 67,210, +/* 0x0fb0 */ 6, 80, 69,194, 24, 48,141,213, 24, 80,141,197, 57, 2, 0,234, +/* 0x0fc0 */ 172, 50, 76,224, 0, 32,100,224, 8,192,157,229, 8, 0, 82,225, +/* 0x0fd0 */ 181, 48,140,225, 6, 96,100,224,197, 0, 0,138, 9, 0, 94,225, +/* 0x0fe0 */ 73, 2, 0, 10, 1, 48,222,228, 2, 36,160,225, 6,100,131,225, +/* 0x0ff0 */ 8, 0,157,229, 24, 48,157,229,131,112,128,224, 6, 13,135,226, +/* 0x1000 */ 176,192,208,225,162, 53,160,225,156, 3, 4,224, 4, 0, 86,225, +/* 0x1010 */ 225, 0, 0, 42, 24, 32,157,229, 8, 80,157,229, 6, 0, 82,227, +/* 0x1020 */ 2, 59,108,226,102, 30,133,226, 3, 32,160,195, 32, 80,157,229, +/* 0x1030 */ 0, 32,160,211,195, 50,140,224, 24, 32,141,229, 28,192,157,229, +/* 0x1040 */ 44, 32,157,229, 36, 80,141,229, 4, 16,129,226, 4, 80,160,225, +/* 0x1050 */ 32,192,141,229, 28, 32,141,229,176, 48,192,225, 98, 1, 0,234, +/* 0x1060 */ 2, 32,100,224,172, 50, 76,224, 8, 0, 82,225,176, 48,192,225, +/* 0x1070 */ 6, 96,100,224,236, 0, 0,138, 9, 0, 94,225, 73, 2, 0, 10, +/* 0x1080 */ 1, 48,222,228, 2, 36,160,225, 6,100,131,225,102, 95,135,226, +/* 0x1090 */ 176,192,213,225,162, 53,160,225,156, 3, 4,224, 4, 0, 86,225, +/* 0x10a0 */ 26, 1, 0, 42, 2, 59,108,226,195, 50,140,224, 8, 0, 84,225, +/* 0x10b0 */ 176, 48,197,225,252, 0, 0,138, 9, 0, 94,225, 73, 2, 0, 10, +/* 0x10c0 */ 1, 48,222,228, 4, 68,160,225, 6,100,131,225, 8, 80,157,229, +/* 0x10d0 */ 129, 48,133,224,138, 48,131,224, 30, 30,131,226,176,192,209,225, +/* 0x10e0 */ 164, 53,160,225,156, 3, 2,224, 2, 0, 86,225, 6, 96, 98, 32, +/* 0x10f0 */ 172, 50, 76, 32, 4, 80, 98, 32, 50, 1, 0, 42, 2, 59,108,226, +/* 0x1100 */ 195, 50,140,224, 0, 0, 91,227,176, 48,193,225, 73, 2, 0, 10, +/* 0x1110 */ 44,192,157,229, 24, 16,157,229, 84, 0,157,229, 11, 48,108,224, +/* 0x1120 */ 3,112,208,231, 6, 0, 81,227, 11, 16,160,195, 9, 16,160,211, +/* 0x1130 */ 24, 16,141,229, 11,112,192,231, 2, 0,160,225, 1,176,139,226, +/* 0x1140 */ 57, 2, 0,234, 2, 32,100,224,172, 50, 76,224, 8, 0, 82,225, +/* 0x1150 */ 176, 48,197,225, 6, 96,100,224, 37, 1, 0,138, 9, 0, 94,225, +/* 0x1160 */ 73, 2, 0, 10, 1, 48,222,228, 2, 36,160,225, 6,100,131,225, +/* 0x1170 */ 27, 30,135,226,176,192,209,225,162, 53,160,225,156, 3, 4,224, +/* 0x1180 */ 4, 0, 86,225, 52, 1, 0, 42, 44, 80,157,229, 2, 59,108,226, +/* 0x1190 */ 28, 32,157,229,195, 50,140,224, 28, 80,141,229, 4, 80,160,225, +/* 0x11a0 */ 44, 32,141,229,176, 48,193,225, 90, 1, 0,234, 2, 32,100,224, +/* 0x11b0 */ 172, 50, 76,224, 8, 0, 82,225,176, 48,193,225, 6, 96,100,224, +/* 0x11c0 */ 63, 1, 0,138, 9, 0, 94,225, 73, 2, 0, 10, 1, 48,222,228, +/* 0x11d0 */ 2, 36,160,225, 6,100,131,225,114, 31,135,226,176,192,209,225, +/* 0x11e0 */ 162, 53,160,225,156, 3, 4,224, 4, 0, 86,225, 78, 1, 0, 42, +/* 0x11f0 */ 2, 59,108,226, 32, 32,157,229,195, 50,140,224, 44, 0,157,229, +/* 0x1200 */ 28,192,157,229, 4, 80,160,225, 32,192,141,229, 28, 0,141,229, +/* 0x1210 */ 49, 1, 0,234,172, 50, 76,224,176, 48,193,225, 44,192,157,229, +/* 0x1220 */ 32, 16,141,226, 10, 0,145,232, 2, 80,100,224, 28, 32,157,229, +/* 0x1230 */ 36, 16,141,229, 32, 32,141,229, 28,192,141,229, 44, 48,141,229, +/* 0x1240 */ 6, 96,100,224, 24, 32,157,229, 8, 0,157,229, 6, 0, 82,227, +/* 0x1250 */ 11, 32,160,195, 8, 32,160,211,166, 30,128,226, 24, 32,141,229, +/* 0x1260 */ 8, 16,129,226,255,116,224,227, 7, 0, 85,225,106, 1, 0,138, +/* 0x1270 */ 9, 0, 94,225, 73, 2, 0, 10, 1, 48,222,228, 5, 84,160,225, +/* 0x1280 */ 6,100,131,225,176,192,209,225,165, 53,160,225,156, 3, 4,224, +/* 0x1290 */ 4, 0, 86,225,120, 1, 0, 42, 10, 34,129,224, 2, 59,108,226, +/* 0x12a0 */ 195, 50,140,224, 4, 80,130,226, 4, 0,160,225, 3,160,160,227, +/* 0x12b0 */ 0,128,160,227,176, 48,193,225,152, 1, 0,234, 5, 32,100,224, +/* 0x12c0 */ 172, 50, 76,224, 7, 0, 82,225, 6, 96,100,224,176, 48,193,225, +/* 0x12d0 */ 131, 1, 0,138, 9, 0, 94,225, 73, 2, 0, 10, 1, 48,222,228, +/* 0x12e0 */ 2, 36,160,225, 6,100,131,225,178,192,209,225,162, 53,160,225, +/* 0x12f0 */ 156, 3, 4,224, 4, 0, 86,225,145, 1, 0, 42, 10, 34,129,224, +/* 0x1300 */ 2, 59,108,226,195, 50,140,224, 65, 95,130,226, 4, 0,160,225, +/* 0x1310 */ 3,160,160,227, 8,128,160,227,178, 48,193,225,152, 1, 0,234, +/* 0x1320 */ 172, 50, 76,224,178, 48,193,225, 6, 96,100,224, 2, 0,100,224, +/* 0x1330 */ 129, 95,129,226, 8,160,160,227, 16,128,160,227, 10,112,160,225, +/* 0x1340 */ 1, 16,160,227, 1, 48,129,226, 1, 4, 80,227,129, 64,160,225, +/* 0x1350 */ 3, 16,129,224,164, 1, 0, 42, 9, 0, 94,225, 0, 4,160,225, +/* 0x1360 */ 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225,180, 48,149,225, +/* 0x1370 */ 160, 37,160,225,147, 2, 12,224, 2, 43, 99,226, 12, 0, 86,225, +/* 0x1380 */ 194, 34,131,224,163, 50, 67,224, 0, 0,108,224, 4, 16,160, 49, +/* 0x1390 */ 12, 0,160, 49,180, 32,133, 49, 6, 96,108, 32,180, 48,133, 33, +/* 0x13a0 */ 1,112, 87,226,154, 1, 0, 26, 1, 32,160,227, 18, 58, 65,224, +/* 0x13b0 */ 24, 80,157,229, 8, 48,131,224, 3, 0, 85,227, 40, 48,141,229, +/* 0x13c0 */ 36, 2, 0,202, 8,192,157,229, 3, 0, 83,227, 3, 48,160,163, +/* 0x13d0 */ 131, 51,140,224, 54, 94,131,226, 2,112,160,225, 6,128,160,227, +/* 0x13e0 */ 1, 48,135,226, 1, 4, 80,227,135, 64,160,225, 3,112,135,224, +/* 0x13f0 */ 203, 1, 0, 42, 9, 0, 94,225, 0, 4,160,225, 73, 2, 0, 10, +/* 0x1400 */ 1, 48,222,228, 6,100,131,225,180, 48,149,225,160, 37,160,225, +/* 0x1410 */ 147, 2, 12,224, 2, 43, 99,226, 12, 0, 86,225,194, 34,131,224, +/* 0x1420 */ 163, 50, 67,224, 0, 0,108,224, 4,112,160, 49, 12, 0,160, 49, +/* 0x1430 */ 180, 32,133, 49, 6, 96,108, 32,180, 48,133, 33, 1,128, 88,226, +/* 0x1440 */ 193, 1, 0, 26, 64, 32, 71,226, 3, 0, 82,227, 2, 80,160,209, +/* 0x1450 */ 30, 2, 0,218,194, 64,160,225, 13, 0, 82,227, 1, 48, 2,226, +/* 0x1460 */ 1,112, 68,226, 2,192,131,227, 5, 64, 68,194, 8, 32,160,193, +/* 0x1470 */ 237, 1, 0,202, 28, 87,160,225, 8, 16,157,229,133, 48,129,224, +/* 0x1480 */ 130, 48, 67,224, 85, 78,131,226, 14, 64,132,226, 1, 2, 0,234, +/* 0x1490 */ 1, 4, 80,227, 1, 32,130,226,245, 1, 0, 42, 9, 0, 94,225, +/* 0x14a0 */ 0, 4,160,225, 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225, +/* 0x14b0 */ 160, 0,160,225, 0, 0, 86,225,140,192,160,225, 6, 96, 96, 32, +/* 0x14c0 */ 1,192,140, 35, 4, 0, 82,225,237, 1, 0, 26, 8, 32,157,229, +/* 0x14d0 */ 25, 77,130,226, 4, 64,132,226, 12, 82,160,225, 4,112,160,227, +/* 0x14e0 */ 1,160,160,227, 10,128,160,225, 1, 4, 80,227,136, 16,160,225, +/* 0x14f0 */ 1,192,136,226, 12, 2, 0, 42, 9, 0, 94,225, 0, 4,160,225, +/* 0x1500 */ 73, 2, 0, 10, 1, 48,222,228, 6,100,131,225,177, 48,148,225, +/* 0x1510 */ 160, 37,160,225, 12,128,136,224,147, 2, 12,224, 2, 43, 99,226, +/* 0x1520 */ 12, 0, 86,225,194, 34,131,224,163, 50, 67,224, 10, 80,133, 33, +/* 0x1530 */ 1,128,160, 49, 12, 0,160, 49,177, 32,132, 49,177, 48,132, 33, +/* 0x1540 */ 6, 96,108, 32, 0, 0,108, 32, 1,112, 87,226,138,160,160,225, +/* 0x1550 */ 3, 2, 0, 26, 1, 80,149,226, 44, 80,141,229, 60, 2, 0, 10, +/* 0x1560 */ 24, 48,157,229, 7, 48,131,226, 24, 48,141,229, 44, 80,157,229, +/* 0x1570 */ 11, 0, 85,225, 73, 2, 0,138, 40,192,157,229, 84, 16,157,229, +/* 0x1580 */ 11, 48,101,224, 2, 32,140,226, 3, 64,129,224, 11,192,129,224, +/* 0x1590 */ 1, 32, 82,226, 88, 80,157,229, 0, 48,160, 3, 1, 48,160, 19, +/* 0x15a0 */ 1,176,139,226, 5, 0, 91,225, 0, 48,160, 35, 1, 48, 3, 50, +/* 0x15b0 */ 1,112,212,228, 0, 0, 83,227, 1,112,204,228, 45, 2, 0, 26, +/* 0x15c0 */ 88,192,157,229, 12, 0, 91,225, 60, 0, 0, 58, 1, 4, 80,227, +/* 0x15d0 */ 65, 2, 0, 42, 9, 0, 94,225, 73, 2, 0, 10, 1,224,142,226, +/* 0x15e0 */ 4, 0,157,229, 0, 16,157,229, 92, 32,157,229, 14, 48, 96,224, +/* 0x15f0 */ 0, 0,160,227, 0, 48,129,229, 0,176,130,229, 74, 2, 0,234, +/* 0x1600 */ 1, 0,160,227, 48,208,141,226,240,143,189,232,248, 79, 45,233, +/* 0x1610 */ 1,192,130,224, 40,144,157,229, 44,112,157,229, 1,128,160,225, +/* 0x1620 */ 9,160,135,224, 4,176,128,226, 0, 96,208,229, 1, 80,208,229, +/* 0x1630 */ 2, 64,208,229, 6,224,133,224, 0,112,224,227, 23, 85,224,225, +/* 0x1640 */ 23, 68,224,225, 1, 48,160,227, 1, 32,160,227, 1, 16,160,227, +/* 0x1650 */ 1, 0,160,227,255, 95, 45,233, 0, 96,160,227, 28, 96,141,229, +/* 0x1660 */ 3, 44,160,227, 18, 46,160,225, 54, 32,130,226, 7, 44,130,226, +/* 0x1670 */ 11, 16,160,225, 1, 11,160,227, 1, 3,128,227, 4, 0,129,228, +/* 0x1680 */ 2, 32, 82,226, 26, 0, 0,202, 5, 0,136,226, 5, 1, 0,235, +/* 0x1690 */ 8, 0, 80,225, 30, 0, 0, 26, 36, 48,157,229, 16, 32,157,229, +/* 0x16a0 */ 3, 64, 73,224, 2, 0, 4,224, 44, 0,141,229, 6, 2,128,224, +/* 0x16b0 */ 0, 16,139,226, 9, 1, 0,235, 80, 0, 0, 26, 20, 48,157,229, +/* 0x16c0 */ 24, 32,157,229, 4, 48, 3,224, 28, 0,221,229, 19, 50,160,225, +/* 0x16d0 */ 8, 32, 98,226, 48, 50,131,224,108,160,139,226,131, 48,131,224, +/* 0x16e0 */ 14,172,138,226, 1, 0,160,227,131,164,138,224, 7, 0, 86,227, +/* 0x16f0 */ 69, 0, 0, 58, 0, 16,157,229, 1, 80, 89,231,133, 80,160,225, +/* 0x1700 */ 2, 28,138,226, 1, 76, 5,226,132, 16,129,224, 11, 1, 0,235, +/* 0x1710 */ 1, 48, 0,226, 36, 4, 83,225, 71, 0, 0, 26, 1, 12, 80,227, +/* 0x1720 */ 58, 0, 0, 58, 73, 0, 0,234, 10, 16,160,225, 11, 1, 0,235, +/* 0x1730 */ 1, 12, 80,227, 69, 0, 0, 58, 6, 48,160,227, 10, 0, 86,227, +/* 0x1740 */ 3, 48,160, 51, 4, 0, 86,227, 6, 48,160, 49, 3, 96, 70,224, +/* 0x1750 */ 112, 0, 0,234, 6, 29,139,226, 8, 1, 0,235, 95, 0, 0, 26, +/* 0x1760 */ 8, 48,157,229, 4, 32,157,229, 0, 16,157,229, 12, 48,141,229, +/* 0x1770 */ 8, 32,141,229, 4, 16,141,229, 7, 0, 86,227, 3, 96,160,227, +/* 0x1780 */ 0, 96,160, 51,100,160,139,226, 6,172,138,226,135, 0, 0,234, +/* 0x1790 */ 102, 31,139,226, 8, 1, 0,235,114, 0, 0, 26, 44, 48,157,229, +/* 0x17a0 */ 30, 30,139,226, 6, 2,131,224, 9, 1, 0,235,130, 0, 0, 26, +/* 0x17b0 */ 7, 0, 86,227, 11, 96,160,227, 9, 96,160, 51, 36, 48,157,229, +/* 0x17c0 */ 0, 16,157,229, 3, 64, 73,224, 1, 0, 84,225,253, 0, 0, 58, +/* 0x17d0 */ 1, 0, 89,231, 1, 0,201,228,237, 0, 0,234, 27, 30,139,226, +/* 0x17e0 */ 8, 1, 0,235, 4, 64,157,229,127, 0, 0, 10,114, 31,139,226, +/* 0x17f0 */ 8, 1, 0,235, 8, 64,157,229,125, 0, 0, 10, 8, 48,157,229, +/* 0x1800 */ 12, 64,157,229, 12, 48,141,229, 4, 48,157,229, 8, 48,141,229, +/* 0x1810 */ 0, 16,157,229, 0, 64,141,229, 4, 16,141,229, 7, 0, 86,227, +/* 0x1820 */ 11, 96,160,227, 8, 96,160, 51,104,160,139,226, 10,172,138,226, +/* 0x1830 */ 0, 16,138,226, 10, 1, 0,235,144, 0, 0, 26, 44, 48,157,229, +/* 0x1840 */ 4, 80,138,226, 0, 32,160,227, 3, 82,133,224, 8, 64,160,227, +/* 0x1850 */ 156, 0, 0,234, 2, 16,138,226, 10, 1, 0,235,153, 0, 0, 26, +/* 0x1860 */ 44, 48,157,229, 65, 95,138,226, 8, 32,160,227, 3, 82,133,224, +/* 0x1870 */ 8, 64,160,227,156, 0, 0,234,129, 95,138,226, 16, 32,160,227, +/* 0x1880 */ 1, 76,160,227, 52, 32,141,229, 1, 0,160,227, 5, 16,160,225, +/* 0x1890 */ 11, 1, 0,235, 4, 48, 80,224,158, 0, 0, 58, 52, 80,157,229, +/* 0x18a0 */ 3, 80,133,224, 52, 80,141,229, 0, 16,157,229, 4, 0, 86,227, +/* 0x18b0 */ 225, 0, 0, 42, 7, 96,134,226, 4, 0, 85,227, 3, 80,160, 35, +/* 0x18c0 */ 133, 83,139,224, 54, 94,133,226, 1, 0,160,227, 64, 64,160,227, +/* 0x18d0 */ 5, 16,160,225, 11, 1, 0,235, 4, 48, 80,224,175, 0, 0, 58, +/* 0x18e0 */ 44, 48,141,229, 4, 0, 83,227,221, 0, 0, 58,163, 64,160,225, +/* 0x18f0 */ 1, 64, 68,226, 1, 16, 3,226, 2, 16,129,227, 14, 0, 83,227, +/* 0x1900 */ 194, 0, 0, 42, 17, 20,160,225, 94,160,139,226, 3, 48, 65,224, +/* 0x1910 */ 5,172,138,226,131,160,138,224,206, 0, 0,234, 4, 64, 68,226, +/* 0x1920 */ 255, 0, 0,235,167,112,160,225, 7, 0, 92,225, 7,192, 76, 32, +/* 0x1930 */ 1, 16,161,224, 1, 64, 84,226,195, 0, 0, 26, 68,160,139,226, +/* 0x1940 */ 6,172,138,226, 1, 18,160,225, 4, 64,160,227, 0, 16,141,229, +/* 0x1950 */ 1, 80,160,227, 1, 0,160,227, 10, 16,160,225, 11, 1, 0,235, +/* 0x1960 */ 1, 0, 16,227,216, 0, 0, 10, 0, 16,157,229, 5, 16,129,225, +/* 0x1970 */ 0, 16,141,229,133, 80,160,225, 1, 64, 84,226,209, 0, 0, 26, +/* 0x1980 */ 0, 16,157,229,222, 0, 0,234, 44, 16,157,229, 1, 16,145,226, +/* 0x1990 */ 0, 16,141,229, 52, 80,157,229, 36, 48,157,229, 2, 80,133,226, +/* 0x19a0 */ 3, 48, 73,224, 3, 0, 81,225,253, 0, 0,138, 40, 32,157,229, +/* 0x19b0 */ 1, 0, 89,231, 1, 0,201,228, 2, 0, 89,225,241, 0, 0, 42, +/* 0x19c0 */ 1, 80, 85,226,231, 0, 0, 26, 28, 0,205,229, 40, 32,157,229, +/* 0x19d0 */ 2, 0, 89,225, 33, 0, 0, 58,255, 0, 0,235, 0, 0,160,227, +/* 0x19e0 */ 32, 32,157,229, 2, 48, 72,224, 56, 32,157,229, 0, 48,130,229, +/* 0x19f0 */ 36, 32,157,229, 2, 48, 73,224,104, 32,157,229, 0, 48,130,229, +/* 0x1a00 */ 60,208,141,226,240,143,189,232, 1, 0,160,227,243, 0, 0,234, +/* 0x1a10 */ 1, 4, 87,227, 14,240,160, 33, 48, 48,157,229, 7,116,160,225, +/* 0x1a20 */ 8, 0, 83,225,253, 0, 0, 10, 1, 48,216,228, 12,196,131,225, +/* 0x1a30 */ 14,240,160,225, 6, 0,160,225,128, 16,129,224, 0, 0,160,227, +/* 0x1a40 */ 128, 16,129,224, 1, 4, 87,227, 14, 32,160,225, 1, 1, 0, 59, +/* 0x1a50 */ 176, 48,209,225,167,229,160,225,147, 14, 14,224, 14, 0, 92,225, +/* 0x1a60 */ 14,112,160, 49, 14,112, 71, 32, 2,235, 99, 50, 14,192, 76, 32, +/* 0x1a70 */ 174, 50,131, 48,163, 50, 67, 32, 0, 0,176,224,176, 48,193,225, +/* 0x1a80 */ 2,240,160,225, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116, +/* 0x1a90 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46, +/* 0x1aa0 */ 114,101,108, 83, 79, 95, 72, 69, 65, 68, 0,112,116,114, 95, 78, +/* 0x1ab0 */ 69, 88, 84, 0, 46,114,101,108, 83, 79, 95, 84, 65, 73, 76, 0, +/* 0x1ac0 */ 46,114,101,108, 83, 79, 95, 77, 65, 73, 78, 0, 46,114,101,108, +/* 0x1ad0 */ 69, 88, 80, 95, 72, 69, 65, 68, 0, 69, 88, 80, 95, 84, 65, 73, +/* 0x1ae0 */ 76, 0, 46,114,101,108, 78, 82, 86, 50, 69, 0, 46,114,101,108, +/* 0x1af0 */ 78, 82, 86, 50, 68, 0, 46,114,101,108, 78, 82, 86, 50, 66, 0, +/* 0x1b00 */ 46,114,101,108, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 0, 46, +/* 0x1b10 */ 114,101,108, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 0, 46,114, +/* 0x1b20 */ 101,108, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 0, 76, 90, 77, +/* 0x1b30 */ 65, 95, 68, 69, 67, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b60 */ 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b70 */ 52, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1b80 */ 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, +/* 0x1b90 */ 0, 0, 0, 0, 0, 0, 0, 0, 80, 35, 0, 0, 8, 0, 0, 0, +/* 0x1ba0 */ 25, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1bb0 */ 39, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x1bc0 */ 72, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1bd0 */ 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 1, 0, 0, 0, +/* 0x1be0 */ 6, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0,244, 2, 0, 0, +/* 0x1bf0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1c00 */ 48, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1c10 */ 88, 35, 0, 0,136, 0, 0, 0, 25, 0, 0, 0, 4, 0, 0, 0, +/* 0x1c20 */ 4, 0, 0, 0, 8, 0, 0, 0, 64, 0, 0, 0, 1, 0, 0, 0, +/* 0x1c30 */ 6, 0, 0, 0, 0, 0, 0, 0, 68, 3, 0, 0, 40, 5, 0, 0, +/* 0x1c40 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x1c50 */ 60, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1c60 */ 224, 35, 0, 0, 0, 2, 0, 0, 25, 0, 0, 0, 6, 0, 0, 0, +/* 0x1c70 */ 4, 0, 0, 0, 8, 0, 0, 0, 76, 0, 0, 0, 1, 0, 0, 0, +/* 0x1c80 */ 6, 0, 0, 0, 0, 0, 0, 0,108, 8, 0, 0,220, 0, 0, 0, +/* 0x1c90 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ca0 */ 72, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1cb0 */ 224, 37, 0, 0, 56, 0, 0, 0, 25, 0, 0, 0, 8, 0, 0, 0, +/* 0x1cc0 */ 4, 0, 0, 0, 8, 0, 0, 0, 85, 0, 0, 0, 1, 0, 0, 0, +/* 0x1cd0 */ 6, 0, 0, 0, 0, 0, 0, 0, 72, 9, 0, 0, 36, 0, 0, 0, +/* 0x1ce0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1cf0 */ 98, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d00 */ 108, 9, 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d10 */ 1, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 9, 0, 0, 0, +/* 0x1d20 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 38, 0, 0,184, 0, 0, 0, +/* 0x1d30 */ 25, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1d40 */ 108, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d50 */ 128, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d60 */ 1, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 9, 0, 0, 0, +/* 0x1d70 */ 0, 0, 0, 0, 0, 0, 0, 0,208, 38, 0, 0,152, 0, 0, 0, +/* 0x1d80 */ 25, 0, 0, 0, 13, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1d90 */ 118, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, +/* 0x1da0 */ 128, 11, 0, 0,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1db0 */ 1, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 0, 9, 0, 0, 0, +/* 0x1dc0 */ 0, 0, 0, 0, 0, 0, 0, 0,104, 39, 0, 0,120, 0, 0, 0, +/* 0x1dd0 */ 25, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1de0 */ 128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1df0 */ 68, 12, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e00 */ 1, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 9, 0, 0, 0, +/* 0x1e10 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 39, 0, 0, 32, 0, 0, 0, +/* 0x1e20 */ 25, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1e30 */ 143, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e40 */ 212, 12, 0, 0, 56, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e50 */ 1, 0, 0, 0, 0, 0, 0, 0,139, 0, 0, 0, 9, 0, 0, 0, +/* 0x1e60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 72, 2, 0, 0, +/* 0x1e70 */ 25, 0, 0, 0, 19, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1e80 */ 158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e90 */ 12, 22, 0, 0,120, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ea0 */ 1, 0, 0, 0, 0, 0, 0, 0,154, 0, 0, 0, 9, 0, 0, 0, +/* 0x1eb0 */ 0, 0, 0, 0, 0, 0, 0, 0, 72, 42, 0, 0,176, 1, 0, 0, +/* 0x1ec0 */ 25, 0, 0, 0, 21, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, +/* 0x1ed0 */ 169, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ee0 */ 132, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ef0 */ 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, +/* 0x1f00 */ 0, 0, 0, 0, 0, 0, 0, 0,132, 26, 0, 0,180, 0, 0, 0, +/* 0x1f10 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f20 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f30 */ 112, 31, 0, 0,192, 2, 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, +/* 0x1f40 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, +/* 0x1f50 */ 0, 0, 0, 0, 0, 0, 0, 0, 48, 34, 0, 0, 30, 1, 0, 0, +/* 0x1f60 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, +/* 0x1f90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 6, 0, +/* 0x1fa0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 8, 0, +/* 0x1fb0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, +/* 0x1fc0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 13, 0, +/* 0x1fd0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 15, 0, +/* 0x1fe0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 17, 0, +/* 0x1ff0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 19, 0, +/* 0x2000 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 21, 0, +/* 0x2010 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, +/* 0x2020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, +/* 0x2030 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 10, 0, +/* 0x2040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 23, 0, +/* 0x2050 */ 1, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 16, 0, 8, 0, +/* 0x2060 */ 10, 0, 0, 0,196, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2070 */ 17, 0, 0, 0, 44, 1, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2080 */ 32, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2090 */ 39, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x20a0 */ 46, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x20b0 */ 55, 0, 0, 0,152, 2, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x20c0 */ 65, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x20d0 */ 70, 0, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x20e0 */ 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 10, 0, +/* 0x20f0 */ 88, 0, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2100 */ 102, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2110 */ 108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 18, 0, 13, 0, +/* 0x2120 */ 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, +/* 0x2130 */ 136, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2140 */ 141, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2150 */ 148, 0, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2160 */ 157, 0, 0, 0,112, 2, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2170 */ 164, 0, 0, 0, 0, 0, 0, 0,196, 0, 0, 0, 18, 0, 15, 0, +/* 0x2180 */ 187, 0, 0, 0,136, 2, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2190 */ 197, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x21a0 */ 205, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 18, 0, 11, 0, +/* 0x21b0 */ 228, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x21c0 */ 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 21, 0, +/* 0x21d0 */ 244, 0, 0, 0,156, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x21e0 */ 248, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x21f0 */ 253, 0, 0, 0,152, 2, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2200 */ 3, 1, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2210 */ 12, 1, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, +/* 0x2220 */ 18, 1, 0, 0,188, 1, 0, 0,108, 3, 0, 0, 18, 0, 6, 0, +/* 0x2230 */ 0,102, 95,101,120,112, 97,110,100, 0,109,117,110,109, 97,112, +/* 0x2240 */ 0,103,101,116, 95,115,121,115, 95,109,117,110,109, 97,112, 0, +/* 0x2250 */ 103,101,116,112,105,100, 0,109,101,109, 99,112,121, 0,114,101, +/* 0x2260 */ 97,100,108,105,110,107, 0, 95, 95,117,100,105,118,115,105, 51, +/* 0x2270 */ 0,109,109, 97,112, 0, 95, 95, 99,108,101, 97,114, 95, 99, 97, +/* 0x2280 */ 99,104,101, 0,101,111,102, 0,109,109, 97,112, 95,112,114,105, +/* 0x2290 */ 118, 97,110,111,110, 0,119,114,105,116,101, 0,117, 99,108, 95, +/* 0x22a0 */ 110,114,118, 50,100, 95,100,101, 99,111,109,112,114,101,115,115, +/* 0x22b0 */ 95, 56, 0,102,111,108,100, 0,114,101, 97,100, 0,117,110,108, +/* 0x22c0 */ 105,110,107, 0,117,110,100,101,114,108, 97,121, 0,109,101,109, +/* 0x22d0 */ 115,101,116, 0,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, +/* 0x22e0 */ 99,111,109,112,114,101,115,115, 95, 56, 0,109,121, 95, 97,108, +/* 0x22f0 */ 108,111, 99, 97, 0,109,121, 95, 98,107,112,116, 0,117, 99,108, +/* 0x2300 */ 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115, +/* 0x2310 */ 115, 95, 56, 0,101,120,105,116, 0, 76,122,109, 97, 68,101, 99, +/* 0x2320 */ 111,100,101, 0, 98,114,107, 0,111,112,101,110, 0,100,105,118, +/* 0x2330 */ 49, 48, 0,109,112,114,111,116,101, 99,116, 0, 99,108,111,115, +/* 0x2340 */ 101, 0,117,112,120, 95,115,111, 95,109, 97,105,110, 0, 0, 0, +/* 0x2350 */ 0, 0, 0, 0, 1, 43, 0, 0, 72, 1, 0, 0, 1, 1, 0, 0, +/* 0x2360 */ 92, 1, 0, 0, 1, 1, 0, 0,112, 1, 0, 0, 1, 1, 0, 0, +/* 0x2370 */ 124, 1, 0, 0, 1, 1, 0, 0,136, 1, 0, 0, 1, 1, 0, 0, +/* 0x2380 */ 180, 1, 0, 0, 1, 1, 0, 0,192, 1, 0, 0, 1, 1, 0, 0, +/* 0x2390 */ 208, 1, 0, 0, 1, 1, 0, 0,220, 1, 0, 0, 1, 1, 0, 0, +/* 0x23a0 */ 236, 1, 0, 0, 1, 1, 0, 0,244, 1, 0, 0, 1, 1, 0, 0, +/* 0x23b0 */ 12, 2, 0, 0, 1, 1, 0, 0, 24, 2, 0, 0, 1, 1, 0, 0, +/* 0x23c0 */ 60, 2, 0, 0, 1, 18, 0, 0, 88, 2, 0, 0, 1, 24, 0, 0, +/* 0x23d0 */ 100, 2, 0, 0, 1, 18, 0, 0,128, 2, 0, 0, 1, 31, 0, 0, +/* 0x23e0 */ 4, 0, 0, 0, 1, 34, 0, 0, 12, 0, 0, 0, 1, 36, 0, 0, +/* 0x23f0 */ 40, 0, 0, 0, 1, 2, 0, 0, 48, 0, 0, 0, 1, 2, 0, 0, +/* 0x2400 */ 60, 0, 0, 0, 1, 2, 0, 0, 92, 0, 0, 0, 1, 2, 0, 0, +/* 0x2410 */ 148, 0, 0, 0, 1, 2, 0, 0,164, 0, 0, 0, 1, 2, 0, 0, +/* 0x2420 */ 176, 0, 0, 0, 1, 2, 0, 0,192, 0, 0, 0, 1, 2, 0, 0, +/* 0x2430 */ 200, 0, 0, 0, 1, 2, 0, 0,212, 0, 0, 0, 1, 2, 0, 0, +/* 0x2440 */ 220, 0, 0, 0, 1, 2, 0, 0,224, 0, 0, 0, 1, 2, 0, 0, +/* 0x2450 */ 236, 0, 0, 0, 1, 2, 0, 0,244, 0, 0, 0, 1, 2, 0, 0, +/* 0x2460 */ 0, 1, 0, 0, 1, 2, 0, 0, 12, 1, 0, 0, 1, 2, 0, 0, +/* 0x2470 */ 20, 1, 0, 0, 1, 2, 0, 0, 36, 1, 0, 0, 1, 2, 0, 0, +/* 0x2480 */ 60, 1, 0, 0, 1, 14, 0, 0, 68, 1, 0, 0, 1, 2, 0, 0, +/* 0x2490 */ 84, 1, 0, 0, 1, 2, 0, 0, 92, 1, 0, 0, 1, 2, 0, 0, +/* 0x24a0 */ 124, 1, 0, 0, 1, 2, 0, 0,136, 1, 0, 0, 1, 2, 0, 0, +/* 0x24b0 */ 172, 1, 0, 0, 1, 2, 0, 0, 12, 2, 0, 0, 1, 21, 0, 0, +/* 0x24c0 */ 28, 2, 0, 0, 1, 18, 0, 0, 64, 2, 0, 0, 1, 41, 0, 0, +/* 0x24d0 */ 92, 2, 0, 0, 1, 2, 0, 0,112, 2, 0, 0, 1, 2, 0, 0, +/* 0x24e0 */ 152, 2, 0, 0, 1, 2, 0, 0,164, 2, 0, 0, 1, 2, 0, 0, +/* 0x24f0 */ 180, 2, 0, 0, 1, 2, 0, 0,236, 2, 0, 0, 1, 2, 0, 0, +/* 0x2500 */ 248, 2, 0, 0, 1, 2, 0, 0, 12, 3, 0, 0, 1, 2, 0, 0, +/* 0x2510 */ 20, 3, 0, 0, 1, 2, 0, 0, 40, 3, 0, 0, 1, 2, 0, 0, +/* 0x2520 */ 108, 3, 0, 0, 1, 30, 0, 0,152, 3, 0, 0, 1, 2, 0, 0, +/* 0x2530 */ 164, 3, 0, 0, 1, 2, 0, 0,176, 3, 0, 0, 1, 2, 0, 0, +/* 0x2540 */ 180, 3, 0, 0, 1, 16, 0, 0,196, 3, 0, 0, 1, 2, 0, 0, +/* 0x2550 */ 208, 3, 0, 0, 1, 2, 0, 0,228, 3, 0, 0, 1, 2, 0, 0, +/* 0x2560 */ 8, 4, 0, 0, 1, 2, 0, 0, 12, 4, 0, 0, 1, 2, 0, 0, +/* 0x2570 */ 44, 4, 0, 0, 1, 21, 0, 0, 52, 4, 0, 0, 1, 2, 0, 0, +/* 0x2580 */ 56, 4, 0, 0, 1, 2, 0, 0, 84, 4, 0, 0, 1, 22, 0, 0, +/* 0x2590 */ 88, 4, 0, 0, 1, 2, 0, 0,136, 4, 0, 0, 1, 41, 0, 0, +/* 0x25a0 */ 156, 4, 0, 0, 1, 2, 0, 0,160, 4, 0, 0, 1, 2, 0, 0, +/* 0x25b0 */ 184, 4, 0, 0, 1, 2, 0, 0,188, 4, 0, 0, 1, 2, 0, 0, +/* 0x25c0 */ 216, 4, 0, 0, 1, 22, 0, 0,232, 4, 0, 0, 1, 41, 0, 0, +/* 0x25d0 */ 236, 4, 0, 0, 1, 2, 0, 0, 0, 5, 0, 0, 1, 15, 0, 0, +/* 0x25e0 */ 40, 0, 0, 0, 1, 3, 0, 0, 68, 0, 0, 0, 1, 3, 0, 0, +/* 0x25f0 */ 132, 0, 0, 0, 1, 3, 0, 0,148, 0, 0, 0, 1, 3, 0, 0, +/* 0x2600 */ 168, 0, 0, 0, 1, 3, 0, 0,184, 0, 0, 0, 1, 3, 0, 0, +/* 0x2610 */ 204, 0, 0, 0, 1, 22, 0, 0, 16, 0, 0, 0, 1, 4, 0, 0, +/* 0x2620 */ 68, 0, 0, 0, 1, 4, 0, 0, 72, 0, 0, 0, 1, 4, 0, 0, +/* 0x2630 */ 80, 0, 0, 0, 1, 4, 0, 0, 92, 0, 0, 0, 1, 4, 0, 0, +/* 0x2640 */ 104, 0, 0, 0, 1, 4, 0, 0,116, 0, 0, 0, 1, 4, 0, 0, +/* 0x2650 */ 120, 0, 0, 0, 1, 4, 0, 0,132, 0, 0, 0, 1, 4, 0, 0, +/* 0x2660 */ 148, 0, 0, 0, 1, 4, 0, 0,156, 0, 0, 0, 1, 4, 0, 0, +/* 0x2670 */ 160, 0, 0, 0, 1, 4, 0, 0,168, 0, 0, 0, 1, 4, 0, 0, +/* 0x2680 */ 172, 0, 0, 0, 1, 4, 0, 0,184, 0, 0, 0, 1, 4, 0, 0, +/* 0x2690 */ 188, 0, 0, 0, 1, 4, 0, 0,196, 0, 0, 0, 1, 4, 0, 0, +/* 0x26a0 */ 208, 0, 0, 0, 1, 4, 0, 0,212, 0, 0, 0, 1, 4, 0, 0, +/* 0x26b0 */ 220, 0, 0, 0, 1, 4, 0, 0,228, 0, 0, 0, 1, 4, 0, 0, +/* 0x26c0 */ 12, 1, 0, 0, 1, 4, 0, 0, 16, 1, 0, 0, 1, 4, 0, 0, +/* 0x26d0 */ 16, 0, 0, 0, 1, 5, 0, 0, 68, 0, 0, 0, 1, 5, 0, 0, +/* 0x26e0 */ 72, 0, 0, 0, 1, 5, 0, 0, 80, 0, 0, 0, 1, 5, 0, 0, +/* 0x26f0 */ 92, 0, 0, 0, 1, 5, 0, 0,104, 0, 0, 0, 1, 5, 0, 0, +/* 0x2700 */ 116, 0, 0, 0, 1, 5, 0, 0,120, 0, 0, 0, 1, 5, 0, 0, +/* 0x2710 */ 132, 0, 0, 0, 1, 5, 0, 0,148, 0, 0, 0, 1, 5, 0, 0, +/* 0x2720 */ 156, 0, 0, 0, 1, 5, 0, 0,164, 0, 0, 0, 1, 5, 0, 0, +/* 0x2730 */ 176, 0, 0, 0, 1, 5, 0, 0,184, 0, 0, 0, 1, 5, 0, 0, +/* 0x2740 */ 196, 0, 0, 0, 1, 5, 0, 0,208, 0, 0, 0, 1, 5, 0, 0, +/* 0x2750 */ 212, 0, 0, 0, 1, 5, 0, 0,248, 0, 0, 0, 1, 5, 0, 0, +/* 0x2760 */ 252, 0, 0, 0, 1, 5, 0, 0, 16, 0, 0, 0, 1, 6, 0, 0, +/* 0x2770 */ 72, 0, 0, 0, 1, 6, 0, 0, 80, 0, 0, 0, 1, 6, 0, 0, +/* 0x2780 */ 84, 0, 0, 0, 1, 6, 0, 0,100, 0, 0, 0, 1, 6, 0, 0, +/* 0x2790 */ 104, 0, 0, 0, 1, 6, 0, 0,108, 0, 0, 0, 1, 6, 0, 0, +/* 0x27a0 */ 120, 0, 0, 0, 1, 6, 0, 0,136, 0, 0, 0, 1, 6, 0, 0, +/* 0x27b0 */ 140, 0, 0, 0, 1, 6, 0, 0,148, 0, 0, 0, 1, 6, 0, 0, +/* 0x27c0 */ 156, 0, 0, 0, 1, 6, 0, 0,160, 0, 0, 0, 1, 6, 0, 0, +/* 0x27d0 */ 188, 0, 0, 0, 1, 6, 0, 0,192, 0, 0, 0, 1, 6, 0, 0, +/* 0x27e0 */ 8, 0, 0, 0, 1, 7, 0, 0, 76, 0, 0, 0, 1, 7, 0, 0, +/* 0x27f0 */ 128, 0, 0, 0, 1, 7, 0, 0,140, 0, 0, 0, 1, 7, 0, 0, +/* 0x2800 */ 116, 0, 0, 0, 1, 8, 0, 0,144, 0, 0, 0, 1, 8, 0, 0, +/* 0x2810 */ 184, 0, 0, 0, 1, 8, 0, 0,204, 0, 0, 0, 1, 8, 0, 0, +/* 0x2820 */ 244, 0, 0, 0, 1, 8, 0, 0, 0, 1, 0, 0, 1, 8, 0, 0, +/* 0x2830 */ 8, 1, 0, 0, 1, 8, 0, 0, 68, 1, 0, 0, 1, 8, 0, 0, +/* 0x2840 */ 144, 1, 0, 0, 1, 8, 0, 0,204, 1, 0, 0, 1, 8, 0, 0, +/* 0x2850 */ 216, 1, 0, 0, 1, 8, 0, 0, 4, 2, 0, 0, 1, 8, 0, 0, +/* 0x2860 */ 24, 2, 0, 0, 1, 8, 0, 0, 32, 2, 0, 0, 1, 8, 0, 0, +/* 0x2870 */ 52, 2, 0, 0, 1, 8, 0, 0, 60, 2, 0, 0, 1, 8, 0, 0, +/* 0x2880 */ 64, 2, 0, 0, 1, 8, 0, 0, 76, 2, 0, 0, 1, 8, 0, 0, +/* 0x2890 */ 88, 2, 0, 0, 1, 8, 0, 0,164, 2, 0, 0, 1, 8, 0, 0, +/* 0x28a0 */ 200, 2, 0, 0, 1, 8, 0, 0,232, 2, 0, 0, 1, 8, 0, 0, +/* 0x28b0 */ 4, 3, 0, 0, 1, 8, 0, 0, 12, 3, 0, 0, 1, 8, 0, 0, +/* 0x28c0 */ 60, 3, 0, 0, 1, 8, 0, 0,136, 3, 0, 0, 1, 8, 0, 0, +/* 0x28d0 */ 160, 3, 0, 0, 1, 8, 0, 0,168, 3, 0, 0, 1, 8, 0, 0, +/* 0x28e0 */ 204, 3, 0, 0, 1, 8, 0, 0,224, 3, 0, 0, 1, 8, 0, 0, +/* 0x28f0 */ 232, 3, 0, 0, 1, 8, 0, 0, 36, 4, 0, 0, 1, 8, 0, 0, +/* 0x2900 */ 56, 4, 0, 0, 1, 8, 0, 0,108, 4, 0, 0, 1, 8, 0, 0, +/* 0x2910 */ 132, 4, 0, 0, 1, 8, 0, 0,140, 4, 0, 0, 1, 8, 0, 0, +/* 0x2920 */ 176, 4, 0, 0, 1, 8, 0, 0,212, 4, 0, 0, 1, 8, 0, 0, +/* 0x2930 */ 236, 4, 0, 0, 1, 8, 0, 0,244, 4, 0, 0, 1, 8, 0, 0, +/* 0x2940 */ 24, 5, 0, 0, 1, 8, 0, 0, 60, 5, 0, 0, 1, 8, 0, 0, +/* 0x2950 */ 152, 5, 0, 0, 1, 8, 0, 0,160, 5, 0, 0, 1, 8, 0, 0, +/* 0x2960 */ 192, 5, 0, 0, 1, 8, 0, 0,228, 5, 0, 0, 1, 8, 0, 0, +/* 0x2970 */ 252, 5, 0, 0, 1, 8, 0, 0, 4, 6, 0, 0, 1, 8, 0, 0, +/* 0x2980 */ 36, 6, 0, 0, 1, 8, 0, 0, 72, 6, 0, 0, 1, 8, 0, 0, +/* 0x2990 */ 128, 6, 0, 0, 1, 8, 0, 0,140, 6, 0, 0, 1, 8, 0, 0, +/* 0x29a0 */ 208, 6, 0, 0, 1, 8, 0, 0,236, 6, 0, 0, 1, 8, 0, 0, +/* 0x29b0 */ 28, 7, 0, 0, 1, 8, 0, 0, 40, 7, 0, 0, 1, 8, 0, 0, +/* 0x29c0 */ 108, 7, 0, 0, 1, 8, 0, 0,124, 7, 0, 0, 1, 8, 0, 0, +/* 0x29d0 */ 156, 7, 0, 0, 1, 8, 0, 0,184, 7, 0, 0, 1, 8, 0, 0, +/* 0x29e0 */ 196, 7, 0, 0, 1, 8, 0, 0,208, 7, 0, 0, 1, 8, 0, 0, +/* 0x29f0 */ 244, 7, 0, 0, 1, 8, 0, 0, 32, 8, 0, 0, 1, 8, 0, 0, +/* 0x2a00 */ 44, 8, 0, 0, 1, 8, 0, 0,124, 8, 0, 0, 1, 8, 0, 0, +/* 0x2a10 */ 136, 8, 0, 0, 1, 8, 0, 0,160, 8, 0, 0, 1, 8, 0, 0, +/* 0x2a20 */ 232, 8, 0, 0, 1, 8, 0, 0,244, 8, 0, 0, 1, 8, 0, 0, +/* 0x2a30 */ 252, 8, 0, 0, 1, 8, 0, 0, 4, 9, 0, 0, 1, 8, 0, 0, +/* 0x2a40 */ 40, 9, 0, 0, 1, 8, 0, 0,120, 0, 0, 0, 1, 9, 0, 0, +/* 0x2a50 */ 128, 0, 0, 0, 1, 9, 0, 0,136, 0, 0, 0, 1, 9, 0, 0, +/* 0x2a60 */ 168, 0, 0, 0, 1, 9, 0, 0,172, 0, 0, 0, 1, 9, 0, 0, +/* 0x2a70 */ 228, 0, 0, 0, 1, 9, 0, 0, 0, 1, 0, 0, 1, 9, 0, 0, +/* 0x2a80 */ 12, 1, 0, 0, 1, 9, 0, 0, 20, 1, 0, 0, 1, 9, 0, 0, +/* 0x2a90 */ 24, 1, 0, 0, 1, 9, 0, 0, 32, 1, 0, 0, 1, 9, 0, 0, +/* 0x2aa0 */ 40, 1, 0, 0, 1, 9, 0, 0, 68, 1, 0, 0, 1, 9, 0, 0, +/* 0x2ab0 */ 76, 1, 0, 0, 1, 9, 0, 0, 80, 1, 0, 0, 1, 9, 0, 0, +/* 0x2ac0 */ 128, 1, 0, 0, 1, 9, 0, 0,136, 1, 0, 0, 1, 9, 0, 0, +/* 0x2ad0 */ 140, 1, 0, 0, 1, 9, 0, 0,156, 1, 0, 0, 1, 9, 0, 0, +/* 0x2ae0 */ 160, 1, 0, 0, 1, 9, 0, 0,192, 1, 0, 0, 1, 9, 0, 0, +/* 0x2af0 */ 204, 1, 0, 0, 1, 9, 0, 0,212, 1, 0, 0, 1, 9, 0, 0, +/* 0x2b00 */ 220, 1, 0, 0, 1, 9, 0, 0,228, 1, 0, 0, 1, 9, 0, 0, +/* 0x2b10 */ 236, 1, 0, 0, 1, 9, 0, 0, 40, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b20 */ 44, 2, 0, 0, 1, 9, 0, 0, 68, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b30 */ 76, 2, 0, 0, 1, 9, 0, 0, 80, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b40 */ 104, 2, 0, 0, 1, 9, 0, 0,132, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b50 */ 140, 2, 0, 0, 1, 9, 0, 0,164, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b60 */ 200, 2, 0, 0, 1, 9, 0, 0,208, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b70 */ 220, 2, 0, 0, 1, 9, 0, 0,244, 2, 0, 0, 1, 9, 0, 0, +/* 0x2b80 */ 12, 3, 0, 0, 1, 9, 0, 0, 20, 3, 0, 0, 1, 9, 0, 0, +/* 0x2b90 */ 44, 3, 0, 0, 1, 9, 0, 0, 80, 3, 0, 0, 1, 9, 0, 0, +/* 0x2ba0 */ 88, 3, 0, 0, 1, 9, 0, 0,112, 3, 0, 0, 1, 9, 0, 0, +/* 0x2bb0 */ 120, 3, 0, 0, 1, 9, 0, 0,156, 3, 0, 0, 1, 9, 0, 0, +/* 0x2bc0 */ 176, 3, 0, 0, 1, 9, 0, 0,184, 3, 0, 0, 1, 9, 0, 0, +/* 0x2bd0 */ 200, 3, 0, 0, 1, 9, 0, 0,204, 3, 0, 0, 1, 9, 0, 0, +/* 0x2be0 */ 0, 4, 0, 0, 1, 9, 0, 0, 24, 4, 0, 0, 1, 9, 0, 0, +/* 0x2bf0 */ 64, 4, 0, 0, 1, 9, 0, 0,102,105,108,101, 32,102,111,114, +/* 0x2c00 */ 109, 97,116, 32,101,108,102, 51, 50, 45,108,105,116,116,108,101, +/* 0x2c10 */ 97,114,109, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, +/* 0x2c20 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2c30 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, +/* 0x2c40 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, +/* 0x2c50 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, +/* 0x2c60 */ 108, 97,103,115, 10, 32, 32, 48, 32, 83, 79, 95, 72, 69, 65, 68, +/* 0x2c70 */ 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 32, 32, 48, 32, 32, 48, +/* 0x2c80 */ 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2c90 */ 84, 69, 78, 84, 83, 10, 32, 32, 49, 32,112,116,114, 95, 78, 69, +/* 0x2ca0 */ 88, 84, 32, 32, 32, 32, 32, 32, 48, 56, 32, 32, 48, 32, 32, 48, +/* 0x2cb0 */ 32, 32, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2cc0 */ 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 83, 79, 95, 84, 65, 73, +/* 0x2cd0 */ 76, 32, 32, 32, 32, 32, 32, 32, 48, 50,102, 52, 32, 32, 48, 32, +/* 0x2ce0 */ 32, 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x2cf0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 83, 79, 95, 77, +/* 0x2d00 */ 65, 73, 78, 32, 32, 32, 32, 32, 32, 32, 48, 53, 50, 56, 32, 32, +/* 0x2d10 */ 48, 32, 32, 48, 32, 32, 48, 51, 52, 52, 32, 32, 50, 42, 42, 50, +/* 0x2d20 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, 69, +/* 0x2d30 */ 88, 80, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,100, 99, +/* 0x2d40 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 56, 54, 99, 32, 32, 50, 42, +/* 0x2d50 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, +/* 0x2d60 */ 32, 69, 88, 80, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, +/* 0x2d70 */ 50, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 57, 52, 56, 32, 32, +/* 0x2d80 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, +/* 0x2d90 */ 32, 54, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2da0 */ 32, 48, 49, 49, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 57, 54, +/* 0x2db0 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x2dc0 */ 83, 10, 32, 32, 55, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, +/* 0x2dd0 */ 32, 32, 32, 32, 48, 49, 48, 48, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x2de0 */ 48, 97, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x2df0 */ 69, 78, 84, 83, 10, 32, 32, 56, 32, 78, 82, 86, 50, 66, 32, 32, +/* 0x2e00 */ 32, 32, 32, 32, 32, 32, 32, 48, 99, 52, 32, 32, 48, 32, 32, 48, +/* 0x2e10 */ 32, 32, 48, 98, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x2e20 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, +/* 0x2e30 */ 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 57, 48, 32, 32, 48, 32, +/* 0x2e40 */ 32, 48, 32, 32, 48, 99, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x2e50 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48, 32, 76, 90, 77, +/* 0x2e60 */ 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 51, 56, 32, +/* 0x2e70 */ 32, 48, 32, 32, 48, 32, 32, 48, 99,100, 52, 32, 32, 50, 42, 42, +/* 0x2e80 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 49, 32, +/* 0x2e90 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 52, +/* 0x2ea0 */ 55, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 54, 48, 99, 32, +/* 0x2eb0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, +/* 0x2ec0 */ 32, 49, 50, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, +/* 0x2ed0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 97, 56, 52, +/* 0x2ee0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x2ef0 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, +/* 0x2f00 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2f10 */ 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 83, 79, 95, 84, 65, 73, +/* 0x2f20 */ 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x2f30 */ 100, 32, 32, 83, 79, 95, 77, 65, 73, 78, 32, 48, 32, 83, 79, 95, +/* 0x2f40 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2f50 */ 32, 32, 32,100, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 32, 48, +/* 0x2f60 */ 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x2f70 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, +/* 0x2f80 */ 32, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2f90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, +/* 0x2fa0 */ 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2fb0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, +/* 0x2fc0 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2fd0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x2fe0 */ 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, +/* 0x2ff0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x3000 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, +/* 0x3010 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3020 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3030 */ 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x3040 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x3050 */ 100, 32, 32, 83, 79, 95, 72, 69, 65, 68, 32, 48, 32, 83, 79, 95, +/* 0x3060 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x3070 */ 32, 32, 32,100, 32, 32,112,116,114, 95, 78, 69, 88, 84, 32, 48, +/* 0x3080 */ 32,112,116,114, 95, 78, 69, 88, 84, 10, 48, 48, 48, 48, 48, 48, +/* 0x3090 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, 95, 84, +/* 0x30a0 */ 65, 73, 76, 32, 48, 32, 69, 88, 80, 95, 84, 65, 73, 76, 10, 48, +/* 0x30b0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x30c0 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, +/* 0x30d0 */ 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 55, 48, +/* 0x30e0 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, +/* 0x30f0 */ 68, 32, 48, 32,102, 95,101,120,112, 97,110,100, 10, 48, 48, 48, +/* 0x3100 */ 48, 48, 48, 99, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3110 */ 95, 84, 65, 73, 76, 32, 48, 32,109,117,110,109, 97,112, 10, 48, +/* 0x3120 */ 48, 48, 48, 48, 49, 50, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, +/* 0x3130 */ 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,103,101,116, 95,115,121, +/* 0x3140 */ 115, 95,109,117,110,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 56, +/* 0x3150 */ 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x3160 */ 76, 32, 48, 32,103,101,116,112,105,100, 10, 48, 48, 48, 48, 48, +/* 0x3170 */ 49, 52, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, +/* 0x3180 */ 65, 73, 76, 32, 48, 32,109,101,109, 99,112,121, 10, 48, 48, 48, +/* 0x3190 */ 48, 48, 48, 98, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x31a0 */ 95, 84, 65, 73, 76, 32, 48, 32,114,101, 97,100,108,105,110,107, +/* 0x31b0 */ 10, 48, 48, 48, 48, 48, 50, 57, 56, 32,103, 32, 32, 32, 32, 32, +/* 0x31c0 */ 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 95, 95,117,100, +/* 0x31d0 */ 105,118,115,105, 51, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32,103, +/* 0x31e0 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x31f0 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48,101, 99, 32,103, +/* 0x3200 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x3210 */ 32, 95, 95, 99,108,101, 97,114, 95, 99, 97, 99,104,101, 10, 48, +/* 0x3220 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, +/* 0x3230 */ 69, 88, 80, 95, 84, 65, 73, 76, 32, 48, 32,101,111,102, 10, 48, +/* 0x3240 */ 48, 48, 48, 48, 49, 51, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, +/* 0x3250 */ 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,109, 97,112, 95,112, +/* 0x3260 */ 114,105,118, 97,110,111,110, 10, 48, 48, 48, 48, 48, 48, 51, 56, +/* 0x3270 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3280 */ 32, 48, 32,119,114,105,116,101, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x3290 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, +/* 0x32a0 */ 48, 49, 48, 48, 32,117, 99,108, 95,110,114,118, 50,100, 95,100, +/* 0x32b0 */ 101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, +/* 0x32c0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x32d0 */ 72, 69, 65, 68, 32, 48, 32,102,111,108,100, 10, 48, 48, 48, 48, +/* 0x32e0 */ 48, 48, 50, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x32f0 */ 84, 65, 73, 76, 32, 48, 32,114,101, 97,100, 10, 48, 48, 48, 48, +/* 0x3300 */ 48, 48, 55, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3310 */ 84, 65, 73, 76, 32, 48, 32,117,110,108,105,110,107, 10, 48, 48, +/* 0x3320 */ 48, 48, 48, 50, 50, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3330 */ 79, 95, 84, 65, 73, 76, 32, 48, 32,117,110,100,101,114,108, 97, +/* 0x3340 */ 121, 10, 48, 48, 48, 48, 48, 50, 55, 48, 32,103, 32, 32, 32, 32, +/* 0x3350 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,101,109, +/* 0x3360 */ 115,101,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, +/* 0x3370 */ 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 32, 48, 99, 52, 32,117, +/* 0x3380 */ 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114, +/* 0x3390 */ 101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 50, 56, 56, 32,103, +/* 0x33a0 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x33b0 */ 32,109,121, 95, 97,108,108,111, 99, 97, 10, 48, 48, 48, 48, 48, +/* 0x33c0 */ 48, 48, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, +/* 0x33d0 */ 65, 73, 76, 32, 48, 32,109,121, 95, 98,107,112,116, 10, 48, 48, +/* 0x33e0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, +/* 0x33f0 */ 82, 86, 50, 69, 32, 48, 49, 49, 52, 32,117, 99,108, 95,110,114, +/* 0x3400 */ 118, 50,101, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, +/* 0x3410 */ 10, 48, 48, 48, 48, 48, 48, 49, 52, 32,103, 32, 32, 32, 32, 32, +/* 0x3420 */ 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,101,120,105,116, +/* 0x3430 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x3440 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, +/* 0x3450 */ 122,109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, +/* 0x3460 */ 57, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x3470 */ 73, 76, 32, 48, 32, 98,114,107, 10, 48, 48, 48, 48, 48, 48, 52, +/* 0x3480 */ 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x3490 */ 76, 32, 48, 32,111,112,101,110, 10, 48, 48, 48, 48, 48, 50, 57, +/* 0x34a0 */ 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x34b0 */ 76, 32, 48, 32,100,105,118, 49, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x34c0 */ 100, 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x34d0 */ 73, 76, 32, 48, 32,109,112,114,111,116,101, 99,116, 10, 48, 48, +/* 0x34e0 */ 48, 48, 48, 48, 54, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x34f0 */ 79, 95, 84, 65, 73, 76, 32, 48, 32, 99,108,111,115,101, 10, 48, +/* 0x3500 */ 48, 48, 48, 48, 49, 98, 99, 32,103, 32, 32, 32, 32, 32, 70, 32, +/* 0x3510 */ 83, 79, 95, 77, 65, 73, 78, 32, 48, 51, 54, 99, 32,117,112,120, +/* 0x3520 */ 95,115,111, 95,109, 97,105,110, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x3530 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x3540 */ 32, 91, 83, 79, 95, 72, 69, 65, 68, 93, 58, 10, 79, 70, 70, 83, +/* 0x3550 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x3560 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x3570 */ 48, 48, 48, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3580 */ 32, 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,115,111, 95,109, +/* 0x3590 */ 97,105,110, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x35a0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, +/* 0x35b0 */ 84, 65, 73, 76, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, +/* 0x35c0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x35d0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 52, 56, +/* 0x35e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x35f0 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, +/* 0x3600 */ 49, 53, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3610 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, +/* 0x3620 */ 48, 48, 48, 49, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3630 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3640 */ 10, 48, 48, 48, 48, 48, 49, 55, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3650 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, +/* 0x3660 */ 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, +/* 0x3670 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3680 */ 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, 98, 52, 32, +/* 0x3690 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x36a0 */ 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49, +/* 0x36b0 */ 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x36c0 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, +/* 0x36d0 */ 48, 48, 49,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x36e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, +/* 0x36f0 */ 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3700 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x3710 */ 73, 76, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, +/* 0x3720 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3730 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 49,102, 52, 32, 82, +/* 0x3740 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3750 */ 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 50, 48, +/* 0x3760 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3770 */ 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, +/* 0x3780 */ 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3790 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 10, 48, +/* 0x37a0 */ 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x37b0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109, 99,112,121, +/* 0x37c0 */ 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x37d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, +/* 0x37e0 */ 95,112,114,105,118, 97,110,111,110, 10, 48, 48, 48, 48, 48, 50, +/* 0x37f0 */ 54, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3800 */ 32, 32, 32, 32, 32,109,101,109, 99,112,121, 10, 48, 48, 48, 48, +/* 0x3810 */ 48, 50, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3820 */ 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10, 10, 82, +/* 0x3830 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x3840 */ 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, 77, 65, 73, 78, 93, 58, +/* 0x3850 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x3860 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x3870 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 82, 77, +/* 0x3880 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, +/* 0x3890 */ 98,107,112,116, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, +/* 0x38a0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x38b0 */ 101,120,105,116, 10, 48, 48, 48, 48, 48, 48, 50, 56, 32, 82, 95, +/* 0x38c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x38d0 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 51, 48, +/* 0x38e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x38f0 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x3900 */ 48, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3910 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, +/* 0x3920 */ 48, 48, 48, 48, 53, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3930 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x3940 */ 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3950 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, +/* 0x3960 */ 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 97, 52, 32, 82, 95, 65, +/* 0x3970 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x3980 */ 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 98, 48, 32, +/* 0x3990 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x39a0 */ 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, +/* 0x39b0 */ 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x39c0 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x39d0 */ 48, 48, 48, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x39e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x39f0 */ 48, 48, 48, 48, 48, 48,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3a00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, +/* 0x3a10 */ 73, 78, 10, 48, 48, 48, 48, 48, 48,100, 99, 32, 82, 95, 65, 82, +/* 0x3a20 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3a30 */ 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48,101, 48, 32, 82, +/* 0x3a40 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3a50 */ 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48,101, +/* 0x3a60 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3a70 */ 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, +/* 0x3a80 */ 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3a90 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3aa0 */ 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3ab0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3ac0 */ 78, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, +/* 0x3ad0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3ae0 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, +/* 0x3af0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3b00 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 50, 52, +/* 0x3b10 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3b20 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x3b30 */ 49, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3b40 */ 32, 32, 32, 32, 32, 32,102, 95,101,120,112, 97,110,100, 10, 48, +/* 0x3b50 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3b60 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3b70 */ 78, 10, 48, 48, 48, 48, 48, 49, 53, 52, 32, 82, 95, 65, 82, 77, +/* 0x3b80 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3b90 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 53, 99, 32, 82, 95, +/* 0x3ba0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3bb0 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 49, 55, 99, +/* 0x3bc0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3bd0 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x3be0 */ 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3bf0 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, +/* 0x3c00 */ 48, 48, 48, 49, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3c10 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x3c20 */ 10, 48, 48, 48, 48, 48, 50, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3c30 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, +/* 0x3c40 */ 10, 48, 48, 48, 48, 48, 50, 49, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3c50 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109, 99, +/* 0x3c60 */ 112,121, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, +/* 0x3c70 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,109,112, +/* 0x3c80 */ 114,111,116,101, 99,116, 10, 48, 48, 48, 48, 48, 50, 53, 99, 32, +/* 0x3c90 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3ca0 */ 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 50, +/* 0x3cb0 */ 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3cc0 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x3cd0 */ 48, 48, 50, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3ce0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, +/* 0x3cf0 */ 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3d00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, +/* 0x3d10 */ 73, 78, 10, 48, 48, 48, 48, 48, 50, 98, 52, 32, 82, 95, 65, 82, +/* 0x3d20 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x3d30 */ 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 50,101, 99, 32, 82, +/* 0x3d40 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3d50 */ 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 50,102, +/* 0x3d60 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3d70 */ 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, +/* 0x3d80 */ 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3d90 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3da0 */ 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3db0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3dc0 */ 78, 10, 48, 48, 48, 48, 48, 51, 50, 56, 32, 82, 95, 65, 82, 77, +/* 0x3dd0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3de0 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 51, 54, 99, 32, 82, 95, +/* 0x3df0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3e00 */ 117,110,100,101,114,108, 97,121, 10, 48, 48, 48, 48, 48, 51, 57, +/* 0x3e10 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3e20 */ 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, +/* 0x3e30 */ 48, 51, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3e40 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3e50 */ 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3e60 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3e70 */ 78, 10, 48, 48, 48, 48, 48, 51, 98, 52, 32, 82, 95, 65, 82, 77, +/* 0x3e80 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, +/* 0x3e90 */ 95,115,121,115, 95,109,117,110,109, 97,112, 10, 48, 48, 48, 48, +/* 0x3ea0 */ 48, 51, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3eb0 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, +/* 0x3ec0 */ 48, 48, 48, 48, 51,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3ed0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, +/* 0x3ee0 */ 78, 10, 48, 48, 48, 48, 48, 51,101, 52, 32, 82, 95, 65, 82, 77, +/* 0x3ef0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3f00 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 48, 56, 32, 82, 95, +/* 0x3f10 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3f20 */ 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 48, 99, +/* 0x3f30 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3f40 */ 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, +/* 0x3f50 */ 52, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3f60 */ 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, +/* 0x3f70 */ 52, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3f80 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, +/* 0x3f90 */ 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3fa0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x3fb0 */ 10, 48, 48, 48, 48, 48, 52, 53, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3fc0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 99,108, +/* 0x3fd0 */ 101, 97,114, 95, 99, 97, 99,104,101, 10, 48, 48, 48, 48, 48, 52, +/* 0x3fe0 */ 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3ff0 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x4000 */ 48, 48, 52, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4010 */ 32, 32, 32, 32, 32, 32, 32, 32,109,112,114,111,116,101, 99,116, +/* 0x4020 */ 10, 48, 48, 48, 48, 48, 52, 57, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x4030 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 77, +/* 0x4040 */ 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 97, 48, 32, 82, 95, 65, +/* 0x4050 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 83, +/* 0x4060 */ 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, 98, 56, 32, +/* 0x4070 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4080 */ 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 52, +/* 0x4090 */ 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x40a0 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x40b0 */ 48, 48, 52,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x40c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 99,108,101, 97,114, 95, +/* 0x40d0 */ 99, 97, 99,104,101, 10, 48, 48, 48, 48, 48, 52,101, 56, 32, 82, +/* 0x40e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x40f0 */ 32,109,112,114,111,116,101, 99,116, 10, 48, 48, 48, 48, 48, 52, +/* 0x4100 */ 101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4110 */ 32, 32, 32, 32, 32, 83, 79, 95, 77, 65, 73, 78, 10, 48, 48, 48, +/* 0x4120 */ 48, 48, 53, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4130 */ 32, 32, 32, 32, 32, 32, 32, 32,109,117,110,109, 97,112, 10, 10, +/* 0x4140 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x4150 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 88, 80, 95, 72, 69, 65, 68, +/* 0x4160 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, +/* 0x4170 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x4180 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 50, 56, 32, 82, 95, 65, +/* 0x4190 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x41a0 */ 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 52, 52, +/* 0x41b0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x41c0 */ 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, +/* 0x41d0 */ 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x41e0 */ 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, +/* 0x41f0 */ 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4200 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, +/* 0x4210 */ 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, +/* 0x4220 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x4230 */ 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 98, 56, +/* 0x4240 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4250 */ 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, +/* 0x4260 */ 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4270 */ 32, 32, 32, 32, 32, 32, 32, 95, 95, 99,108,101, 97,114, 95, 99, +/* 0x4280 */ 97, 99,104,101, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x4290 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, +/* 0x42a0 */ 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x42b0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x42c0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, +/* 0x42d0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x42e0 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 52, 52, +/* 0x42f0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4300 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 52, +/* 0x4310 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4320 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x4330 */ 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4340 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x4350 */ 48, 53, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4360 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x4370 */ 48, 48, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4380 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x4390 */ 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x43a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x43b0 */ 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x43c0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, +/* 0x43d0 */ 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x43e0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, +/* 0x43f0 */ 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4400 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, +/* 0x4410 */ 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x4420 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x4430 */ 69, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, +/* 0x4440 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x4450 */ 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, +/* 0x4460 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x4470 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, +/* 0x4480 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x4490 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, +/* 0x44a0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x44b0 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, 82, +/* 0x44c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x44d0 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, +/* 0x44e0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x44f0 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,100, 48, +/* 0x4500 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4510 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,100, +/* 0x4520 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4530 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x4540 */ 100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4550 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x4560 */ 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4570 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x4580 */ 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4590 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x45a0 */ 48, 48, 49, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x45b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 10, 82, +/* 0x45c0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x45d0 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, +/* 0x45e0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x45f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x4600 */ 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4610 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, +/* 0x4620 */ 10, 48, 48, 48, 48, 48, 48, 52, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x4630 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x4640 */ 68, 10, 48, 48, 48, 48, 48, 48, 52, 56, 32, 82, 95, 65, 82, 77, +/* 0x4650 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x4660 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 53, 48, 32, 82, 95, 65, 82, +/* 0x4670 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x4680 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 65, +/* 0x4690 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x46a0 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 54, 56, 32, 82, 95, +/* 0x46b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x46c0 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, +/* 0x46d0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x46e0 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, +/* 0x46f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4700 */ 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 56, 52, +/* 0x4710 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4720 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 57, +/* 0x4730 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4740 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x4750 */ 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4760 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x4770 */ 48, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4780 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x4790 */ 48, 48, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x47a0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x47b0 */ 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x47c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, +/* 0x47d0 */ 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x47e0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, +/* 0x47f0 */ 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4800 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, +/* 0x4810 */ 48, 48, 48, 48, 48, 48,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4820 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, +/* 0x4830 */ 10, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x4840 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x4850 */ 68, 10, 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, +/* 0x4860 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x4870 */ 50, 68, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x4880 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, +/* 0x4890 */ 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, +/* 0x48a0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, +/* 0x48b0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, +/* 0x48c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x48d0 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 52, 56, 32, 82, +/* 0x48e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x48f0 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 53, 48, 32, +/* 0x4900 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4910 */ 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 53, 52, +/* 0x4920 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4930 */ 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 54, +/* 0x4940 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x4950 */ 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, +/* 0x4960 */ 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4970 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, +/* 0x4980 */ 48, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4990 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, +/* 0x49a0 */ 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x49b0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x49c0 */ 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x49d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, +/* 0x49e0 */ 48, 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x49f0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, +/* 0x4a00 */ 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x4a10 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, +/* 0x4a20 */ 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4a30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, +/* 0x4a40 */ 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x4a50 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x4a60 */ 66, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, +/* 0x4a70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x4a80 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, 65, 82, +/* 0x4a90 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x4aa0 */ 86, 50, 66, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x4ab0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, +/* 0x4ac0 */ 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x4ad0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4ae0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x4af0 */ 48, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x4b00 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x4b10 */ 10, 48, 48, 48, 48, 48, 48, 52, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x4b20 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x4b30 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, +/* 0x4b40 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x4b50 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, +/* 0x4b60 */ 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x4b70 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x4b80 */ 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x4b90 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, +/* 0x4ba0 */ 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x4bb0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x4bc0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x4bd0 */ 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4be0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x4bf0 */ 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4c00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x4c10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, +/* 0x4c20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4c30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x4c40 */ 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4c50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x4c60 */ 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x4c70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x4c80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, +/* 0x4c90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4ca0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x4cb0 */ 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4cc0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x4cd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, +/* 0x4ce0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x4cf0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, +/* 0x4d00 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4d10 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x4d20 */ 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4d30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x4d40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, +/* 0x4d50 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4d60 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x4d70 */ 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4d80 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x4d90 */ 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x4da0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x4db0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, +/* 0x4dc0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4dd0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x4de0 */ 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4df0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x4e00 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, +/* 0x4e10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x4e20 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, +/* 0x4e30 */ 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4e40 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x4e50 */ 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4e60 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x4e70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, +/* 0x4e80 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4e90 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x4ea0 */ 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4eb0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x4ec0 */ 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, +/* 0x4ed0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x4ee0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, +/* 0x4ef0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x4f00 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x4f10 */ 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x4f20 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x4f30 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, +/* 0x4f40 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x4f50 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, +/* 0x4f60 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x4f70 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x4f80 */ 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x4f90 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x4fa0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, +/* 0x4fb0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x4fc0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x4fd0 */ 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x4fe0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x4ff0 */ 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, +/* 0x5000 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5010 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, +/* 0x5020 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5030 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x5040 */ 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5050 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5060 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, +/* 0x5070 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5080 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, +/* 0x5090 */ 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x50a0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x50b0 */ 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x50c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x50d0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, +/* 0x50e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x50f0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x5100 */ 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5110 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x5120 */ 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, +/* 0x5130 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5140 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, +/* 0x5150 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5160 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x5170 */ 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5180 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5190 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, +/* 0x51a0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x51b0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, +/* 0x51c0 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x51d0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x51e0 */ 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x51f0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5200 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, +/* 0x5210 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5220 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x5230 */ 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5240 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x5250 */ 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, +/* 0x5260 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5270 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, +/* 0x5280 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5290 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x52a0 */ 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x52b0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x52c0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, +/* 0x52d0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x52e0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, +/* 0x52f0 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5300 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x5310 */ 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5320 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5330 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, +/* 0x5340 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5350 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x5360 */ 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x5370 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x5380 */ 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x5390 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x53a0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, +/* 0x53b0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x53c0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x53d0 */ 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x53e0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x53f0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, +/* 0x5400 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5410 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, +/* 0x5420 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5430 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x5440 */ 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5450 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5460 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, +/* 0x5470 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x5480 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x5490 */ 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x54a0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x54b0 */ 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, +/* 0x54c0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x54d0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, +/* 0x54e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x54f0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x5500 */ 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5510 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5520 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, +/* 0x5530 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5540 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, +/* 0x5550 */ 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5560 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x5570 */ 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x5580 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x5590 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, +/* 0x55a0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x55b0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x55c0 */ 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x55d0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x55e0 */ 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, +/* 0x55f0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x5600 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, +/* 0x5610 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x5620 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x5630 */ 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x5640 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x5650 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, +/* 0x5660 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x5670 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, +/* 0x5680 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x5690 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x56a0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x56b0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, +/* 0x56c0 */ 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x56d0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x56e0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, +/* 0x56f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5700 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5710 */ 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5720 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5730 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, +/* 0x5740 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5750 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, +/* 0x5760 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5770 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x5780 */ 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5790 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x57a0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, +/* 0x57b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x57c0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x57d0 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x57e0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x57f0 */ 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x5800 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5810 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, +/* 0x5820 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5830 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5840 */ 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5850 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5860 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, +/* 0x5870 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5880 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, +/* 0x5890 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x58a0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x58b0 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x58c0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x58d0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, +/* 0x58e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x58f0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x5900 */ 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5910 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x5920 */ 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x5930 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5940 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, +/* 0x5950 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5960 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5970 */ 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5980 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5990 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, +/* 0x59a0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x59b0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, +/* 0x59c0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x59d0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x59e0 */ 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x59f0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5a00 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, +/* 0x5a10 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5a20 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x5a30 */ 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5a40 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x5a50 */ 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x5a60 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5a70 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, +/* 0x5a80 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5a90 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5aa0 */ 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5ab0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5ac0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, +/* 0x5ad0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5ae0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, +/* 0x5af0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5b00 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x5b10 */ 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5b20 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5b30 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, +/* 0x5b40 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5b50 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x5b60 */ 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5b70 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x5b80 */ 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x5b90 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5ba0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, +/* 0x5bb0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5bc0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5bd0 */ 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5be0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5bf0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, +/* 0x5c00 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5c10 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, +/* 0x5c20 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5c30 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x5c40 */ 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5c50 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5c60 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, +/* 0x5c70 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5c80 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x5c90 */ 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5ca0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x5cb0 */ 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x5cc0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5cd0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, +/* 0x5ce0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5cf0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5d00 */ 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5d10 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5d20 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, +/* 0x5d30 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5d40 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, +/* 0x5d50 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5d60 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x5d70 */ 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5d80 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5d90 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, +/* 0x5da0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5db0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x5dc0 */ 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x5dd0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x5de0 */ 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x5df0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x5e00 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, +/* 0x5e10 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x5e20 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x5e30 */ 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x5e40 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x5e50 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, +/* 0x5e60 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x5e70 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, +/* 0x5e80 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x5e90 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x5ea0 */ 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x5eb0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x5ec0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, +/* 0x5ed0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x5ee0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10 +}; diff --git a/src/stub/arm.v5a-linux.kernel.vmlinux.h b/src/stub/arm.v5a-linux.kernel.vmlinux.h index 0a9ea548..049eb7e5 100644 --- a/src/stub/arm.v5a-linux.kernel.vmlinux.h +++ b/src/stub/arm.v5a-linux.kernel.vmlinux.h @@ -1,5 +1,5 @@ /* arm.v5a-linux.kernel.vmlinux.h - created from arm.v5a-linux.kernel.vmlinux.bin, 14398 (0x383e) bytes + created from arm.v5a-linux.kernel.vmlinux.bin, 14436 (0x3864) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUX_SIZE 14398 -#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUX_ADLER32 0x8c3491e1 -#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUX_CRC32 0x1c73f026 +#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUX_SIZE 14436 +#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUX_ADLER32 0xb8419a13 +#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUX_CRC32 0xc76952dc -unsigned char stub_arm_v5a_linux_kernel_vmlinux[14398] = { +unsigned char stub_arm_v5a_linux_kernel_vmlinux[14436] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 248, 18, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -105,7 +105,7 @@ unsigned char stub_arm_v5a_linux_kernel_vmlinux[14398] = { /* 0x0420 */ 1,192,209,228, 7,192, 12,226, 18,192,205,229, 1,192,209,228, /* 0x0430 */ 44, 2,160,225, 17, 0,205,229, 15,192, 12,226, 16,192,205,229, /* 0x0440 */ 16, 0,141,226, 34, 0, 0,235, 11,208,160,225, 0,136,189,232, -/* 0x0450 */ 112, 0, 32,225,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, +/* 0x0450 */ 33, 0, 0,234,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, /* 0x0460 */ 0, 48,208,229, 2, 80,208,229, 1,224,208,229, 0,192,157,229, /* 0x0470 */ 20, 48,141,229, 92, 48,157,229, 0, 64,160,227, 0, 64,140,229, /* 0x0480 */ 0, 64,131,229, 20,192,157,229, 1, 48,208,229, 3, 48,140,224, @@ -625,315 +625,318 @@ unsigned char stub_arm_v5a_linux_kernel_vmlinux[14398] = { /* 0x24a0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, /* 0x24b0 */ 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x24c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x24d0 */ 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, -/* 0x24e0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, -/* 0x24f0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, -/* 0x2500 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x2510 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x2520 */ 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2540 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, +/* 0x24d0 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, +/* 0x24e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x24f0 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, +/* 0x2500 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x2510 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, +/* 0x2520 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x2540 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, /* 0x2550 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2560 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, -/* 0x2570 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2560 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, +/* 0x2570 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2580 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2590 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2590 */ 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x25a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x25b0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, +/* 0x25b0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, /* 0x25c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x25d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x25e0 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x25e0 */ 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x25f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2600 */ 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2600 */ 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2610 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2620 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, +/* 0x2620 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, /* 0x2630 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2640 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2650 */ 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2650 */ 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2660 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2670 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, +/* 0x2670 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, /* 0x2680 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2690 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, -/* 0x26a0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2690 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, +/* 0x26a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x26b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x26c0 */ 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x26c0 */ 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x26d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x26e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, +/* 0x26e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, /* 0x26f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2700 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2710 */ 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2710 */ 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2720 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2730 */ 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2730 */ 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2740 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2750 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, +/* 0x2750 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, /* 0x2760 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2770 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2780 */ 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2780 */ 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2790 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x27a0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, +/* 0x27a0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, /* 0x27b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x27c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, -/* 0x27d0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x27c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, +/* 0x27d0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x27e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x27f0 */ 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x27f0 */ 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2800 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2810 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, +/* 0x2810 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, /* 0x2820 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2830 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2840 */ 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2840 */ 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2850 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2860 */ 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2860 */ 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2870 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2880 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, +/* 0x2880 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, /* 0x2890 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x28a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x28b0 */ 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x28b0 */ 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x28c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x28d0 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, +/* 0x28d0 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, /* 0x28e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x28f0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, -/* 0x2900 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x28f0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, +/* 0x2900 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2910 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2920 */ 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2920 */ 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2930 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2940 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, +/* 0x2940 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, /* 0x2950 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2960 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2970 */ 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2970 */ 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2980 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2990 */ 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2990 */ 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x29a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x29b0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, +/* 0x29b0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, 32, /* 0x29c0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x29d0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x29e0 */ 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x29e0 */ 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x29f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2a00 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, +/* 0x2a00 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, /* 0x2a10 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2a20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, -/* 0x2a30 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2a20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, +/* 0x2a30 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2a40 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2a50 */ 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2a50 */ 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2a60 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2a70 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, +/* 0x2a70 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, /* 0x2a80 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2a90 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2aa0 */ 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2aa0 */ 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2ab0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2ac0 */ 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2ac0 */ 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2ad0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2ae0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, +/* 0x2ae0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, 32, /* 0x2af0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2b00 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2b10 */ 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2b10 */ 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2b20 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2b30 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, +/* 0x2b30 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, /* 0x2b40 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2b50 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, -/* 0x2b60 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2b50 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, +/* 0x2b60 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2b70 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2b80 */ 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2b80 */ 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2b90 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2ba0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, +/* 0x2ba0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, /* 0x2bb0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2bc0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2bd0 */ 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2bd0 */ 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2be0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2bf0 */ 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2bf0 */ 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2c00 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2c10 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, +/* 0x2c10 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, 32, /* 0x2c20 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2c30 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2c40 */ 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2c40 */ 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2c50 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2c60 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, +/* 0x2c60 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, /* 0x2c70 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2c80 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, -/* 0x2c90 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2c80 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, +/* 0x2c90 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2ca0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2cb0 */ 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2cb0 */ 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2cc0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2cd0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, +/* 0x2cd0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, /* 0x2ce0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2cf0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2d00 */ 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2d00 */ 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2d10 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2d20 */ 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2d20 */ 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2d30 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2d40 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, +/* 0x2d40 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, /* 0x2d50 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2d60 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2d70 */ 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2d70 */ 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2d80 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2d90 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, +/* 0x2d90 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, /* 0x2da0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2db0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, +/* 0x2db0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, /* 0x2dc0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2dd0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2de0 */ 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2de0 */ 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2df0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2e00 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, +/* 0x2e00 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, /* 0x2e10 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e20 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2e30 */ 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2e30 */ 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2e40 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2e50 */ 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2e50 */ 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2e60 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2e70 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, +/* 0x2e70 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, 32, /* 0x2e80 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2e90 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2ea0 */ 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ea0 */ 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2eb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2ec0 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, +/* 0x2ec0 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, /* 0x2ed0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2ee0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, -/* 0x2ef0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2ee0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, +/* 0x2ef0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2f00 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2f10 */ 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2f10 */ 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2f20 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2f30 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, +/* 0x2f30 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, /* 0x2f40 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2f50 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2f60 */ 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2f60 */ 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2f70 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2f80 */ 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2f80 */ 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2f90 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2fa0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, +/* 0x2fa0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, 32, /* 0x2fb0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2fc0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2fd0 */ 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2fd0 */ 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2fe0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2ff0 */ 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x3000 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, -/* 0x3010 */ 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x3020 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3030 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x3040 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x3050 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3060 */ 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ff0 */ 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, +/* 0x3000 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3010 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x3020 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x3030 */ 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, +/* 0x3040 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x3050 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x3060 */ 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3070 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3080 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, +/* 0x3080 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, /* 0x3090 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x30a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x30b0 */ 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x30b0 */ 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x30c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x30d0 */ 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, +/* 0x30d0 */ 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, /* 0x30e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x30f0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, +/* 0x30f0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, /* 0x3100 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3110 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3120 */ 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3120 */ 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3130 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3140 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, +/* 0x3140 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, /* 0x3150 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3160 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x3170 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3170 */ 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3180 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3190 */ 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3190 */ 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x31a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x31b0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, +/* 0x31b0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, /* 0x31c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x31d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x31e0 */ 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x31e0 */ 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x31f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3200 */ 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, +/* 0x3200 */ 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, /* 0x3210 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3220 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, +/* 0x3220 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, /* 0x3230 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3240 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3250 */ 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3250 */ 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3260 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3270 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, +/* 0x3270 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, /* 0x3280 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3290 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x32a0 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x32a0 */ 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x32b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x32c0 */ 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x32c0 */ 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x32d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x32e0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, +/* 0x32e0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, /* 0x32f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3300 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3310 */ 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3310 */ 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3320 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3330 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, +/* 0x3330 */ 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, /* 0x3340 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3350 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, +/* 0x3350 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, /* 0x3360 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3370 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3380 */ 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3380 */ 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3390 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x33a0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, +/* 0x33a0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, 65, /* 0x33b0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x33c0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x33d0 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x33d0 */ 100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x33e0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x33f0 */ 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x33f0 */ 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3400 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3410 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, +/* 0x3410 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, /* 0x3420 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3430 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3440 */ 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3440 */ 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3450 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3460 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, +/* 0x3460 */ 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, /* 0x3470 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3480 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, +/* 0x3480 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, /* 0x3490 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x34a0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x34b0 */ 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x34b0 */ 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x34c0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x34d0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, +/* 0x34d0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, /* 0x34e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x34f0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x3500 */ 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3500 */ 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3510 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3520 */ 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3520 */ 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3530 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3540 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, +/* 0x3540 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, /* 0x3550 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3560 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3570 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3570 */ 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3580 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3590 */ 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x3590 */ 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, /* 0x35a0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x35b0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, +/* 0x35b0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 48, /* 0x35c0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x35d0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x35e0 */ 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x35e0 */ 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x35f0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3600 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, +/* 0x3600 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, 65, /* 0x3610 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3620 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x3630 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3630 */ 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3640 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3650 */ 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3650 */ 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3660 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3670 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, +/* 0x3670 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, /* 0x3680 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3690 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x36a0 */ 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x36a0 */ 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x36b0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x36c0 */ 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, +/* 0x36c0 */ 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, /* 0x36d0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x36e0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, +/* 0x36e0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, /* 0x36f0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3700 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3710 */ 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3710 */ 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3720 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3730 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, +/* 0x3730 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, /* 0x3740 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3750 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x3760 */ 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3760 */ 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3770 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3780 */ 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3780 */ 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3790 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x37a0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, +/* 0x37a0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, /* 0x37b0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x37c0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x37d0 */ 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x37d0 */ 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x37e0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x37f0 */ 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x37f0 */ 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, /* 0x3800 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3810 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, +/* 0x3810 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, /* 0x3820 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x3830 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10 +/* 0x3830 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x3840 */ 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3850 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x3860 */ 67, 49, 48, 10 }; diff --git a/src/stub/arm.v5a-linux.kernel.vmlinuz.h b/src/stub/arm.v5a-linux.kernel.vmlinuz.h index aed5e332..b9be813b 100644 --- a/src/stub/arm.v5a-linux.kernel.vmlinuz.h +++ b/src/stub/arm.v5a-linux.kernel.vmlinuz.h @@ -1,5 +1,5 @@ /* arm.v5a-linux.kernel.vmlinuz.h - created from arm.v5a-linux.kernel.vmlinuz.bin, 14398 (0x383e) bytes + created from arm.v5a-linux.kernel.vmlinuz.bin, 14436 (0x3864) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUZ_SIZE 14398 -#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUZ_ADLER32 0x8c3491e1 -#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUZ_CRC32 0x1c73f026 +#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUZ_SIZE 14436 +#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUZ_ADLER32 0xb8419a13 +#define STUB_ARM_V5A_LINUX_KERNEL_VMLINUZ_CRC32 0xc76952dc -unsigned char stub_arm_v5a_linux_kernel_vmlinuz[14398] = { +unsigned char stub_arm_v5a_linux_kernel_vmlinuz[14436] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 248, 18, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -105,7 +105,7 @@ unsigned char stub_arm_v5a_linux_kernel_vmlinuz[14398] = { /* 0x0420 */ 1,192,209,228, 7,192, 12,226, 18,192,205,229, 1,192,209,228, /* 0x0430 */ 44, 2,160,225, 17, 0,205,229, 15,192, 12,226, 16,192,205,229, /* 0x0440 */ 16, 0,141,226, 34, 0, 0,235, 11,208,160,225, 0,136,189,232, -/* 0x0450 */ 112, 0, 32,225,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, +/* 0x0450 */ 33, 0, 0,234,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, /* 0x0460 */ 0, 48,208,229, 2, 80,208,229, 1,224,208,229, 0,192,157,229, /* 0x0470 */ 20, 48,141,229, 92, 48,157,229, 0, 64,160,227, 0, 64,140,229, /* 0x0480 */ 0, 64,131,229, 20,192,157,229, 1, 48,208,229, 3, 48,140,224, @@ -625,315 +625,318 @@ unsigned char stub_arm_v5a_linux_kernel_vmlinuz[14398] = { /* 0x24a0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, /* 0x24b0 */ 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x24c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x24d0 */ 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, -/* 0x24e0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, -/* 0x24f0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, -/* 0x2500 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x2510 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x2520 */ 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2540 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, +/* 0x24d0 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, +/* 0x24e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x24f0 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, +/* 0x2500 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x2510 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, +/* 0x2520 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x2540 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, /* 0x2550 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2560 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, -/* 0x2570 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2560 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, +/* 0x2570 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2580 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2590 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2590 */ 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x25a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x25b0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, +/* 0x25b0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, /* 0x25c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x25d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x25e0 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x25e0 */ 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x25f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2600 */ 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2600 */ 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2610 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2620 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, +/* 0x2620 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, /* 0x2630 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2640 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2650 */ 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2650 */ 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2660 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2670 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, +/* 0x2670 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, /* 0x2680 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2690 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, -/* 0x26a0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2690 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, +/* 0x26a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x26b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x26c0 */ 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x26c0 */ 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x26d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x26e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, +/* 0x26e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, /* 0x26f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2700 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2710 */ 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2710 */ 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2720 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2730 */ 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2730 */ 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2740 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2750 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, +/* 0x2750 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, /* 0x2760 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2770 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2780 */ 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2780 */ 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2790 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x27a0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, +/* 0x27a0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, /* 0x27b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x27c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, -/* 0x27d0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x27c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, +/* 0x27d0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x27e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x27f0 */ 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x27f0 */ 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2800 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2810 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, +/* 0x2810 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, /* 0x2820 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2830 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2840 */ 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2840 */ 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2850 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2860 */ 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2860 */ 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2870 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2880 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, +/* 0x2880 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, /* 0x2890 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x28a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x28b0 */ 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x28b0 */ 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x28c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x28d0 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, +/* 0x28d0 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, /* 0x28e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x28f0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, -/* 0x2900 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x28f0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, +/* 0x2900 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2910 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2920 */ 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2920 */ 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2930 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2940 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, +/* 0x2940 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, /* 0x2950 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2960 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2970 */ 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2970 */ 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2980 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2990 */ 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2990 */ 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x29a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x29b0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, +/* 0x29b0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, 32, /* 0x29c0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x29d0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x29e0 */ 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x29e0 */ 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x29f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2a00 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, +/* 0x2a00 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, /* 0x2a10 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2a20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, -/* 0x2a30 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2a20 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, +/* 0x2a30 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2a40 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2a50 */ 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2a50 */ 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2a60 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2a70 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, +/* 0x2a70 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, /* 0x2a80 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2a90 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2aa0 */ 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2aa0 */ 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2ab0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2ac0 */ 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2ac0 */ 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2ad0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2ae0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, +/* 0x2ae0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, 32, /* 0x2af0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2b00 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2b10 */ 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2b10 */ 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2b20 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2b30 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, +/* 0x2b30 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, /* 0x2b40 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2b50 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, -/* 0x2b60 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2b50 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, +/* 0x2b60 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2b70 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2b80 */ 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2b80 */ 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2b90 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2ba0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, +/* 0x2ba0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, /* 0x2bb0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2bc0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2bd0 */ 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2bd0 */ 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2be0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2bf0 */ 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2bf0 */ 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2c00 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2c10 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, +/* 0x2c10 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, 32, /* 0x2c20 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2c30 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2c40 */ 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2c40 */ 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2c50 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2c60 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, +/* 0x2c60 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, /* 0x2c70 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2c80 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, -/* 0x2c90 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2c80 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, +/* 0x2c90 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2ca0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2cb0 */ 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2cb0 */ 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2cc0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2cd0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, +/* 0x2cd0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, /* 0x2ce0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2cf0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2d00 */ 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2d00 */ 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2d10 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2d20 */ 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2d20 */ 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2d30 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2d40 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, +/* 0x2d40 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, /* 0x2d50 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2d60 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2d70 */ 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2d70 */ 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2d80 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2d90 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, +/* 0x2d90 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, /* 0x2da0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2db0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, +/* 0x2db0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, /* 0x2dc0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2dd0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2de0 */ 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2de0 */ 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2df0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2e00 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, +/* 0x2e00 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, /* 0x2e10 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e20 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2e30 */ 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2e30 */ 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2e40 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2e50 */ 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2e50 */ 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x2e60 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2e70 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, +/* 0x2e70 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, 32, /* 0x2e80 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2e90 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2ea0 */ 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ea0 */ 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2eb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2ec0 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, +/* 0x2ec0 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, /* 0x2ed0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2ee0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, -/* 0x2ef0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2ee0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, +/* 0x2ef0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2f00 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2f10 */ 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2f10 */ 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2f20 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2f30 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, +/* 0x2f30 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, /* 0x2f40 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2f50 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2f60 */ 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2f60 */ 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2f70 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2f80 */ 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2f80 */ 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2f90 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2fa0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, +/* 0x2fa0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, 32, /* 0x2fb0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2fc0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2fd0 */ 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2fd0 */ 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2fe0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2ff0 */ 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x3000 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, -/* 0x3010 */ 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x3020 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3030 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x3040 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x3050 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3060 */ 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ff0 */ 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, +/* 0x3000 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3010 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x3020 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x3030 */ 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, +/* 0x3040 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x3050 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x3060 */ 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3070 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3080 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, +/* 0x3080 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, /* 0x3090 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x30a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x30b0 */ 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x30b0 */ 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x30c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x30d0 */ 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, +/* 0x30d0 */ 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, /* 0x30e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x30f0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, +/* 0x30f0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, /* 0x3100 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3110 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3120 */ 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3120 */ 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3130 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3140 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, +/* 0x3140 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, /* 0x3150 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3160 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x3170 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3170 */ 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3180 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3190 */ 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3190 */ 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x31a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x31b0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, +/* 0x31b0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, /* 0x31c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x31d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x31e0 */ 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x31e0 */ 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x31f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3200 */ 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, +/* 0x3200 */ 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, /* 0x3210 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3220 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, +/* 0x3220 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, /* 0x3230 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3240 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3250 */ 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3250 */ 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3260 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3270 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, +/* 0x3270 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, /* 0x3280 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3290 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x32a0 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x32a0 */ 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x32b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x32c0 */ 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x32c0 */ 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x32d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x32e0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, +/* 0x32e0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, /* 0x32f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3300 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3310 */ 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3310 */ 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3320 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3330 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, +/* 0x3330 */ 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, /* 0x3340 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3350 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, +/* 0x3350 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, /* 0x3360 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3370 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3380 */ 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3380 */ 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3390 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x33a0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, +/* 0x33a0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, 65, /* 0x33b0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x33c0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x33d0 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x33d0 */ 100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x33e0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x33f0 */ 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x33f0 */ 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3400 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3410 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, +/* 0x3410 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, /* 0x3420 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3430 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3440 */ 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3440 */ 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3450 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3460 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, +/* 0x3460 */ 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, /* 0x3470 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3480 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, +/* 0x3480 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, /* 0x3490 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x34a0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x34b0 */ 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x34b0 */ 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x34c0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x34d0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, +/* 0x34d0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, /* 0x34e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x34f0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x3500 */ 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3500 */ 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3510 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3520 */ 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3520 */ 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3530 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3540 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, +/* 0x3540 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, /* 0x3550 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3560 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3570 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3570 */ 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3580 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3590 */ 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x3590 */ 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, /* 0x35a0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x35b0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, +/* 0x35b0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 48, /* 0x35c0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x35d0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x35e0 */ 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x35e0 */ 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x35f0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3600 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, +/* 0x3600 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, 65, /* 0x3610 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3620 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x3630 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3630 */ 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3640 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3650 */ 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3650 */ 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3660 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3670 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, +/* 0x3670 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, /* 0x3680 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3690 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x36a0 */ 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x36a0 */ 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x36b0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x36c0 */ 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, +/* 0x36c0 */ 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, /* 0x36d0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x36e0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, +/* 0x36e0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, /* 0x36f0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3700 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3710 */ 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3710 */ 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3720 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3730 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, +/* 0x3730 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, /* 0x3740 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3750 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x3760 */ 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3760 */ 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3770 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3780 */ 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3780 */ 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3790 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x37a0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, +/* 0x37a0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, /* 0x37b0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x37c0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x37d0 */ 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x37d0 */ 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x37e0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x37f0 */ 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x37f0 */ 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, /* 0x3800 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3810 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, +/* 0x3810 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, /* 0x3820 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x3830 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10 +/* 0x3830 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x3840 */ 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3850 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x3860 */ 67, 49, 48, 10 }; diff --git a/src/stub/arm.v5a-linux.shlib-init.h b/src/stub/arm.v5a-linux.shlib-init.h index 739e3620..56525283 100644 --- a/src/stub/arm.v5a-linux.shlib-init.h +++ b/src/stub/arm.v5a-linux.shlib-init.h @@ -1,5 +1,5 @@ /* arm.v5a-linux.shlib-init.h - created from arm.v5a-linux.shlib-init.bin, 15162 (0x3b3a) bytes + created from arm.v5a-linux.shlib-init.bin, 15200 (0x3b60) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V5A_LINUX_SHLIB_INIT_SIZE 15162 -#define STUB_ARM_V5A_LINUX_SHLIB_INIT_ADLER32 0xd553e119 -#define STUB_ARM_V5A_LINUX_SHLIB_INIT_CRC32 0x9b641385 +#define STUB_ARM_V5A_LINUX_SHLIB_INIT_SIZE 15200 +#define STUB_ARM_V5A_LINUX_SHLIB_INIT_ADLER32 0x46d1e7fe +#define STUB_ARM_V5A_LINUX_SHLIB_INIT_CRC32 0xc0305df0 -unsigned char stub_arm_v5a_linux_shlib_init[15162] = { +unsigned char stub_arm_v5a_linux_shlib_init[15200] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 248, 21, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -105,7 +105,7 @@ unsigned char stub_arm_v5a_linux_shlib_init[15162] = { /* 0x0420 */ 0, 48,160,225, 3, 0,189,232, 0, 16,145,229, 0, 16,129,224, /* 0x0430 */ 0, 32,160,227, 7,192,160,225, 2,112,160,227, 15,120,135,227, /* 0x0440 */ 0, 0, 0,239, 12,112,160,225, 3, 0,160,225, 0,136,189,232, -/* 0x0450 */ 240, 1,240,231,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, +/* 0x0450 */ 44, 0, 0,234,240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, /* 0x0460 */ 0, 48,208,229, 2, 80,208,229, 1,224,208,229, 0,192,157,229, /* 0x0470 */ 20, 48,141,229, 92, 48,157,229, 0, 64,160,227, 0, 64,140,229, /* 0x0480 */ 0, 64,131,229, 20,192,157,229, 1, 48,208,229, 3, 48,140,224, @@ -614,374 +614,376 @@ unsigned char stub_arm_v5a_linux_shlib_init[15162] = { /* 0x23f0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, /* 0x2400 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, /* 0x2410 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2420 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, -/* 0x2430 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2440 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2450 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, -/* 0x2460 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x2470 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, -/* 0x2480 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2490 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, -/* 0x24a0 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2420 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, +/* 0x2430 */ 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2440 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x2450 */ 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x2460 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, +/* 0x2470 */ 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x2480 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2490 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x24a0 */ 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x24b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x24d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x24e0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, +/* 0x24e0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, /* 0x24f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2500 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2510 */ 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2510 */ 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2520 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2530 */ 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, +/* 0x2530 */ 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, /* 0x2540 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2550 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, +/* 0x2550 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, /* 0x2560 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2570 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2580 */ 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2580 */ 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2590 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x25a0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, +/* 0x25a0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, /* 0x25b0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x25c0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x25d0 */ 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x25d0 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x25e0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x25f0 */ 48, 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x25f0 */ 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2600 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2610 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, +/* 0x2610 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, /* 0x2620 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2630 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2640 */ 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2640 */ 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2650 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2660 */ 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, +/* 0x2660 */ 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, /* 0x2670 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2680 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, +/* 0x2680 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, /* 0x2690 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x26a0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x26b0 */ 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x26b0 */ 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x26c0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x26d0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, +/* 0x26d0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, /* 0x26e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x26f0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x2700 */ 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2700 */ 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2710 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2720 */ 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2720 */ 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2730 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2740 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, +/* 0x2740 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, /* 0x2750 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2760 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2770 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2770 */ 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2780 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2790 */ 48, 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, +/* 0x2790 */ 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, /* 0x27a0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x27b0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, +/* 0x27b0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, /* 0x27c0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x27d0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x27e0 */ 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x27e0 */ 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x27f0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2800 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, +/* 0x2800 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, /* 0x2810 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2820 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x2830 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2830 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2840 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2850 */ 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2850 */ 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2860 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2870 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, +/* 0x2870 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, /* 0x2880 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2890 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x28a0 */ 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x28a0 */ 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x28b0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x28c0 */ 48, 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, +/* 0x28c0 */ 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, /* 0x28d0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x28e0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, +/* 0x28e0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, /* 0x28f0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2900 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2910 */ 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2910 */ 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2920 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2930 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, +/* 0x2930 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, /* 0x2940 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2950 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x2960 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2960 */ 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2970 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2980 */ 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2980 */ 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2990 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x29a0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, +/* 0x29a0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, /* 0x29b0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x29c0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x29d0 */ 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x29d0 */ 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x29e0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x29f0 */ 48, 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, +/* 0x29f0 */ 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, /* 0x2a00 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2a10 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, +/* 0x2a10 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, /* 0x2a20 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2a30 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2a40 */ 48, 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2a40 */ 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2a50 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2a60 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, +/* 0x2a60 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, /* 0x2a70 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2a80 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, -/* 0x2a90 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2a90 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2aa0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2ab0 */ 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ab0 */ 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2ac0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2ad0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, +/* 0x2ad0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, /* 0x2ae0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2af0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2b00 */ 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2b00 */ 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2b10 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2b20 */ 48, 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, +/* 0x2b20 */ 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, /* 0x2b30 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2b40 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, +/* 0x2b40 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, /* 0x2b50 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2b60 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2b70 */ 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2b70 */ 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2b80 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2b90 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, +/* 0x2b90 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, /* 0x2ba0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2bb0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, -/* 0x2bc0 */ 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2bc0 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2bd0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2be0 */ 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2be0 */ 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2bf0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2c00 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, +/* 0x2c00 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, /* 0x2c10 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2c20 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2c30 */ 48, 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2c30 */ 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2c40 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2c50 */ 48, 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, +/* 0x2c50 */ 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, /* 0x2c60 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2c70 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, +/* 0x2c70 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, /* 0x2c80 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2c90 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2ca0 */ 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2ca0 */ 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2cb0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2cc0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, +/* 0x2cc0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, /* 0x2cd0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2ce0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2cf0 */ 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2cf0 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2d00 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2d10 */ 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2d10 */ 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2d20 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2d30 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, +/* 0x2d30 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, /* 0x2d40 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2d50 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2d60 */ 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2d60 */ 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2d70 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2d80 */ 48, 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x2d80 */ 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, /* 0x2d90 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2da0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, +/* 0x2da0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, /* 0x2db0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2dc0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2dd0 */ 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2dd0 */ 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2de0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2df0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, +/* 0x2df0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, /* 0x2e00 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2e10 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, -/* 0x2e20 */ 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2e20 */ 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2e30 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2e40 */ 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2e40 */ 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2e50 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2e60 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, +/* 0x2e60 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, /* 0x2e70 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2e80 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2e90 */ 48, 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2e90 */ 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2ea0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2eb0 */ 48, 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x2eb0 */ 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, /* 0x2ec0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2ed0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, +/* 0x2ed0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, /* 0x2ee0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2ef0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2f00 */ 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2f00 */ 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2f10 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2f20 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, +/* 0x2f20 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, /* 0x2f30 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2f40 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, -/* 0x2f50 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x2f60 */ 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, -/* 0x2f70 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, -/* 0x2f80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, -/* 0x2f90 */ 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x2fa0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2fb0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, +/* 0x2f40 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, +/* 0x2f50 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2f60 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2f70 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x2f80 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, +/* 0x2f90 */ 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x2fa0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2fb0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, /* 0x2fc0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2fd0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x2fe0 */ 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2fe0 */ 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2ff0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3000 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, +/* 0x3000 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, /* 0x3010 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x3020 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, -/* 0x3030 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3030 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3040 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3050 */ 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3050 */ 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3060 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3070 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x3070 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, /* 0x3080 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3090 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x30a0 */ 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x30a0 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x30b0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x30c0 */ 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x30c0 */ 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x30d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x30e0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, +/* 0x30e0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, /* 0x30f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3100 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3110 */ 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3110 */ 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3120 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3130 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, +/* 0x3130 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, /* 0x3140 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3150 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, -/* 0x3160 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3150 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, +/* 0x3160 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3170 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3180 */ 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3180 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3190 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x31a0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, +/* 0x31a0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, /* 0x31b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x31c0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x31d0 */ 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x31d0 */ 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x31e0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x31f0 */ 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x31f0 */ 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x3200 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3210 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, +/* 0x3210 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, /* 0x3220 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3230 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3240 */ 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3240 */ 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3250 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3260 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, +/* 0x3260 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, /* 0x3270 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3280 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, +/* 0x3280 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, /* 0x3290 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x32a0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x32b0 */ 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x32b0 */ 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x32c0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x32d0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, +/* 0x32d0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, /* 0x32e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x32f0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3300 */ 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3300 */ 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3310 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3320 */ 10, 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3320 */ 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x3330 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3340 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, +/* 0x3340 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, /* 0x3350 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3360 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3370 */ 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3370 */ 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3380 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3390 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, +/* 0x3390 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, /* 0x33a0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x33b0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, -/* 0x33c0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x33b0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, +/* 0x33c0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x33d0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x33e0 */ 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x33e0 */ 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x33f0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3400 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, +/* 0x3400 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, /* 0x3410 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3420 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3430 */ 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3430 */ 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3440 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3450 */ 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3450 */ 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x3460 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3470 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, +/* 0x3470 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, /* 0x3480 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3490 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x34a0 */ 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x34a0 */ 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x34b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x34c0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, +/* 0x34c0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, /* 0x34d0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x34e0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, -/* 0x34f0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x34e0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, +/* 0x34f0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3500 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3510 */ 48, 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3510 */ 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3520 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3530 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, +/* 0x3530 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, /* 0x3540 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3550 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3560 */ 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3560 */ 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3570 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3580 */ 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3580 */ 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x3590 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x35a0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, +/* 0x35a0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, /* 0x35b0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x35c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x35d0 */ 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x35d0 */ 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x35e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x35f0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, +/* 0x35f0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, /* 0x3600 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3610 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, -/* 0x3620 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3610 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, +/* 0x3620 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3630 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3640 */ 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3640 */ 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3650 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3660 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, +/* 0x3660 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, /* 0x3670 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3680 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3690 */ 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3690 */ 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x36a0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x36b0 */ 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x36b0 */ 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x36c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x36d0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, +/* 0x36d0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, /* 0x36e0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x36f0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3700 */ 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3700 */ 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3710 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3720 */ 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, +/* 0x3720 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, /* 0x3730 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3740 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, -/* 0x3750 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3740 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, +/* 0x3750 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3760 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3770 */ 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3770 */ 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3780 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3790 */ 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x37a0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, -/* 0x37b0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x37c0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x37d0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x37e0 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x37f0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x3800 */ 48, 48, 48, 48, 53, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x3810 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x3820 */ 90, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, -/* 0x3830 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x3840 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 98, 48, 32, 82, -/* 0x3850 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x3860 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, -/* 0x3870 */ 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x3880 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x3890 */ 48, 48, 48, 48,102, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x38a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x38b0 */ 90, 10, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 65, 82, 77, -/* 0x38c0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x38d0 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 51, 48, 32, 82, -/* 0x38e0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x38f0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, -/* 0x3900 */ 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x3910 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x3920 */ 48, 48, 48, 49, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x3930 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x3940 */ 90, 10, 48, 48, 48, 48, 48, 49, 54, 52, 32, 82, 95, 65, 82, 77, -/* 0x3950 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x3960 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 55, 52, 32, 82, -/* 0x3970 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x3980 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, -/* 0x3990 */ 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x39a0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x39b0 */ 48, 48, 48, 49, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x39c0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x39d0 */ 90, 10, 48, 48, 48, 48, 48, 50, 48, 48, 32, 82, 95, 65, 82, 77, -/* 0x39e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x39f0 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 48, 56, 32, 82, -/* 0x3a00 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x3a10 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, -/* 0x3a20 */ 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x3a30 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x3a40 */ 48, 48, 48, 50, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x3a50 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x3a60 */ 90, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, -/* 0x3a70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x3a80 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 54, 99, 32, 82, -/* 0x3a90 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x3aa0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, -/* 0x3ab0 */ 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x3ac0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x3ad0 */ 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x3ae0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x3af0 */ 90, 10, 48, 48, 48, 48, 48, 50, 98, 48, 32, 82, 95, 65, 82, 77, -/* 0x3b00 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x3b10 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 98, 99, 32, 82, -/* 0x3b20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x3b30 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 +/* 0x3790 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, +/* 0x37a0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x37b0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, +/* 0x37c0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, +/* 0x37d0 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, +/* 0x37e0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x37f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x3800 */ 48, 48, 48, 48, 48, 48, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3810 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x3820 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 65, +/* 0x3830 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x3840 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 56, 52, +/* 0x3850 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3860 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3870 */ 48, 48, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3880 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x3890 */ 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x38a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x38b0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,102, 48, 32, 82, 95, 65, +/* 0x38c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x38d0 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,102, 56, +/* 0x38e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x38f0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3900 */ 48, 49, 51, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3910 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x3920 */ 48, 48, 48, 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3930 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x3940 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 51, 99, 32, 82, 95, 65, +/* 0x3950 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x3960 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 54, 52, +/* 0x3970 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3980 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3990 */ 48, 49, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x39a0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x39b0 */ 48, 48, 48, 48, 48, 49, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x39c0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x39d0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 97, 52, 32, 82, 95, 65, +/* 0x39e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x39f0 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 48, 48, +/* 0x3a00 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3a10 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3a20 */ 48, 50, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3a30 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x3a40 */ 48, 48, 48, 48, 48, 50, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3a50 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x3a60 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 51, 48, 32, 82, 95, 65, +/* 0x3a70 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x3a80 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 53, 56, +/* 0x3a90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3aa0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3ab0 */ 48, 50, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3ac0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x3ad0 */ 48, 48, 48, 48, 48, 50, 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3ae0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, +/* 0x3af0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, +/* 0x3b00 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x3b10 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 50, 98, 48, +/* 0x3b20 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3b30 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3b40 */ 48, 50, 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3b50 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 }; diff --git a/src/stub/arm.v5t-linux.shlib-init.h b/src/stub/arm.v5t-linux.shlib-init.h index c172b769..3d8fbdab 100644 --- a/src/stub/arm.v5t-linux.shlib-init.h +++ b/src/stub/arm.v5t-linux.shlib-init.h @@ -1,5 +1,5 @@ /* arm.v5t-linux.shlib-init.h - created from arm.v5t-linux.shlib-init.bin, 14996 (0x3a94) bytes + created from arm.v5t-linux.shlib-init.bin, 14998 (0x3a96) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM_V5T_LINUX_SHLIB_INIT_SIZE 14996 -#define STUB_ARM_V5T_LINUX_SHLIB_INIT_ADLER32 0xd4c2a94d -#define STUB_ARM_V5T_LINUX_SHLIB_INIT_CRC32 0x198af8a5 +#define STUB_ARM_V5T_LINUX_SHLIB_INIT_SIZE 14998 +#define STUB_ARM_V5T_LINUX_SHLIB_INIT_ADLER32 0xff4ca44c +#define STUB_ARM_V5T_LINUX_SHLIB_INIT_CRC32 0x41d462dd -unsigned char stub_arm_v5t_linux_shlib_init[14996] = { +unsigned char stub_arm_v5t_linux_shlib_init[14998] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 252, 20, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, @@ -44,7 +44,7 @@ unsigned char stub_arm_v5t_linux_shlib_init[14996] = { /* 0x0050 */ 2,208,100, 25, 36, 24, 8,148, 8,105, 64, 25, 89, 25,131,176, /* 0x0060 */ 0,181, 76,104, 12, 49, 9, 25, 0,240,167,248, 3, 5, 27, 13, /* 0x0070 */ 228, 24, 16,180,192, 26, 1,180,228, 26,192, 24,155, 8, 8,180, -/* 0x0080 */ 0,240, 63,248, 27, 6,137, 8, 27, 14,137, 0, 80, 43, 17,209, +/* 0x0080 */ 255,247,254,255, 27, 6,137, 8, 27, 14,137, 0, 80, 43, 17,209, /* 0x0090 */ 14,224, 4, 57, 66, 88, 19, 1, 27, 15, 11, 43, 8,209,137, 8, /* 0x00a0 */ 83, 26,137, 0, 18, 14, 27, 2, 18, 6, 27, 10, 26, 67, 66, 80, /* 0x00b0 */ 0, 41,238,209,112, 71, 0,181, 75,121, 8,180,139,121, 8,180, @@ -113,7 +113,7 @@ unsigned char stub_arm_v5t_linux_shlib_init[14996] = { /* 0x04a0 */ 16, 0,141,226, 45, 0, 0,235, 11,208,160,225, 0, 48,160,225, /* 0x04b0 */ 3, 0,189,232, 0, 16,145,229, 0, 16,129,224, 0, 32,160,227, /* 0x04c0 */ 7,192,160,225, 2,112,160,227, 15,120,135,227, 0, 0, 0,239, -/* 0x04d0 */ 12,112,160,225, 3, 0,160,225, 0,136,189,232,240, 1,240,231, +/* 0x04d0 */ 12,112,160,225, 3, 0,160,225, 0,136,189,232, 44, 0, 0,234, /* 0x04e0 */ 240, 79, 45,233, 48,208, 77,226, 0, 48,141,229, 0, 48,208,229, /* 0x04f0 */ 2, 80,208,229, 1,224,208,229, 0,192,157,229, 20, 48,141,229, /* 0x0500 */ 92, 48,157,229, 0, 64,160,227, 0, 64,140,229, 0, 64,131,229, @@ -406,572 +406,572 @@ unsigned char stub_arm_v5t_linux_shlib_init[14996] = { /* 0x16f0 */ 32, 32, 32, 32, 32, 48, 49, 56, 52, 32, 32, 48, 32, 32, 48, 32, /* 0x1700 */ 32, 48, 49, 50,100, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, /* 0x1710 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, -/* 0x1720 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1730 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, -/* 0x1740 */ 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95,111,102, 69, -/* 0x1750 */ 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1760 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, -/* 0x1770 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1780 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, -/* 0x1790 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x17a0 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, -/* 0x17b0 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x17c0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x17d0 */ 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, -/* 0x17e0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x17f0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, -/* 0x1800 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1810 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x1820 */ 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x1830 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1840 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, -/* 0x1850 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1860 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, -/* 0x1870 */ 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95,111,102, 69, -/* 0x1880 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1890 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x18a0 */ 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, -/* 0x18b0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, -/* 0x18c0 */ 86, 95, 72, 69, 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, -/* 0x18d0 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x18e0 */ 100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 48, 32, 78, 82, -/* 0x18f0 */ 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1900 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x1910 */ 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, -/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1930 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, -/* 0x1940 */ 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, -/* 0x1950 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, -/* 0x1960 */ 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1970 */ 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, 48, -/* 0x1980 */ 49, 51, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, -/* 0x1990 */ 99,111,109,112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, -/* 0x19a0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, -/* 0x19b0 */ 68, 32, 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, 50,100, -/* 0x19c0 */ 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48, 48, -/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, -/* 0x19e0 */ 82, 86, 50, 66, 32, 48,101, 99, 32,117, 99,108, 95,110,114,118, -/* 0x19f0 */ 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, -/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, -/* 0x1a10 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122, -/* 0x1a20 */ 109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a30 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x1a40 */ 78, 89, 32, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114, -/* 0x1a50 */ 101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, -/* 0x1a60 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, -/* 0x1a70 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, -/* 0x1a80 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1a90 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 51, -/* 0x1aa0 */ 52, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, -/* 0x1ab0 */ 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95, -/* 0x1ac0 */ 111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, -/* 0x1ad0 */ 48, 52, 99, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, -/* 0x1ae0 */ 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114, -/* 0x1af0 */ 116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, -/* 0x1b00 */ 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, -/* 0x1b10 */ 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, -/* 0x1b20 */ 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, -/* 0x1b30 */ 48, 48, 48, 48, 48, 57, 54, 32, 82, 95, 65, 82, 77, 95, 84, 72, -/* 0x1b40 */ 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95, -/* 0x1b50 */ 115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, -/* 0x1b60 */ 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, -/* 0x1b70 */ 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97, -/* 0x1b80 */ 108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, -/* 0x1b90 */ 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x1ba0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, -/* 0x1bb0 */ 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, -/* 0x1bc0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x1bd0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, -/* 0x1be0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1bf0 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 54, 99, 32, 82, -/* 0x1c00 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x1c10 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 55, 48, 32, -/* 0x1c20 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x1c30 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, -/* 0x1c40 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x1c50 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 56, -/* 0x1c60 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x1c70 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x1c80 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x1c90 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, -/* 0x1ca0 */ 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x1cb0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, -/* 0x1cc0 */ 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x1cd0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, -/* 0x1ce0 */ 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x1cf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, -/* 0x1d00 */ 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x1d10 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, -/* 0x1d20 */ 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x1d30 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, -/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x1d50 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, -/* 0x1d60 */ 10, 48, 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x1d70 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x1d80 */ 69, 10, 48, 48, 48, 48, 48, 48,100, 52, 32, 82, 95, 65, 82, 77, -/* 0x1d90 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, -/* 0x1da0 */ 50, 69, 10, 48, 48, 48, 48, 48, 48,101, 48, 32, 82, 95, 65, 82, -/* 0x1db0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x1dc0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, -/* 0x1dd0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x1de0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,101, 99, 32, 82, 95, -/* 0x1df0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1e00 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, -/* 0x1e10 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x1e20 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,102, 99, 32, -/* 0x1e30 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x1e40 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 48, 52, -/* 0x1e50 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x1e60 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 48, -/* 0x1e70 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x1e80 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, -/* 0x1e90 */ 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x1ea0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, -/* 0x1eb0 */ 49, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x1ec0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 10, 82, 69, 76, -/* 0x1ed0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, -/* 0x1ee0 */ 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, -/* 0x1ef0 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, -/* 0x1f00 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, -/* 0x1f10 */ 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x1f20 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, -/* 0x1f30 */ 48, 48, 48, 48, 48, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x1f40 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, -/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x1f60 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, -/* 0x1f70 */ 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x1f80 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x1f90 */ 68, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, -/* 0x1fa0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, -/* 0x1fb0 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, -/* 0x1fc0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x1fd0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, -/* 0x1fe0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x1ff0 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, -/* 0x2000 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2010 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, -/* 0x2020 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2030 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, -/* 0x2040 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2050 */ 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 99, 52, -/* 0x2060 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2070 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 99, -/* 0x2080 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x2090 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, -/* 0x20a0 */ 100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x20b0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, -/* 0x20c0 */ 48,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x20d0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, -/* 0x20e0 */ 48, 48,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x20f0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, -/* 0x2100 */ 48, 48, 48,102, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x2110 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, -/* 0x2120 */ 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2130 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, -/* 0x2140 */ 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2150 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, -/* 0x2160 */ 48, 48, 48, 48, 48, 49, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2170 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, -/* 0x2180 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, -/* 0x2190 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, -/* 0x21a0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, -/* 0x21b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, -/* 0x21c0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, -/* 0x21d0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x21e0 */ 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, -/* 0x21f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x2200 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, -/* 0x2210 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2220 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, -/* 0x2230 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2240 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, -/* 0x2250 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2260 */ 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 57, 48, -/* 0x2270 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2280 */ 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 57, -/* 0x2290 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x22a0 */ 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, -/* 0x22b0 */ 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x22c0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, -/* 0x22d0 */ 48, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x22e0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, -/* 0x22f0 */ 48, 48, 98, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2300 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, -/* 0x2310 */ 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x2320 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, -/* 0x2330 */ 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2340 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, -/* 0x2350 */ 48, 48, 48, 48, 48, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2360 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, -/* 0x2370 */ 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2380 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, -/* 0x2390 */ 10, 48, 48, 48, 48, 48, 48,101, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x23a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x23b0 */ 66, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, -/* 0x23c0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, -/* 0x23d0 */ 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, -/* 0x23e0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x23f0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x2400 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x2410 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, -/* 0x2420 */ 48, 48, 48, 48, 48, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2430 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, -/* 0x2440 */ 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, -/* 0x2450 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2460 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, -/* 0x2470 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x2480 */ 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, -/* 0x2490 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, -/* 0x24a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, -/* 0x24b0 */ 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, -/* 0x24c0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x24d0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, -/* 0x24e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x24f0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2500 */ 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2510 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2520 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, -/* 0x2530 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2540 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, -/* 0x2550 */ 102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2560 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2570 */ 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2580 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2590 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, -/* 0x25a0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x25b0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x25c0 */ 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x25d0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x25e0 */ 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, -/* 0x25f0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2600 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, -/* 0x2610 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2620 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2630 */ 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2640 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2650 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, -/* 0x2660 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2670 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x2680 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2690 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x26a0 */ 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x26b0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x26c0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, -/* 0x26d0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x26e0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x26f0 */ 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2700 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2710 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, -/* 0x2720 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2730 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, -/* 0x2740 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2750 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2760 */ 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2770 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2780 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, -/* 0x2790 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x27a0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x27b0 */ 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x27c0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x27d0 */ 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x27e0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x27f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, -/* 0x2800 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2810 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2820 */ 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2830 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2840 */ 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, -/* 0x2850 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2860 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, -/* 0x2870 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2880 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2890 */ 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x28a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x28b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, -/* 0x28c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x28d0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x28e0 */ 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x28f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2900 */ 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2910 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2920 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, -/* 0x2930 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2940 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2950 */ 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2960 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2970 */ 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, -/* 0x2980 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2990 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, -/* 0x29a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x29b0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x29c0 */ 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x29d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x29e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, -/* 0x29f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2a00 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x2a10 */ 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2a20 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2a30 */ 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2a40 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2a50 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, -/* 0x2a60 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2a70 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2a80 */ 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2a90 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2aa0 */ 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, -/* 0x2ab0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2ac0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, -/* 0x2ad0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2ae0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2af0 */ 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2b00 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2b10 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, -/* 0x2b20 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2b30 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, -/* 0x2b40 */ 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2b50 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2b60 */ 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2b70 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2b80 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, -/* 0x2b90 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2ba0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2bb0 */ 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2bc0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2bd0 */ 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, -/* 0x2be0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2bf0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, -/* 0x2c00 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2c10 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2c20 */ 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2c30 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2c40 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, -/* 0x2c50 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2c60 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, -/* 0x2c70 */ 100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2c80 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2c90 */ 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2ca0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2cb0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, -/* 0x2cc0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2cd0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2ce0 */ 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2cf0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2d00 */ 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, -/* 0x2d10 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2d20 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, -/* 0x2d30 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2d40 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2d50 */ 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2d60 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2d70 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, -/* 0x2d80 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2d90 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2da0 */ 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2db0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2dc0 */ 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2dd0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2de0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, -/* 0x2df0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2e00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2e10 */ 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2e20 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2e30 */ 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, -/* 0x2e40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2e50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, -/* 0x2e60 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2e70 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2e80 */ 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2e90 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2ea0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, -/* 0x2eb0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2ec0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, -/* 0x2ed0 */ 101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2ee0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2ef0 */ 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2f00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2f10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, -/* 0x2f20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2f30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2f40 */ 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2f50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2f60 */ 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, -/* 0x2f70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2f80 */ 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x2f90 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x2fa0 */ 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, -/* 0x2fb0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x2fc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x2fd0 */ 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2fe0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2ff0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, -/* 0x3000 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3010 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3020 */ 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3030 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3040 */ 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x3050 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3060 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, -/* 0x3070 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3080 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3090 */ 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x30a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x30b0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, -/* 0x30c0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x30d0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, -/* 0x30e0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x30f0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3100 */ 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3110 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3120 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, -/* 0x3130 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3140 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3150 */ 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3160 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3170 */ 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x3180 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3190 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, -/* 0x31a0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x31b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x31c0 */ 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x31d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x31e0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, -/* 0x31f0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3200 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, -/* 0x3210 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3220 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3230 */ 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3240 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3250 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, -/* 0x3260 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3270 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3280 */ 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3290 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x32a0 */ 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x32b0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x32c0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, -/* 0x32d0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x32e0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x32f0 */ 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3300 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3310 */ 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, -/* 0x3320 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3330 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, -/* 0x3340 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3350 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3360 */ 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3370 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3380 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, -/* 0x3390 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x33a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x33b0 */ 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x33c0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x33d0 */ 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, -/* 0x33e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x33f0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, -/* 0x3400 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3410 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3420 */ 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3430 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3440 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, -/* 0x3450 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3460 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, -/* 0x3470 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3480 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3490 */ 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x34a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x34b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, -/* 0x34c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x34d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x34e0 */ 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x34f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3500 */ 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x3510 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3520 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, -/* 0x3530 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3540 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3550 */ 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3560 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3570 */ 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, -/* 0x3580 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3590 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, -/* 0x35a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x35b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x35c0 */ 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x35d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x35e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, -/* 0x35f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3600 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3610 */ 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3620 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3630 */ 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x3640 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3650 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, -/* 0x3660 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3670 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3680 */ 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3690 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x36a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, -/* 0x36b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x36c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, -/* 0x36d0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x36e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x36f0 */ 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3700 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3710 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, -/* 0x3720 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3730 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3740 */ 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3750 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3760 */ 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x3770 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3780 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, -/* 0x3790 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x37a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x37b0 */ 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x37c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x37d0 */ 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x37e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, -/* 0x37f0 */ 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x3800 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3810 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 50, 48, -/* 0x3820 */ 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, -/* 0x3830 */ 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95,111, -/* 0x3840 */ 102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, -/* 0x3850 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, -/* 0x3860 */ 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, -/* 0x3870 */ 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, -/* 0x3880 */ 48, 48, 51, 48, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, -/* 0x3890 */ 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97, -/* 0x38a0 */ 114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x38b0 */ 48, 48, 48, 48, 53, 48, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, -/* 0x38c0 */ 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115, -/* 0x38d0 */ 116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, -/* 0x38e0 */ 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 65, 82, 77, 95, 84, -/* 0x38f0 */ 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, -/* 0x3900 */ 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, -/* 0x3910 */ 90, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, -/* 0x3920 */ 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, -/* 0x3930 */ 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, -/* 0x3940 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, -/* 0x3950 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, -/* 0x3960 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,101, 99, -/* 0x3970 */ 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, -/* 0x3980 */ 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95,111, -/* 0x3990 */ 102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, -/* 0x39a0 */ 49, 50, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, -/* 0x39b0 */ 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, -/* 0x39c0 */ 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, -/* 0x39d0 */ 48, 49, 50, 97, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, -/* 0x39e0 */ 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97, -/* 0x39f0 */ 114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x3a00 */ 48, 48, 48, 49, 51, 52, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, -/* 0x3a10 */ 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115, -/* 0x3a20 */ 116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, -/* 0x3a30 */ 48, 48, 48, 48, 48, 49, 51,101, 32, 82, 95, 65, 82, 77, 95, 84, -/* 0x3a40 */ 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, -/* 0x3a50 */ 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, -/* 0x3a60 */ 90, 10, 48, 48, 48, 48, 48, 49, 52, 54, 32, 82, 95, 65, 82, 77, -/* 0x3a70 */ 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, -/* 0x3a80 */ 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, -/* 0x3a90 */ 73, 78, 90, 10 +/* 0x1720 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 56, 50, 32,108, 32, +/* 0x1730 */ 32, 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, +/* 0x1740 */ 32, 76, 54, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1750 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, +/* 0x1760 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1770 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, 78, 82, +/* 0x1780 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1790 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, +/* 0x17a0 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x17b0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 48, +/* 0x17c0 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, +/* 0x17d0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, +/* 0x17e0 */ 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, +/* 0x17f0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1800 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1810 */ 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x1820 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, +/* 0x1830 */ 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x1840 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1850 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 46, +/* 0x1860 */ 114,101, 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, +/* 0x1870 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1880 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, +/* 0x1890 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, +/* 0x18a0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, +/* 0x18b0 */ 72, 69, 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, +/* 0x18c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x18d0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 48, 32, 78, 82, 86, 95, +/* 0x18e0 */ 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x18f0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x1900 */ 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, +/* 0x1910 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, +/* 0x1920 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x1930 */ 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, +/* 0x1940 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95, +/* 0x1950 */ 115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, +/* 0x1960 */ 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, 48, 49, 51, +/* 0x1970 */ 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111, +/* 0x1980 */ 109,112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1990 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, +/* 0x19a0 */ 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, 50,100, 95,100, +/* 0x19b0 */ 101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, +/* 0x19c0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, +/* 0x19d0 */ 50, 66, 32, 48,101, 99, 32,117, 99,108, 95,110,114,118, 50, 98, +/* 0x19e0 */ 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48, 48, +/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x1a00 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, +/* 0x1a10 */ 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1a20 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, +/* 0x1a30 */ 32, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1a40 */ 115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x1a50 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, +/* 0x1a60 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x1a70 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1a80 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 51, 52, 32, +/* 0x1a90 */ 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, +/* 0x1aa0 */ 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95,111,102, +/* 0x1ab0 */ 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 52, +/* 0x1ac0 */ 99, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, +/* 0x1ad0 */ 32, 32, 32, 32, 76, 54, 49, 48, 10, 48, 48, 48, 48, 48, 48, 57, +/* 0x1ae0 */ 48, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, +/* 0x1af0 */ 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, 95, +/* 0x1b00 */ 111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 57, 54, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, +/* 0x1b20 */ 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114, +/* 0x1b30 */ 116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, +/* 0x1b40 */ 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, +/* 0x1b50 */ 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, +/* 0x1b60 */ 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, +/* 0x1b70 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x1b80 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, +/* 0x1b90 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x1ba0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x1bb0 */ 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x1bc0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x1bd0 */ 69, 10, 48, 48, 48, 48, 48, 48, 54, 99, 32, 82, 95, 65, 82, 77, +/* 0x1be0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x1bf0 */ 50, 69, 10, 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, 82, +/* 0x1c00 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x1c10 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, +/* 0x1c20 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x1c30 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, +/* 0x1c40 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1c50 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, +/* 0x1c60 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x1c70 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, +/* 0x1c80 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x1c90 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 48, +/* 0x1ca0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x1cb0 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, +/* 0x1cc0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x1cd0 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x1ce0 */ 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x1cf0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x1d00 */ 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x1d10 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x1d20 */ 48, 48, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x1d30 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x1d40 */ 48, 48, 48,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x1d50 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x1d60 */ 48, 48, 48, 48,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x1d70 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, +/* 0x1d80 */ 48, 48, 48, 48, 48,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x1d90 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, +/* 0x1da0 */ 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x1db0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, +/* 0x1dc0 */ 10, 48, 48, 48, 48, 48, 48,101, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x1dd0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x1de0 */ 69, 10, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 65, 82, 77, +/* 0x1df0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x1e00 */ 50, 69, 10, 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, +/* 0x1e10 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x1e20 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 48, 52, 32, 82, 95, 65, +/* 0x1e30 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x1e40 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, +/* 0x1e50 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1e60 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 51, 52, 32, 82, +/* 0x1e70 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x1e80 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 51, 56, 32, +/* 0x1e90 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x1ea0 */ 32, 32, 78, 82, 86, 50, 69, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x1eb0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x1ec0 */ 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x1ed0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1ee0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x1ef0 */ 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x1f00 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x1f10 */ 48, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x1f20 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x1f30 */ 48, 48, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x1f40 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x1f50 */ 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x1f60 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, +/* 0x1f70 */ 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x1f80 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, +/* 0x1f90 */ 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x1fa0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, +/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x1fc0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, +/* 0x1fd0 */ 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x1fe0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x1ff0 */ 68, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, +/* 0x2000 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x2010 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, +/* 0x2020 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x2030 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, +/* 0x2040 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x2050 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, +/* 0x2060 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2070 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,100, 56, 32, 82, +/* 0x2080 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2090 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,101, 48, 32, +/* 0x20a0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x20b0 */ 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,101, 99, +/* 0x20c0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x20d0 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,102, +/* 0x20e0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x20f0 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x2100 */ 102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2110 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x2120 */ 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2130 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x2140 */ 48, 49, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2150 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 10, 82, 69, +/* 0x2160 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, +/* 0x2170 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, +/* 0x2180 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, +/* 0x2190 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, +/* 0x21a0 */ 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x21b0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, +/* 0x21c0 */ 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x21d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, +/* 0x21e0 */ 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x21f0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x2200 */ 66, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 65, 82, 77, +/* 0x2210 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x2220 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, +/* 0x2230 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x2240 */ 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, +/* 0x2250 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x2260 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, +/* 0x2270 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2280 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, +/* 0x2290 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x22a0 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, 48, 32, +/* 0x22b0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x22c0 */ 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, 52, +/* 0x22d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x22e0 */ 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, +/* 0x22f0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2300 */ 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, +/* 0x2310 */ 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2320 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, +/* 0x2330 */ 48, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2340 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, +/* 0x2350 */ 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2360 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x2370 */ 48, 48, 48,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2380 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 10, 82, +/* 0x2390 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x23a0 */ 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x23b0 */ 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, +/* 0x23c0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, +/* 0x23d0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, +/* 0x23e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x23f0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, +/* 0x2400 */ 48, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2410 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x2420 */ 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x2430 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x2440 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, +/* 0x2450 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x2460 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, +/* 0x2470 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, +/* 0x2480 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x2490 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, +/* 0x24a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x24b0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, +/* 0x24c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x24d0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x24e0 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x24f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2500 */ 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2510 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2520 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, +/* 0x2530 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2540 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2550 */ 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2560 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2570 */ 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, +/* 0x2580 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2590 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, +/* 0x25a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x25b0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x25c0 */ 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x25d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x25e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, +/* 0x25f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2600 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, +/* 0x2610 */ 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2620 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2630 */ 48, 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2640 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2650 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, +/* 0x2660 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2670 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2680 */ 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2690 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x26a0 */ 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, +/* 0x26b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x26c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, +/* 0x26d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x26e0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x26f0 */ 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2700 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2710 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, +/* 0x2720 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2730 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, +/* 0x2740 */ 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2750 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2760 */ 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2770 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2780 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, +/* 0x2790 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x27a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x27b0 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x27c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x27d0 */ 48, 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, +/* 0x27e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x27f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, +/* 0x2800 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2810 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2820 */ 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2830 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2840 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, +/* 0x2850 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2860 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, +/* 0x2870 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2880 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2890 */ 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x28a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x28b0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, +/* 0x28c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x28d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x28e0 */ 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x28f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2900 */ 48, 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, +/* 0x2910 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2920 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, +/* 0x2930 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2940 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2950 */ 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2960 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2970 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, +/* 0x2980 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2990 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, +/* 0x29a0 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x29b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x29c0 */ 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x29d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x29e0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, +/* 0x29f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2a00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2a10 */ 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2a20 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2a30 */ 48, 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, +/* 0x2a40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2a50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, +/* 0x2a60 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2a70 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2a80 */ 48, 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2a90 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2aa0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, +/* 0x2ab0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2ac0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, +/* 0x2ad0 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2ae0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2af0 */ 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2b00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2b10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, +/* 0x2b20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2b30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2b40 */ 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2b50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2b60 */ 48, 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, +/* 0x2b70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2b80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, +/* 0x2b90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2ba0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2bb0 */ 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2bc0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2bd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, +/* 0x2be0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2bf0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, +/* 0x2c00 */ 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2c10 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2c20 */ 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2c30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2c40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, +/* 0x2c50 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2c60 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2c70 */ 48, 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2c80 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2c90 */ 48, 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, +/* 0x2ca0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2cb0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, +/* 0x2cc0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2cd0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2ce0 */ 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2cf0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2d00 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, +/* 0x2d10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2d20 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, +/* 0x2d30 */ 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2d40 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2d50 */ 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2d60 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2d70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, +/* 0x2d80 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d90 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2da0 */ 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2db0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2dc0 */ 48, 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x2dd0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2de0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, +/* 0x2df0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2e00 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2e10 */ 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2e20 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2e30 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, +/* 0x2e40 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2e50 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, +/* 0x2e60 */ 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2e70 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2e80 */ 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2e90 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2ea0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, +/* 0x2eb0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2ec0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2ed0 */ 48, 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2ee0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2ef0 */ 48, 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x2f00 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2f10 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, +/* 0x2f20 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2f30 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2f40 */ 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2f50 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2f60 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, +/* 0x2f70 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2f80 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, +/* 0x2f90 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x2fa0 */ 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, +/* 0x2fb0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x2fc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x2fd0 */ 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2fe0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x2ff0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, +/* 0x3000 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3010 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3020 */ 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3030 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3040 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, +/* 0x3050 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3060 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, +/* 0x3070 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3080 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3090 */ 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x30a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x30b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x30c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x30d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x30e0 */ 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x30f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3100 */ 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3110 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3120 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, +/* 0x3130 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3140 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3150 */ 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3160 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3170 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, +/* 0x3180 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3190 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, +/* 0x31a0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x31b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x31c0 */ 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x31d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x31e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, +/* 0x31f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3200 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3210 */ 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3220 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3230 */ 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3240 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3250 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, +/* 0x3260 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3270 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3280 */ 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3290 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x32a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, +/* 0x32b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x32c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, +/* 0x32d0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x32e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x32f0 */ 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3300 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3310 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, +/* 0x3320 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3330 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3340 */ 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3350 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3360 */ 10, 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3370 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3380 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, +/* 0x3390 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x33a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x33b0 */ 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x33c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x33d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, +/* 0x33e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x33f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, +/* 0x3400 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3410 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3420 */ 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3430 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3440 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, +/* 0x3450 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3460 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3470 */ 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3480 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3490 */ 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x34a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x34b0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, +/* 0x34c0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x34d0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x34e0 */ 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x34f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3500 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, +/* 0x3510 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3520 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, +/* 0x3530 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3540 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3550 */ 48, 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3560 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3570 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, +/* 0x3580 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3590 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x35a0 */ 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x35b0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x35c0 */ 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x35d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x35e0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, +/* 0x35f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3600 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3610 */ 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3620 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3630 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, +/* 0x3640 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3650 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, +/* 0x3660 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3670 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3680 */ 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3690 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x36a0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, +/* 0x36b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x36c0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x36d0 */ 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x36e0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x36f0 */ 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3700 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3710 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, +/* 0x3720 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3730 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3740 */ 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3750 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3760 */ 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, +/* 0x3770 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3780 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, +/* 0x3790 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x37a0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x37b0 */ 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x37c0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x37d0 */ 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x37e0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x37f0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x3800 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3810 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x3820 */ 50, 48, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, +/* 0x3830 */ 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, +/* 0x3840 */ 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x3850 */ 48, 48, 50, 56, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, +/* 0x3860 */ 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97, +/* 0x3870 */ 114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, +/* 0x3880 */ 48, 48, 48, 48, 51, 48, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, +/* 0x3890 */ 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115, +/* 0x38a0 */ 116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x38b0 */ 48, 48, 48, 48, 48, 48, 53, 48, 32, 82, 95, 65, 82, 77, 95, 84, +/* 0x38c0 */ 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, +/* 0x38d0 */ 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, +/* 0x38e0 */ 90, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 65, 82, 77, +/* 0x38f0 */ 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, +/* 0x3900 */ 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, +/* 0x3910 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, +/* 0x3920 */ 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46, +/* 0x3930 */ 114,101, 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, +/* 0x3940 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, +/* 0x3950 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x3960 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, +/* 0x3970 */ 101, 99, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, +/* 0x3980 */ 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97,114,116, +/* 0x3990 */ 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, +/* 0x39a0 */ 48, 49, 49, 50, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, 95, 67, +/* 0x39b0 */ 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115,116, 97, +/* 0x39c0 */ 114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, +/* 0x39d0 */ 48, 48, 48, 49, 50, 97, 32, 82, 95, 65, 82, 77, 95, 84, 72, 77, +/* 0x39e0 */ 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, 95,115, +/* 0x39f0 */ 116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x3a00 */ 48, 48, 48, 48, 48, 49, 51, 52, 32, 82, 95, 65, 82, 77, 95, 84, +/* 0x3a10 */ 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, 97,108, +/* 0x3a20 */ 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, 73, 78, +/* 0x3a30 */ 90, 10, 48, 48, 48, 48, 48, 49, 51,101, 32, 82, 95, 65, 82, 77, +/* 0x3a40 */ 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46,114,101, +/* 0x3a50 */ 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, 77, 65, +/* 0x3a60 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 52, 54, 32, 82, 95, 65, +/* 0x3a70 */ 82, 77, 95, 84, 72, 77, 95, 67, 65, 76, 76, 32, 32, 32, 32, 46, +/* 0x3a80 */ 114,101, 97,108, 95,115,116, 97,114,116, 95,111,102, 69, 76, 70, +/* 0x3a90 */ 77, 65, 73, 78, 90, 10 }; diff --git a/src/stub/arm64-darwin.macho-entry.h b/src/stub/arm64-darwin.macho-entry.h index 59d73103..a9395cd0 100644 --- a/src/stub/arm64-darwin.macho-entry.h +++ b/src/stub/arm64-darwin.macho-entry.h @@ -1,5 +1,5 @@ /* arm64-darwin.macho-entry.h - created from arm64-darwin.macho-entry.bin, 7361 (0x1cc1) bytes + created from arm64-darwin.macho-entry.bin, 7365 (0x1cc5) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7361 -#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xc2376df3 -#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x13c1b47c +#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7365 +#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x31b06f6b +#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x0f5ec97d -unsigned char stub_arm64_darwin_macho_entry[7361] = { +unsigned char stub_arm64_darwin_macho_entry[7365] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,240, 23, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,248, 23, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 226, 3, 0,145, 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, /* 0x0050 */ 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20, @@ -283,218 +283,218 @@ unsigned char stub_arm64_darwin_macho_entry[7361] = { /* 0x0f40 */ 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, /* 0x0f50 */ 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, /* 0x0f60 */ 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113, -/* 0x0f70 */ 204,255,255, 84, 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235, +/* 0x0f70 */ 204,255,255, 84, 0, 21, 0,145,232, 0, 0,148, 31, 0, 8,235, /* 0x0f80 */ 193,255,255, 84,227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203, /* 0x0f90 */ 128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145, -/* 0x0fa0 */ 225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, +/* 0x0fa0 */ 226, 0, 0,148,161, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, /* 0x0fb0 */ 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, /* 0x0fc0 */ 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, /* 0x0fd0 */ 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139, -/* 0x0fe0 */ 223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, +/* 0x0fe0 */ 223, 28, 0,113, 35, 2, 0, 84,227,125, 64,147,227, 3, 3,203, /* 0x0ff0 */ 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18, -/* 0x1000 */ 227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18, -/* 0x1010 */ 127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, -/* 0x1020 */ 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113, -/* 0x1030 */ 163,255,255, 84, 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, -/* 0x1040 */ 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, -/* 0x1050 */ 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84, -/* 0x1060 */ 227, 11, 64,185,226, 7, 64,185,227, 15, 0,185,226, 11, 0,185, -/* 0x1070 */ 239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82, -/* 0x1080 */ 102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145, -/* 0x1090 */ 164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, -/* 0x10a0 */ 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82, -/* 0x10b0 */ 223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, -/* 0x10c0 */ 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84,227,125, 64,147, -/* 0x10d0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, -/* 0x10e0 */ 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, -/* 0x10f0 */ 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84, -/* 0x1100 */ 227, 11, 64,185,228, 15, 64,185,227, 15, 0,185,227, 7, 64,185, -/* 0x1110 */ 227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82, -/* 0x1120 */ 223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,106,161, 41,145, -/* 0x1130 */ 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, -/* 0x1140 */ 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, -/* 0x1150 */ 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, -/* 0x1160 */ 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, -/* 0x1170 */ 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, -/* 0x1180 */ 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, -/* 0x1190 */ 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107, -/* 0x11a0 */ 163,255,255, 84,229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185, -/* 0x11b0 */ 223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82, -/* 0x11c0 */ 191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139, -/* 0x11d0 */ 165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, -/* 0x11e0 */ 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84,227, 47, 0,185, -/* 0x11f0 */ 127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81, -/* 0x1200 */ 111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84, -/* 0x1210 */ 239, 33,196, 26,106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, -/* 0x1220 */ 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148, -/* 0x1230 */ 231,124, 1, 83,131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26, -/* 0x1240 */ 132, 4, 0,113, 65,255,255, 84,106, 17, 25,145,239,109, 28, 83, -/* 0x1250 */ 132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, -/* 0x1260 */ 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42, -/* 0x1270 */ 165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20, -/* 0x1280 */ 239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248, -/* 0x1290 */ 165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84, -/* 0x12a0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, -/* 0x12b0 */ 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84, -/* 0x12c0 */ 224,115, 0, 57, 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, -/* 0x12d0 */ 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, -/* 0x12e0 */ 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, -/* 0x12f0 */ 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82,246,255,255, 23, -/* 0x1300 */ 227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, -/* 0x1310 */ 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214, -/* 0x1320 */ 224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139, -/* 0x1330 */ 227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, -/* 0x1340 */ 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, -/* 0x1350 */ 2, 1, 0, 84,231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, -/* 0x1360 */ 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214, -/* 0x1370 */ 140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, -/* 0x1380 */ 35, 0, 0,121, 32, 2, 95,214,251, 3, 30,170,103, 3, 64,185, -/* 0x1390 */ 98, 3, 22,203, 66, 64, 39,139,226, 11, 0,249,225, 3, 2,170, -/* 0x13a0 */ 5, 0,128, 82, 4, 0,128, 18, 67, 4,128, 82, 98, 0,128, 82, -/* 0x13b0 */ 0, 0,128,210,168, 24,128, 82, 1, 0, 0,212,224, 7, 0,249, -/* 0x13c0 */ 148, 2, 22,203,148, 2, 0,139, 5, 0,128,210,228, 3, 64,185, -/* 0x13d0 */ 67, 2,128, 82, 98, 0,128, 82, 97, 3, 22,203,168, 24,128, 82, -/* 0x13e0 */ 1, 0, 0,212,226, 11, 64,249,227, 19, 64,249, 66, 0, 0,139, -/* 0x13f0 */ 23, 0, 3,203,131, 3, 23,139,227, 15, 30,248, 96,204,116,146, -/* 0x1400 */ 224, 7, 0,249, 66, 0, 0,203,226, 11, 0,249,103, 3, 64,185, -/* 0x1410 */ 227, 99, 0,145,231, 15, 0,249, 98, 3, 23,139,243, 3, 2,170, -/* 0x1420 */ 103, 7, 64,185,100, 11, 64,185, 96, 51, 0,145,225, 3, 7,170, -/* 0x1430 */ 128, 3, 63,214,225, 11, 64,249,224, 7, 64,249,252, 7, 66,248, -/* 0x1440 */ 162, 0,128, 82, 72, 9,128, 82, 1, 0, 0,212, 96, 2, 31,214, -/* 0x1450 */ 101,120,101, 99,117,116, 97, 98,108,101, 95,112, 97,116,104, 61, -/* 0x1460 */ 0, 0, 32,212,252, 3, 30,170, 64,132, 64,248,224,255,255,181, -/* 0x1470 */ 64,132, 64,248,224,255,255,181, 64,132, 64,248, 32,255,255,180, -/* 0x1480 */ 129,254,255, 16, 3, 2,128, 82, 4, 20, 64, 56, 37, 20, 64, 56, -/* 0x1490 */ 99, 4, 0, 81,159, 0, 5,107, 1,255,255, 84, 99,255,255, 53, -/* 0x14a0 */ 1, 0,128,210,168, 0,128, 82, 1, 0, 0,212,224, 15, 29,248, -/* 0x14b0 */ 1, 0, 0, 16,246, 3, 1,170, 32, 68, 64,184,214, 66, 32,203, -/* 0x14c0 */ 246, 19, 0,249,244, 3, 1,170, 32, 68, 64,184,148, 66, 32,203, -/* 0x14d0 */ 21, 32, 0,209,173,255,255,151,102,105,108,101, 32,102,111,114, -/* 0x14e0 */ 109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116,108,101, -/* 0x14f0 */ 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105,111,110, -/* 0x1500 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, -/* 0x1510 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, -/* 0x1520 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1530 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1540 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, -/* 0x1550 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, -/* 0x1560 */ 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 56, 32, 32, 48, -/* 0x1570 */ 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x1580 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 78, 82, 86, -/* 0x1590 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, -/* 0x15a0 */ 32, 48, 32, 32, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x15b0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 78, 82, 86, 50, -/* 0x15c0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 99, 32, 32, -/* 0x15d0 */ 48, 32, 32, 48, 32, 32, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, -/* 0x15e0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82, -/* 0x15f0 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, -/* 0x1600 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 99, 52, 32, 32, 50, 42, -/* 0x1610 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, -/* 0x1620 */ 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, -/* 0x1630 */ 49, 52, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 51, 52, 32, -/* 0x1640 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, -/* 0x1650 */ 32, 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, -/* 0x1660 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 55, 56, 32, -/* 0x1670 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, -/* 0x1680 */ 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, -/* 0x1690 */ 32, 32, 48, 49, 48, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, -/* 0x16a0 */ 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x16b0 */ 84, 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x16c0 */ 48, 32, 32, 32, 32, 48, 57, 54, 56, 32, 32, 48, 32, 32, 48, 32, -/* 0x16d0 */ 32, 48, 53, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x16e0 */ 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, -/* 0x16f0 */ 69, 67, 49, 48, 32, 32, 32, 32, 48, 52, 57, 99, 32, 32, 48, 32, -/* 0x1700 */ 32, 48, 32, 32, 48,101,101, 99, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x1710 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, -/* 0x1720 */ 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 32, 32, 48, 32, -/* 0x1730 */ 32, 48, 32, 32, 48, 49, 51, 56, 56, 32, 32, 50, 42, 42, 48, 32, -/* 0x1740 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48, 32, 77, 65, -/* 0x1750 */ 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 32, 32, 48, -/* 0x1760 */ 32, 32, 48, 32, 32, 48, 49, 51, 56, 56, 32, 32, 50, 42, 42, 48, -/* 0x1770 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 49, 32, 77, -/* 0x1780 */ 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 49, 53, -/* 0x1790 */ 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 56, 56, 32, 32, -/* 0x17a0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, -/* 0x17b0 */ 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, -/* 0x17c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x17d0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, -/* 0x17e0 */ 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, -/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1800 */ 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, -/* 0x1810 */ 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, -/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1830 */ 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, -/* 0x1840 */ 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, -/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x1860 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 48, 32, -/* 0x1870 */ 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1890 */ 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69, 10, -/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x18b0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, -/* 0x18c0 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x18e0 */ 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, -/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1900 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, -/* 0x1910 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, -/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1930 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 48, -/* 0x1940 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, -/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x1960 */ 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, -/* 0x1970 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x1980 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1990 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x19a0 */ 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x19c0 */ 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, -/* 0x19d0 */ 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, -/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, -/* 0x19f0 */ 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, -/* 0x1a00 */ 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1a20 */ 70, 32, 78, 82, 86, 50, 69, 32, 48, 49, 55, 99, 32,117, 99,108, -/* 0x1a30 */ 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115, -/* 0x1a40 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a50 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, -/* 0x1a60 */ 86, 50, 68, 32, 48, 49, 55, 48, 32,117, 99,108, 95,110,114,118, -/* 0x1a70 */ 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, -/* 0x1a80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a90 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 32, -/* 0x1aa0 */ 48, 49, 52, 52, 32,117, 99,108, 95,110,114,118, 50, 98, 95,100, -/* 0x1ab0 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, -/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, -/* 0x1ad0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x1ae0 */ 32, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, 10, 48, 48, -/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, -/* 0x1b00 */ 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, -/* 0x1b10 */ 32, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,115, -/* 0x1b20 */ 115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, -/* 0x1b30 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, -/* 0x1b40 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x1b50 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x1b60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, -/* 0x1b80 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, -/* 0x1b90 */ 54, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48, -/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 99, 10, -/* 0x1bb0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x1bc0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, -/* 0x1bd0 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x1be0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x1bf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, -/* 0x1c10 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, -/* 0x1c20 */ 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 10, -/* 0x1c30 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x1c40 */ 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, -/* 0x1c50 */ 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, -/* 0x1c60 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x1c70 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, -/* 0x1c90 */ 65, 65, 82, 67, 72, 54, 52, 95, 65, 68, 82, 95, 80, 82, 69, 76, -/* 0x1ca0 */ 95, 76, 79, 50, 49, 32, 32, 95,115,116, 97,114,116, 45, 48,120, -/* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, -/* 0x1cc0 */ 10 +/* 0x1000 */ 227, 3, 4, 42, 33, 4, 3,139,202, 0, 0,148, 3, 0, 0, 18, +/* 0x1010 */ 130,124, 8, 83,127, 0, 2,107,193, 0, 0, 84, 31, 0, 4,113, +/* 0x1020 */ 163,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, +/* 0x1030 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82, +/* 0x1040 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26, +/* 0x1050 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148, +/* 0x1060 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185, +/* 0x1070 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113, +/* 0x1080 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, +/* 0x1090 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, +/* 0x10a0 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, +/* 0x10b0 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, +/* 0x10c0 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84, +/* 0x10d0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, +/* 0x10e0 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, +/* 0x10f0 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185, +/* 0x1100 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185, +/* 0x1110 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, +/* 0x1120 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, +/* 0x1130 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84, +/* 0x1140 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82, +/* 0x1150 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145, +/* 0x1160 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145, +/* 0x1170 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x1180 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82, +/* 0x1190 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, +/* 0x11a0 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11, +/* 0x11b0 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, +/* 0x11c0 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42, +/* 0x11d0 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82, +/* 0x11e0 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x11f0 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83, +/* 0x1200 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113, +/* 0x1210 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75, +/* 0x1220 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, +/* 0x1230 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26, +/* 0x1240 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145, +/* 0x1250 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82, +/* 0x1260 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84, +/* 0x1270 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, +/* 0x1280 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185, +/* 0x1290 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107, +/* 0x12a0 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, +/* 0x12b0 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, +/* 0x12c0 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,195,229,255, 84, +/* 0x12d0 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203, +/* 0x12e0 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203, +/* 0x12f0 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82, +/* 0x1300 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235, +/* 0x1310 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42, +/* 0x1320 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, +/* 0x1330 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, +/* 0x1340 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27, +/* 0x1350 */ 159, 1, 2,107, 2, 1, 0, 84,231, 3, 2, 42, 2, 0,129, 82, +/* 0x1360 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, +/* 0x1370 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, +/* 0x1380 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,251, 3, 30,170, +/* 0x1390 */ 103, 3, 64,185, 98, 3, 22,203, 66, 64, 39,139,226, 11, 0,249, +/* 0x13a0 */ 225, 3, 2,170, 5, 0,128, 82, 4, 0,128, 18, 67, 4,128, 82, +/* 0x13b0 */ 98, 0,128, 82, 0, 0,128,210,168, 24,128, 82, 1, 0, 0,212, +/* 0x13c0 */ 224, 7, 0,249,148, 2, 22,203,148, 2, 0,139, 5, 0,128,210, +/* 0x13d0 */ 228, 3, 64,185, 67, 2,128, 82, 98, 0,128, 82, 97, 3, 22,203, +/* 0x13e0 */ 168, 24,128, 82, 1, 0, 0,212,226, 11, 64,249,227, 19, 64,249, +/* 0x13f0 */ 66, 0, 0,139, 23, 0, 3,203,131, 3, 23,139,227, 15, 30,248, +/* 0x1400 */ 96,204,116,146,224, 7, 0,249, 66, 0, 0,203,226, 11, 0,249, +/* 0x1410 */ 103, 3, 64,185,227, 99, 0,145,231, 15, 0,249, 98, 3, 23,139, +/* 0x1420 */ 243, 3, 2,170,103, 7, 64,185,100, 11, 64,185, 96, 51, 0,145, +/* 0x1430 */ 225, 3, 7,170,128, 3, 63,214,225, 11, 64,249,224, 7, 64,249, +/* 0x1440 */ 252, 7, 66,248,162, 0,128, 82, 72, 9,128, 82, 1, 0, 0,212, +/* 0x1450 */ 96, 2, 31,214,101,120,101, 99,117,116, 97, 98,108,101, 95,112, +/* 0x1460 */ 97,116,104, 61, 0, 0, 32,212,252, 3, 30,170, 64,132, 64,248, +/* 0x1470 */ 224,255,255,181, 64,132, 64,248,224,255,255,181, 64,132, 64,248, +/* 0x1480 */ 32,255,255,180,129,254,255, 16, 3, 2,128, 82, 4, 20, 64, 56, +/* 0x1490 */ 37, 20, 64, 56, 99, 4, 0, 81,159, 0, 5,107, 1,255,255, 84, +/* 0x14a0 */ 99,255,255, 53, 1, 0,128,210,168, 0,128, 82, 1, 0, 0,212, +/* 0x14b0 */ 224, 15, 29,248, 1, 0, 0, 16,246, 3, 1,170, 32, 68, 64,184, +/* 0x14c0 */ 214, 66, 32,203,246, 19, 0,249,244, 3, 1,170, 32, 68, 64,184, +/* 0x14d0 */ 148, 66, 32,203, 21, 32, 0,209,173,255,255,151,102,105,108,101, +/* 0x14e0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105, +/* 0x14f0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99, +/* 0x1500 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, +/* 0x1510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, +/* 0x1520 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1530 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1540 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, +/* 0x1550 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, +/* 0x1560 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, +/* 0x1570 */ 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, +/* 0x1580 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, +/* 0x1590 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, +/* 0x15a0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 56, 32, 32, 50, 42, 42, +/* 0x15b0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, +/* 0x15c0 */ 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, +/* 0x15d0 */ 55, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 56, 32, 32, 50, +/* 0x15e0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, +/* 0x15f0 */ 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1600 */ 48, 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 99, 52, +/* 0x1610 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1620 */ 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, +/* 0x1630 */ 32, 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x1640 */ 51, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1650 */ 78, 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x1660 */ 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x1670 */ 52, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1680 */ 78, 84, 83, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1690 */ 48, 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32, 48, 32, 32, 48, +/* 0x16a0 */ 32, 32, 48, 52, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x16b0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, +/* 0x16c0 */ 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54, 56, 32, 32, 48, +/* 0x16d0 */ 32, 32, 48, 32, 32, 48, 53, 56, 52, 32, 32, 50, 42, 42, 48, 32, +/* 0x16e0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, +/* 0x16f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 52, 97, 48, +/* 0x1700 */ 32, 32, 48, 32, 32, 48, 32, 32, 48,101,101, 99, 32, 32, 50, 42, +/* 0x1710 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, +/* 0x1720 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, +/* 0x1730 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 56, 99, 32, 32, 50, +/* 0x1740 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, +/* 0x1750 */ 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, +/* 0x1760 */ 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 56, 99, 32, 32, +/* 0x1770 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, +/* 0x1780 */ 49, 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, +/* 0x1790 */ 32, 48, 49, 53, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, +/* 0x17a0 */ 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x17b0 */ 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, +/* 0x17c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17d0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x17e0 */ 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, +/* 0x17f0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1800 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, +/* 0x1810 */ 65, 73, 78, 90, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, +/* 0x1820 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1830 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, +/* 0x1840 */ 73, 78, 88, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, +/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1860 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x1870 */ 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, +/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1890 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, +/* 0x18a0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18b0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, +/* 0x18c0 */ 50, 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x18e0 */ 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, +/* 0x18f0 */ 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1900 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, +/* 0x1910 */ 65, 73, 76, 32, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, +/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1930 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1940 */ 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, +/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1960 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1970 */ 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x1980 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1990 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x19a0 */ 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x19b0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19c0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, +/* 0x19d0 */ 65, 73, 78, 89, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, +/* 0x19e0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19f0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, +/* 0x1a00 */ 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, +/* 0x1a10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1a20 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, 48, 49, 55, 99, +/* 0x1a30 */ 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109, +/* 0x1a40 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x1a60 */ 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48, 32,117, 99,108, +/* 0x1a70 */ 95,110,114,118, 50,100, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1a80 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a90 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x1aa0 */ 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, 95,110,114,118, +/* 0x1ab0 */ 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, +/* 0x1ac0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ad0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x1ae0 */ 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,101, 99,111,100, +/* 0x1af0 */ 101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b00 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, +/* 0x1b10 */ 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101, 99,111,109, +/* 0x1b20 */ 112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x1b30 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, +/* 0x1b40 */ 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x1b50 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x1b60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x1b70 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b80 */ 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, +/* 0x1b90 */ 65, 76, 76, 50, 54, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, +/* 0x1ba0 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bb0 */ 48,100, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x1bc0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, +/* 0x1bd0 */ 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x1be0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x1bf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x1c00 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c10 */ 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, +/* 0x1c20 */ 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1c30 */ 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x1c40 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, +/* 0x1c50 */ 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x1c60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x1c70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x1c80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, +/* 0x1c90 */ 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 68, 82, 95, +/* 0x1ca0 */ 80, 82, 69, 76, 95, 76, 79, 50, 49, 32, 32, 95,115,116, 97,114, +/* 0x1cb0 */ 116, 45, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cc0 */ 48, 48, 48, 56, 10 }; diff --git a/src/stub/arm64-linux.elf-entry.h b/src/stub/arm64-linux.elf-entry.h index dcb29b69..5f727faf 100644 --- a/src/stub/arm64-linux.elf-entry.h +++ b/src/stub/arm64-linux.elf-entry.h @@ -1,5 +1,5 @@ /* arm64-linux.elf-entry.h - created from arm64-linux.elf-entry.bin, 7485 (0x1d3d) bytes + created from arm64-linux.elf-entry.bin, 7489 (0x1d41) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7485 -#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x7b2783ec -#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x2ca93676 +#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7489 +#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x86268564 +#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x10255b7a -unsigned char stub_arm64_linux_elf_entry[7485] = { +unsigned char stub_arm64_linux_elf_entry[7489] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,104, 24, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 24, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 0, 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, /* 0x0050 */ 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20, @@ -283,225 +283,226 @@ unsigned char stub_arm64_linux_elf_entry[7485] = { /* 0x0f40 */ 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, /* 0x0f50 */ 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, /* 0x0f60 */ 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113, -/* 0x0f70 */ 204,255,255, 84, 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235, +/* 0x0f70 */ 204,255,255, 84, 0, 21, 0,145,232, 0, 0,148, 31, 0, 8,235, /* 0x0f80 */ 193,255,255, 84,227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203, /* 0x0f90 */ 128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145, -/* 0x0fa0 */ 225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, +/* 0x0fa0 */ 226, 0, 0,148,161, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, /* 0x0fb0 */ 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, /* 0x0fc0 */ 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, /* 0x0fd0 */ 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139, -/* 0x0fe0 */ 223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, +/* 0x0fe0 */ 223, 28, 0,113, 35, 2, 0, 84,227,125, 64,147,227, 3, 3,203, /* 0x0ff0 */ 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18, -/* 0x1000 */ 227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18, -/* 0x1010 */ 127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, -/* 0x1020 */ 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113, -/* 0x1030 */ 163,255,255, 84, 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, -/* 0x1040 */ 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, -/* 0x1050 */ 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84, -/* 0x1060 */ 227, 11, 64,185,226, 7, 64,185,227, 15, 0,185,226, 11, 0,185, -/* 0x1070 */ 239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82, -/* 0x1080 */ 102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145, -/* 0x1090 */ 164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, -/* 0x10a0 */ 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82, -/* 0x10b0 */ 223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, -/* 0x10c0 */ 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84,227,125, 64,147, -/* 0x10d0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, -/* 0x10e0 */ 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, -/* 0x10f0 */ 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84, -/* 0x1100 */ 227, 11, 64,185,228, 15, 64,185,227, 15, 0,185,227, 7, 64,185, -/* 0x1110 */ 227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82, -/* 0x1120 */ 223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,106,161, 41,145, -/* 0x1130 */ 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, -/* 0x1140 */ 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, -/* 0x1150 */ 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, -/* 0x1160 */ 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, -/* 0x1170 */ 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, -/* 0x1180 */ 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, -/* 0x1190 */ 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107, -/* 0x11a0 */ 163,255,255, 84,229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185, -/* 0x11b0 */ 223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82, -/* 0x11c0 */ 191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139, -/* 0x11d0 */ 165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, -/* 0x11e0 */ 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84,227, 47, 0,185, -/* 0x11f0 */ 127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81, -/* 0x1200 */ 111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84, -/* 0x1210 */ 239, 33,196, 26,106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, -/* 0x1220 */ 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148, -/* 0x1230 */ 231,124, 1, 83,131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26, -/* 0x1240 */ 132, 4, 0,113, 65,255,255, 84,106, 17, 25,145,239,109, 28, 83, -/* 0x1250 */ 132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, -/* 0x1260 */ 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42, -/* 0x1270 */ 165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20, -/* 0x1280 */ 239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248, -/* 0x1290 */ 165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84, -/* 0x12a0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, -/* 0x12b0 */ 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84, -/* 0x12c0 */ 224,115, 0, 57, 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, -/* 0x12d0 */ 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, -/* 0x12e0 */ 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, -/* 0x12f0 */ 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82,246,255,255, 23, -/* 0x1300 */ 227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, -/* 0x1310 */ 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214, -/* 0x1320 */ 224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139, -/* 0x1330 */ 227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, -/* 0x1340 */ 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, -/* 0x1350 */ 2, 1, 0, 84,231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, -/* 0x1360 */ 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214, -/* 0x1370 */ 140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, -/* 0x1380 */ 35, 0, 0,121, 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, -/* 0x1390 */ 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82, -/* 0x13a0 */ 168, 11,128, 82, 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, -/* 0x13b0 */ 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105, -/* 0x13c0 */ 108,101,100, 46, 10, 0, 0, 0, 5, 0,128,210, 98, 0,128, 82, -/* 0x13d0 */ 200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214,244, 3, 30,170, -/* 0x13e0 */ 0, 67, 95,184, 25, 51, 0,209, 57, 3, 0,203,129, 6, 64,185, -/* 0x13f0 */ 4, 0,128, 18, 67, 4,128, 82, 0, 0,128,210,243,255,255,151, -/* 0x1400 */ 224, 7,191,169,250,111,191,169,251, 3, 0,170,226, 3, 0,170, -/* 0x1410 */ 225, 15, 31,248,227, 3, 0,145,128, 66, 0,145,129, 10, 64,185, -/* 0x1420 */ 132, 50, 64, 57, 0, 3, 63,214,232, 7, 65,248, 96, 67, 64,248, -/* 0x1430 */ 65, 3,192,218, 33, 16,192,218, 33, 4, 0,145, 33,212,118,211, -/* 0x1440 */ 0, 0, 1,170, 96, 67, 0,248,162, 0,128, 82,225, 27, 64,185, -/* 0x1450 */ 224, 3, 27,170, 72, 28,128, 82, 1, 0, 0,212,128, 2, 64,185, -/* 0x1460 */ 29, 67, 95,184, 60, 3, 0,139, 96, 67, 0,145, 0, 0, 31,214, -/* 0x1470 */ 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,101, 0, 0, -/* 0x1480 */ 1,132, 64,248,225,255,255,181,192, 3, 95,214,194, 1,128, 82, -/* 0x1490 */ 1,255,255, 16, 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212, -/* 0x14a0 */ 224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212,248, 3, 30,170, -/* 0x14b0 */ 224, 3, 0,145,243,255,255,151,242,255,255,151,246, 3, 0,170, -/* 0x14c0 */ 1,136,192,168, 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53, -/* 0x14d0 */ 34, 0,160,210,250, 3, 2,203, 96, 12,128, 18,161,252,255, 16, -/* 0x14e0 */ 2, 0,128, 82, 8, 7,128, 82, 1, 0, 0,212,251, 3, 0, 42, -/* 0x14f0 */ 31, 0, 0,113,203,252,255, 84,185,255,255,151, 0, 0, 0, 0, -/* 0x1500 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, -/* 0x1510 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, -/* 0x1520 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, -/* 0x1530 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, -/* 0x1540 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, -/* 0x1550 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, -/* 0x1560 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, -/* 0x1570 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, -/* 0x1580 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, -/* 0x1590 */ 32, 32, 32, 48, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, -/* 0x15a0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x15b0 */ 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, -/* 0x15c0 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 56, 32, -/* 0x15d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, -/* 0x15e0 */ 32, 32, 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, -/* 0x15f0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 56, 32, 32, -/* 0x1600 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, -/* 0x1610 */ 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1620 */ 32, 48, 49, 55, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 56, -/* 0x1630 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1640 */ 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, -/* 0x1650 */ 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x1660 */ 49, 99, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1670 */ 78, 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, -/* 0x1680 */ 32, 32, 32, 32, 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32, 48, -/* 0x1690 */ 32, 32, 48, 51, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x16a0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, -/* 0x16b0 */ 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32, 48, -/* 0x16c0 */ 32, 32, 48, 32, 32, 48, 52, 55, 56, 32, 32, 50, 42, 42, 48, 32, -/* 0x16d0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 76, 90, -/* 0x16e0 */ 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54, 56, -/* 0x16f0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 56, 52, 32, 32, 50, 42, -/* 0x1700 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, -/* 0x1710 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, -/* 0x1720 */ 52, 57, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,101,101, 99, 32, -/* 0x1730 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, -/* 0x1740 */ 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, -/* 0x1750 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 56, 56, -/* 0x1760 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1770 */ 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, -/* 0x1780 */ 32, 32, 32, 48, 51,101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, -/* 0x1790 */ 51, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x17a0 */ 78, 84, 83, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, -/* 0x17b0 */ 32, 32, 32, 32, 32, 32, 48, 49, 51, 56, 32, 32, 48, 32, 32, 48, -/* 0x17c0 */ 32, 32, 48, 49, 51, 99, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, -/* 0x17d0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, -/* 0x17e0 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1800 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, -/* 0x1810 */ 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1830 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, -/* 0x1840 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1850 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, -/* 0x1860 */ 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, -/* 0x1870 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1880 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, -/* 0x1890 */ 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, -/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x18b0 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, -/* 0x18c0 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, -/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x18e0 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, -/* 0x18f0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1900 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, -/* 0x1910 */ 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1930 */ 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, -/* 0x1940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1950 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, -/* 0x1960 */ 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x1970 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1980 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x1990 */ 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x19a0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19b0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, -/* 0x19c0 */ 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x19d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, -/* 0x19f0 */ 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, -/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, -/* 0x1a20 */ 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a30 */ 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, -/* 0x1a40 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, -/* 0x1a50 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a60 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, -/* 0x1a70 */ 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100, -/* 0x1a80 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, -/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, -/* 0x1aa0 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48, -/* 0x1ab0 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109, -/* 0x1ac0 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1ae0 */ 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, -/* 0x1af0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115, -/* 0x1b00 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b10 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x1b20 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68, -/* 0x1b30 */ 101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, -/* 0x1b50 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101, -/* 0x1b60 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, -/* 0x1b80 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, -/* 0x1b90 */ 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, -/* 0x1ba0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, -/* 0x1bb0 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x1bc0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x1bd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1bf0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, -/* 0x1c00 */ 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, -/* 0x1c20 */ 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x1c30 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c40 */ 48, 48, 48,101, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, -/* 0x1c50 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, -/* 0x1c60 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, -/* 0x1c70 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, -/* 0x1c80 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x1c90 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ca0 */ 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, -/* 0x1cb0 */ 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x1cc0 */ 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x1cd0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, -/* 0x1ce0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x1cf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, -/* 0x1d00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, -/* 0x1d10 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, -/* 0x1d20 */ 51, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, -/* 0x1d30 */ 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x1000 */ 227, 3, 4, 42, 33, 4, 3,139,202, 0, 0,148, 3, 0, 0, 18, +/* 0x1010 */ 130,124, 8, 83,127, 0, 2,107,193, 0, 0, 84, 31, 0, 4,113, +/* 0x1020 */ 163,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, +/* 0x1030 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82, +/* 0x1040 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26, +/* 0x1050 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148, +/* 0x1060 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185, +/* 0x1070 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113, +/* 0x1080 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, +/* 0x1090 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, +/* 0x10a0 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, +/* 0x10b0 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, +/* 0x10c0 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84, +/* 0x10d0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, +/* 0x10e0 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, +/* 0x10f0 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185, +/* 0x1100 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185, +/* 0x1110 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, +/* 0x1120 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, +/* 0x1130 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84, +/* 0x1140 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82, +/* 0x1150 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145, +/* 0x1160 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145, +/* 0x1170 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x1180 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82, +/* 0x1190 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, +/* 0x11a0 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11, +/* 0x11b0 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, +/* 0x11c0 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42, +/* 0x11d0 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82, +/* 0x11e0 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x11f0 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83, +/* 0x1200 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113, +/* 0x1210 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75, +/* 0x1220 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, +/* 0x1230 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26, +/* 0x1240 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145, +/* 0x1250 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82, +/* 0x1260 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84, +/* 0x1270 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, +/* 0x1280 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185, +/* 0x1290 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107, +/* 0x12a0 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, +/* 0x12b0 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, +/* 0x12c0 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,195,229,255, 84, +/* 0x12d0 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203, +/* 0x12e0 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203, +/* 0x12f0 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82, +/* 0x1300 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235, +/* 0x1310 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42, +/* 0x1320 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, +/* 0x1330 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, +/* 0x1340 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27, +/* 0x1350 */ 159, 1, 2,107, 2, 1, 0, 84,231, 3, 2, 42, 2, 0,129, 82, +/* 0x1360 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, +/* 0x1370 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, +/* 0x1380 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,194, 3,128, 82, +/* 0x1390 */ 225, 0, 0, 16, 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212, +/* 0x13a0 */ 224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212, 80, 82, 79, 84, +/* 0x13b0 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, +/* 0x13c0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, 5, 0,128,210, +/* 0x13d0 */ 98, 0,128, 82,200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x13e0 */ 244, 3, 30,170, 0, 67, 95,184, 25, 51, 0,209, 57, 3, 0,203, +/* 0x13f0 */ 129, 6, 64,185, 4, 0,128, 18, 67, 4,128, 82, 0, 0,128,210, +/* 0x1400 */ 243,255,255,151,224, 7,191,169,250,111,191,169,251, 3, 0,170, +/* 0x1410 */ 226, 3, 0,170,225, 15, 31,248,227, 3, 0,145,128, 66, 0,145, +/* 0x1420 */ 129, 10, 64,185,132, 50, 64, 57, 0, 3, 63,214,232, 7, 65,248, +/* 0x1430 */ 96, 67, 64,248, 65, 3,192,218, 33, 16,192,218, 33, 4, 0,145, +/* 0x1440 */ 33,212,118,211, 0, 0, 1,170, 96, 67, 0,248,162, 0,128, 82, +/* 0x1450 */ 225, 27, 64,185,224, 3, 27,170, 72, 28,128, 82, 1, 0, 0,212, +/* 0x1460 */ 128, 2, 64,185, 29, 67, 95,184, 60, 3, 0,139, 96, 67, 0,145, +/* 0x1470 */ 0, 0, 31,214, 47,112,114,111, 99, 47,115,101,108,102, 47,101, +/* 0x1480 */ 120,101, 0, 0, 1,132, 64,248,225,255,255,181,192, 3, 95,214, +/* 0x1490 */ 194, 1,128, 82, 1,255,255, 16, 64, 0,128, 82, 8, 8,128, 82, +/* 0x14a0 */ 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212, +/* 0x14b0 */ 248, 3, 30,170,224, 3, 0,145,243,255,255,151,242,255,255,151, +/* 0x14c0 */ 246, 3, 0,170, 1,136,192,168, 63, 24, 0,113, 96, 0, 0, 84, +/* 0x14d0 */ 161,255,255, 53, 34, 0,160,210,250, 3, 2,203, 96, 12,128, 18, +/* 0x14e0 */ 161,252,255, 16, 2, 0,128, 82, 8, 7,128, 82, 1, 0, 0,212, +/* 0x14f0 */ 251, 3, 0, 42, 31, 0, 0,113,203,252,255, 84,185,255,255,151, +/* 0x1500 */ 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32, +/* 0x1510 */ 101,108,102, 54, 52, 45,108,105,116,116,108,101, 97, 97,114, 99, +/* 0x1520 */ 104, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, +/* 0x1530 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1540 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, +/* 0x1550 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, +/* 0x1560 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, +/* 0x1570 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, +/* 0x1580 */ 108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x1590 */ 88, 32, 32, 32, 32, 32, 32, 48, 56, 32, 32, 48, 32, 32, 48, 32, +/* 0x15a0 */ 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x15b0 */ 69, 78, 84, 83, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x15c0 */ 68, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x15d0 */ 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x15e0 */ 78, 84, 83, 10, 32, 32, 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x15f0 */ 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x1600 */ 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1610 */ 84, 83, 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, +/* 0x1620 */ 32, 32, 32, 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, 32, 48, 32, +/* 0x1630 */ 32, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1640 */ 69, 78, 84, 83, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, +/* 0x1650 */ 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, +/* 0x1660 */ 48, 32, 32, 48, 49, 99, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x1670 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 50, +/* 0x1680 */ 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 52, 32, 32, +/* 0x1690 */ 48, 32, 32, 48, 32, 32, 48, 51, 51, 52, 32, 32, 50, 42, 42, 48, +/* 0x16a0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 76, +/* 0x16b0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, 48, +/* 0x16c0 */ 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 55, 56, 32, 32, 50, +/* 0x16d0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, +/* 0x16e0 */ 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, +/* 0x16f0 */ 48, 57, 54, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 56, 52, +/* 0x1700 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1710 */ 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, +/* 0x1720 */ 32, 32, 32, 48, 52, 97, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x1730 */ 101,101, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1740 */ 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1750 */ 51, 48, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x1760 */ 49, 51, 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1770 */ 69, 78, 84, 83, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x1780 */ 89, 32, 32, 32, 32, 32, 32, 48, 51,101, 32, 32, 48, 32, 32, 48, +/* 0x1790 */ 32, 32, 48, 49, 51, 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x17a0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 49, 32, 69, 76, 70, 77, +/* 0x17b0 */ 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 49, 51, 56, 32, 32, +/* 0x17c0 */ 48, 32, 32, 48, 32, 32, 48, 49, 51, 99, 99, 32, 32, 50, 42, 42, +/* 0x17d0 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, +/* 0x17e0 */ 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, +/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1800 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, +/* 0x1810 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, +/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1830 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, +/* 0x1840 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1860 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, +/* 0x1870 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1880 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x1890 */ 86, 95, 72, 69, 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x18a0 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18b0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, +/* 0x18c0 */ 65, 73, 76, 32, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, +/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x18e0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, +/* 0x18f0 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1900 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, +/* 0x1910 */ 82, 86, 50, 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1930 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, +/* 0x1940 */ 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1950 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, +/* 0x1960 */ 65, 95, 69, 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, +/* 0x1970 */ 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1980 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, +/* 0x1990 */ 77, 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, +/* 0x19a0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, +/* 0x19c0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, +/* 0x19d0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x19f0 */ 69, 76, 70, 77, 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, +/* 0x1a00 */ 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a10 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, +/* 0x1a20 */ 68, 42, 32, 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, +/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, +/* 0x1a40 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115, +/* 0x1a50 */ 116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a60 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x1a70 */ 86, 50, 69, 32, 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, +/* 0x1a80 */ 50,101, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, +/* 0x1a90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1aa0 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, +/* 0x1ab0 */ 48, 49, 55, 48, 32,117, 99,108, 95,110,114,118, 50,100, 95,100, +/* 0x1ac0 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, +/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1ae0 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, +/* 0x1af0 */ 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109, +/* 0x1b00 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x1b20 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, +/* 0x1b30 */ 122,109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, +/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, +/* 0x1b50 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110, +/* 0x1b60 */ 100, 95,100,101, 99,111,109,112,114,101,115,115, 10, 48, 48, 48, +/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, +/* 0x1b80 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, +/* 0x1b90 */ 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x1ba0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, +/* 0x1bb0 */ 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x1bc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x1bd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x1be0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bf0 */ 48, 48, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, +/* 0x1c00 */ 83, 51, 50, 32, 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, +/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, +/* 0x1c20 */ 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, +/* 0x1c30 */ 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48,101, 52, 10, 10, 82, 69, 76, 79, 67, +/* 0x1c50 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x1c60 */ 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, +/* 0x1c70 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1c80 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1c90 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, +/* 0x1cb0 */ 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, +/* 0x1cc0 */ 77, 65, 95, 68, 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x1cd0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x1ce0 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, +/* 0x1cf0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, +/* 0x1d00 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1d10 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d20 */ 48, 48, 48, 49, 51, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, +/* 0x1d30 */ 95, 65, 66, 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, +/* 0x1d40 */ 10 }; diff --git a/src/stub/arm64-linux.elf-so_entry.h b/src/stub/arm64-linux.elf-so_entry.h new file mode 100644 index 00000000..f25ed7d9 --- /dev/null +++ b/src/stub/arm64-linux.elf-so_entry.h @@ -0,0 +1,155 @@ +/* arm64-linux.elf-so_entry.h + created from arm64-linux.elf-so_entry.bin, 1843 (0x733) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_ARM64_LINUX_ELF_SO_ENTRY_SIZE 1843 +#define STUB_ARM64_LINUX_ELF_SO_ENTRY_ADLER32 0xec5a6665 +#define STUB_ARM64_LINUX_ELF_SO_ENTRY_CRC32 0x54700033 + +unsigned char stub_arm64_linux_elf_so_entry[1843] = { +/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, +/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 7, 0, 4, 0, +/* 0x0040 */ 31, 32, 3,213,224, 7,190,169,226,123, 1,169,255, 67, 0,209, +/* 0x0050 */ 0, 0, 0,148, 5, 0,128,210, 4, 0,128, 18, 67, 4,128, 82, +/* 0x0060 */ 98, 0,128, 82,193, 3, 64,185,225, 7, 0,249, 0, 0,128,210, +/* 0x0070 */ 200, 27,128, 82, 1, 0, 0,212, 31, 4, 64,177, 67, 0, 0, 84, +/* 0x0080 */ 0, 0, 32,212,224, 3, 0,249,227, 35, 0,145,226, 3, 0,170, +/* 0x0090 */ 193, 7, 64,185,192, 51, 0,145, 9, 0, 0,148,224, 7, 64,169, +/* 0x00a0 */ 162, 0,128, 82, 72, 28,128, 82, 1, 0, 0,212, 0, 0, 0, 16, +/* 0x00b0 */ 225, 67, 0,145,226, 3, 64,249, 64, 0, 31,214, 1, 64, 33,139, +/* 0x00c0 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82, +/* 0x00d0 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203, +/* 0x00e0 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, +/* 0x00f0 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211, +/* 0x0100 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235, +/* 0x0110 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235, +/* 0x0120 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, +/* 0x0130 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235, +/* 0x0140 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235, +/* 0x0150 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170, +/* 0x0160 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, +/* 0x0170 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82, +/* 0x0180 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151, +/* 0x0190 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56, +/* 0x01a0 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113, +/* 0x01b0 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42, +/* 0x01c0 */ 229, 3, 37, 42,133,248,255, 52,231,255,255,151, 33, 0, 1, 58, +/* 0x01d0 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151, +/* 0x01e0 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56, +/* 0x01f0 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23, +/* 0x0200 */ 192, 3, 63,214, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116, +/* 0x0210 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46, +/* 0x0220 */ 114,101,108, 97, 69, 76, 70, 77, 65, 73, 78, 88, 0, 69, 76, 70, +/* 0x0230 */ 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0250 */ 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0260 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, +/* 0x0270 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0280 */ 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0290 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 18, 0, 1, 0, +/* 0x02a0 */ 124, 0, 0, 0, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, +/* 0x02b0 */ 0, 95,115,116, 97,114,116, 0,117, 99,108, 95,110,114,118, 50, +/* 0x02c0 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 0, +/* 0x02d0 */ 16, 0, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 1, 0, 0, 0, +/* 0x02e0 */ 0, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0, 0, 0, 0, 0, +/* 0x02f0 */ 18, 1, 0, 0, 3, 0, 0, 0,240,255,255,255,255,255,255,255, +/* 0x0300 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0310 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0320 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0330 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0340 */ 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0350 */ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, +/* 0x0360 */ 192, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0370 */ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0380 */ 27, 0, 0, 0, 4, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, +/* 0x0390 */ 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 0, 0, 0, 0, 0, 0, +/* 0x03a0 */ 48, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, +/* 0x03b0 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x03c0 */ 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x03d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, +/* 0x03e0 */ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x03f0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0400 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0410 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, +/* 0x0420 */ 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0430 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0440 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0450 */ 0, 0, 0, 0, 0, 0, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, +/* 0x0460 */ 120, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, +/* 0x0470 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x0480 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0490 */ 0, 0, 0, 0, 0, 0, 0, 0,176, 2, 0, 0, 0, 0, 0, 0, +/* 0x04a0 */ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x04b0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x04c0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, +/* 0x04d0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, +/* 0x04e0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, +/* 0x04f0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, +/* 0x0500 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, +/* 0x0510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, +/* 0x0520 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, +/* 0x0530 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, +/* 0x0540 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, +/* 0x0550 */ 32, 32, 32, 48, 49, 99, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x0560 */ 52, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x0570 */ 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, +/* 0x0580 */ 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x0590 */ 50, 48, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x05a0 */ 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, +/* 0x05b0 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x05c0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, +/* 0x05d0 */ 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, +/* 0x05e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x05f0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x0600 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, +/* 0x0610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, +/* 0x0620 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, +/* 0x0630 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x0640 */ 48, 48, 48, 48, 48, 55, 99, 32,103, 32, 32, 32, 32, 32, 70, 32, +/* 0x0650 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 49, 52, 52, 32,117, 99, +/* 0x0660 */ 108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101, +/* 0x0670 */ 115,115, 95, 51, 50, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x0680 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, +/* 0x0690 */ 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x06a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x06b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x06c0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x06d0 */ 48, 49, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, +/* 0x06e0 */ 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, +/* 0x06f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 99, 32, +/* 0x0700 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 68, 82, 95, 80, 82, +/* 0x0710 */ 69, 76, 95, 76, 79, 50, 49, 32, 32, 95,115,116, 97,114,116, 45, +/* 0x0720 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x0730 */ 49, 48, 10 +}; diff --git a/src/stub/arm64-linux.elf-so_fold.h b/src/stub/arm64-linux.elf-so_fold.h new file mode 100644 index 00000000..6a7ef59e --- /dev/null +++ b/src/stub/arm64-linux.elf-so_fold.h @@ -0,0 +1,933 @@ +/* arm64-linux.elf-so_fold.h + created from arm64-linux.elf-so_fold.bin, 14296 (0x37d8) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_ARM64_LINUX_ELF_SO_FOLD_SIZE 14296 +#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0xf0fea877 +#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0xfccd915e + +unsigned char stub_arm64_linux_elf_so_fold[14296] = { +/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,232, 35, 0, 0, 0, 0, 0, 0, +/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 21, 0, 18, 0, +/* 0x0040 */ 255, 7, 64,209,253,123,189,169,253, 3, 0,145,243, 83, 1,169, +/* 0x0050 */ 245, 19, 0,249,245, 3, 0, 42,244, 3, 1,170,243, 3, 2, 42, +/* 0x0060 */ 160,195, 0,145,226, 3, 19,170, 0, 0, 0,148,224, 3, 20,170, +/* 0x0070 */ 225, 3, 21, 42, 98, 0,128, 82, 67, 6,128, 82, 4, 0,128, 18, +/* 0x0080 */ 5, 0,128,210, 0, 0, 0,148,224, 3, 20,170,161,195, 0,145, +/* 0x0090 */ 226, 3, 19,170, 0, 0, 0,148,243, 83, 65,169,245, 19, 64,249, +/* 0x00a0 */ 253,123,195,168,255, 7, 64,145,192, 3, 95,214,255, 3, 10,209, +/* 0x00b0 */ 253,123,189,169,253, 3, 0,145,243, 83, 1,169,245, 19, 0,249, +/* 0x00c0 */ 5, 0, 0,148, 47,112,114,111, 99, 47,115,101,108,102, 47, 97, +/* 0x00d0 */ 117,120,118, 0,225, 3, 30,170, 0, 0,128, 82,226, 3, 0, 42, +/* 0x00e0 */ 227, 3, 0, 42, 0, 0, 0,148,245, 3, 0, 42,180,195, 0,145, +/* 0x00f0 */ 225, 3, 20,170, 2, 80,128,210, 0, 0, 0,148, 0,236,124,146, +/* 0x0100 */ 147, 2, 0,139,224, 3, 21, 42, 0, 0, 0,148,127, 2, 20,235, +/* 0x0110 */ 105, 2, 0, 84,160, 27, 64,249, 31, 24, 0,241,224, 0, 0, 84, +/* 0x0120 */ 161,195, 0,145, 9, 0, 0, 20, 34, 0, 64,249, 95, 24, 0,241, +/* 0x0130 */ 193, 0, 0, 84, 2, 0, 0, 20,161,195, 0,145, 32, 4, 64,249, +/* 0x0140 */ 224, 3, 0,203, 7, 0, 0, 20, 33, 64, 0,145,127, 2, 1,235, +/* 0x0150 */ 200,254,255, 84,224,255,129,146, 2, 0, 0, 20,224,255,129,146, +/* 0x0160 */ 243, 83, 65,169,245, 19, 64,249,253,123,195,168,255, 3, 10,145, +/* 0x0170 */ 192, 3, 95,214,253,123,191,169,253, 3, 0,145, 5, 4, 64,249, +/* 0x0180 */ 3, 0, 64,249,127, 0, 2,235,131, 0, 0, 84, 3, 0,128,210, +/* 0x0190 */ 130, 0, 0,181, 8, 0, 0, 20,224, 15,128, 82, 0, 0, 0,148, +/* 0x01a0 */ 164,104, 99, 56, 36,104, 35, 56, 99, 4, 0,145,127, 0, 2,235, +/* 0x01b0 */ 129,255,255, 84, 1, 4, 64,249, 33, 0, 2,139, 1, 4, 0,249, +/* 0x01c0 */ 1, 0, 64,249, 34, 0, 2,203, 2, 0, 0,249,253,123,193,168, +/* 0x01d0 */ 192, 3, 95,214,253,123,191,169,253, 3, 0,145, 0,124, 64,147, +/* 0x01e0 */ 0, 0, 0,148,224, 15,128, 82, 0, 0, 0,148,253,123,187,169, +/* 0x01f0 */ 253, 3, 0,145,243, 83, 1,169,245, 19, 0,249, 34, 0, 64,249, +/* 0x0200 */ 130, 8, 0,180,243, 3, 1,170,244, 3, 0,170,149, 1,128,210, +/* 0x0210 */ 224, 3, 20,170,161, 3, 1,145,226, 3, 21,170,214,255,255,151, +/* 0x0220 */ 161, 67, 64,185,129, 1, 0, 53,160, 10,138, 82, 0, 43,164,114, +/* 0x0230 */ 161, 71, 64,185, 63, 0, 0,107, 96, 0, 0, 84, 64, 0,128, 82, +/* 0x0240 */ 229,255,255,151,128, 2, 64,249, 64, 6, 0,180, 96, 0,128, 82, +/* 0x0250 */ 225,255,255,151,162, 71, 64,185, 98, 0, 0, 53,128, 0,128, 82, +/* 0x0260 */ 221,255,255,151, 63, 0, 2,107,163, 0, 0, 84,224, 3, 1, 42, +/* 0x0270 */ 99, 2, 64,249, 31, 0, 3,235,105, 0, 0, 84,160, 0,128, 82, +/* 0x0280 */ 213,255,255,151, 63, 0, 2,107,201, 2, 0, 84,160, 31, 0,249, +/* 0x0290 */ 128, 6, 64,249, 0, 48, 0,209, 97, 6, 64,249,162,227, 0,145, +/* 0x02a0 */ 0, 0, 0,148,160, 0, 0, 53,161, 67, 64,185,160, 31, 64,249, +/* 0x02b0 */ 63, 0, 0,235, 96, 0, 0, 84,224, 0,128, 82,198,255,255,151, +/* 0x02c0 */ 162, 71, 64,185,129, 6, 64,249, 33, 0, 2,139,129, 6, 0,249, +/* 0x02d0 */ 128, 2, 64,249, 0, 0, 2,203,128, 2, 0,249, 5, 0, 0, 20, +/* 0x02e0 */ 224, 3, 20,170, 97, 6, 64,249,226, 3, 2, 42,162,255,255,151, +/* 0x02f0 */ 163, 67, 64,185, 96, 6, 64,249, 0, 0, 3,139, 96, 6, 0,249, +/* 0x0300 */ 97, 2, 64,249, 33, 0, 3,203, 97, 2, 0,249, 33,248,255,181, +/* 0x0310 */ 243, 83, 65,169,245, 19, 64,249,253,123,197,168,192, 3, 95,214, +/* 0x0320 */ 253,123,179,169,253, 3, 0,145,243, 83, 1,169,245, 91, 2,169, +/* 0x0330 */ 247, 99, 3,169,249,107, 4,169,251,115, 5,169,234, 51, 0,253, +/* 0x0340 */ 247, 3, 0,170,161, 67, 0,249, 89,255,255,151,160, 63, 0,249, +/* 0x0350 */ 245, 2, 64,185,245, 2, 21,203,251, 10, 64,185,243, 14, 64,185, +/* 0x0360 */ 179, 2, 19,139,224, 6, 64,185,160, 2, 0,139, 10, 0,103,158, +/* 0x0370 */ 224, 2, 19, 75,244, 3, 0,170,160, 75, 0,249, 0, 0,128,210, +/* 0x0380 */ 225, 3, 20,170, 98, 0,128, 82, 67, 4,128, 82, 4, 0,128, 18, +/* 0x0390 */ 229, 3, 0,170, 0, 0, 0,148,246, 3, 0,170,160, 71, 0,249, +/* 0x03a0 */ 225, 3, 19,170,226, 3, 20,170, 0, 0, 0,148,211, 98, 0,145, +/* 0x03b0 */ 193, 26, 64,185,161, 99, 0,249,181,103, 0,249,224, 3, 21,170, +/* 0x03c0 */ 98, 0,128, 82, 0, 0, 0,148, 96, 6, 64,185, 0, 48, 0,145, +/* 0x03d0 */ 160, 91, 0,249,179, 95, 0,249,160,195, 2,145,161, 3, 3,145, +/* 0x03e0 */ 131,255,255,151,163,114, 64,121,179, 2, 1,145,227, 15, 0, 52, +/* 0x03f0 */ 96, 4, 0, 81, 2,228,122,211, 66, 12, 0,203, 66,224, 1,145, +/* 0x0400 */ 162, 2, 2,139,224, 3, 19,170, 20, 0,128, 82, 1,132, 67,184, +/* 0x0410 */ 63, 4, 0,113,148, 22,148, 26, 31, 0, 2,235,129,255,255, 84, +/* 0x0420 */ 159, 14, 0,113,118, 35,159,154, 99, 4, 0, 81, 96,228,122,211, +/* 0x0430 */ 3, 12, 3,203, 99,224, 1,145,186, 2, 3,139, 2, 0,128, 82, +/* 0x0440 */ 191, 79, 0,249,252,255,255,146,153, 1,128,210,160, 63, 64,249, +/* 0x0450 */ 247, 3, 32,170, 97, 2, 64,249,224, 3, 28,170, 64, 0,192,242, +/* 0x0460 */ 32, 0, 0,138, 31, 4, 0,241,129, 11, 0, 84, 88, 4, 0, 17, +/* 0x0470 */ 130, 0, 0, 53,226, 3, 24, 42,159, 10, 0,113,232, 10, 0, 84, +/* 0x0480 */ 96, 6, 64,249, 97, 3, 0,203,127, 3, 0,235, 54, 32,150,154, +/* 0x0490 */ 185, 91, 0,249,160,195, 2,145,161,131, 2,145,226, 3, 25,170, +/* 0x04a0 */ 53,255,255,151,160, 95, 64,249, 0, 48, 0,209,160, 95, 0,249, +/* 0x04b0 */ 97, 10, 64,249,193, 2, 1,139, 96, 22, 64,249, 0, 0, 22,203, +/* 0x04c0 */ 54, 0, 23,138, 33, 0, 22,203,161, 2, 1,139,161,103, 0,249, +/* 0x04d0 */ 0, 0, 22,139,160, 99, 0,249,226, 3, 22, 42,217,254,255,151, +/* 0x04e0 */ 160,103, 64,249, 22, 0, 22,139,182,103, 0,249,160,163, 64,185, +/* 0x04f0 */ 160, 99, 0,249,160,167, 64,185, 0, 48, 0,145,160, 91, 0,249, +/* 0x0500 */ 160,195, 2,145,161, 3, 3,145, 57,255,255,151,160, 79, 64,249, +/* 0x0510 */ 96, 4, 0,181, 96, 6, 64,185, 32, 4, 0, 54, 96, 2, 64,249, +/* 0x0520 */ 0,128, 64,146,225, 3, 0,178, 31, 0, 1,235,129, 3, 0, 84, +/* 0x0530 */ 97, 22, 64,249, 96, 10, 64,249, 98, 18, 64,249, 63, 0, 2,235, +/* 0x0540 */ 129, 5, 0, 84,162, 14, 0,145, 65, 0, 1,139, 32, 0, 0,139, +/* 0x0550 */ 0,244,126,146,225, 3, 0, 75,162,123, 64,185, 33, 0, 34, 10, +/* 0x0560 */ 63, 60, 0,113,105, 4, 0, 84,160, 79, 0,249, 33, 0,128, 82, +/* 0x0570 */ 1,128,186,114, 1, 0, 0,185, 65,124,143, 82, 33, 40,181,114, +/* 0x0580 */ 1, 4, 0,185, 1,252,128, 82, 65, 24,181,114, 1, 8, 0,185, +/* 0x0590 */ 1,120,128, 82,225,195,186,114, 1, 12, 0,185, 4, 0, 0,148, +/* 0x05a0 */ 64, 4, 2, 6, 1, 5, 3, 7, 0, 0, 0, 0,226, 3, 30,170, +/* 0x05b0 */ 96, 10, 64,249, 97, 6, 64,185, 33, 8, 64,146, 66,104, 97, 56, +/* 0x05c0 */ 160, 2, 0,139, 97, 22, 64,249, 66, 8, 0, 18, 0, 0, 0,148, +/* 0x05d0 */ 226, 3, 24, 42, 22, 0,128,210,115,226, 0,145,127, 2, 26,235, +/* 0x05e0 */ 161,243,255, 84, 30, 0, 0, 20,191, 79, 0,249, 28, 0, 0, 20, +/* 0x05f0 */ 0, 0,128,210, 1, 0,130,210, 98, 0,128, 82, 67, 4,128, 82, +/* 0x0600 */ 4, 0,128, 18,229, 3, 0,170, 0, 0, 0,148,225, 3, 0,170, +/* 0x0610 */ 160, 79, 0,249, 64,252,255,180, 32, 0,128, 82, 0,128,186,114, +/* 0x0620 */ 32, 0, 0,185, 64,124,143, 82, 32, 40,181,114, 32, 4, 0,185, +/* 0x0630 */ 0,252,128, 82, 64, 24,181,114, 32, 8, 0,185, 0,120,128, 82, +/* 0x0640 */ 224,195,186,114, 32, 12, 0,185,224, 3, 1,170, 1, 1,128,210, +/* 0x0650 */ 162, 0,128, 82, 0, 0, 0,148,209,255,255, 23,160, 71, 64,249, +/* 0x0660 */ 161, 75, 64,249, 0, 0, 0,148,162, 67, 64,249, 64, 0, 64,185, +/* 0x0670 */ 65, 4, 64,249, 66, 8, 64,249, 67, 1,102,158, 96, 0, 63,214, +/* 0x0680 */ 160, 79, 64,249,243, 83, 65,169,245, 91, 66,169,247, 99, 67,169, +/* 0x0690 */ 249,107, 68,169,251,115, 69,169,234, 51, 64,253,253,123,205,168, +/* 0x06a0 */ 192, 3, 95,214, 0, 0, 0,148,226, 3, 0,170,224, 7,193,168, +/* 0x06b0 */ 232, 26,128, 82, 64, 0, 31,214,225, 3, 0,170, 32, 20, 64, 56, +/* 0x06c0 */ 34, 20, 64, 56, 0, 32, 2, 42, 34, 20, 64, 56, 0, 64, 2, 42, +/* 0x06d0 */ 34, 20, 64, 56, 0, 96, 2, 42,192, 3, 95,214, 1, 0, 0,148, +/* 0x06e0 */ 224, 3, 30,170, 0, 0, 32,212,192, 3, 95,214,168, 11,128, 82, +/* 0x06f0 */ 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x0700 */ 8, 8,128, 82, 1, 0, 0,212,192, 3, 95,214, 8, 7,128, 82, +/* 0x0710 */ 1, 0, 0,212,192, 3, 95,214, 40, 7,128, 82, 1, 0, 0,212, +/* 0x0720 */ 192, 3, 95,214,104, 4,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x0730 */ 168, 21,128, 82, 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82, +/* 0x0740 */ 1, 0, 0,212,192, 3, 95,214,200, 9,128, 82, 1, 0, 0,212, +/* 0x0750 */ 192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x0760 */ 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214, 35, 0, 59,213, +/* 0x0770 */ 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,132, 32,194,154, +/* 0x0780 */ 130, 0, 0,138, 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213, +/* 0x0790 */ 66, 0, 4,203, 95, 0, 1,235,163,255,255, 84,159, 59, 3,213, +/* 0x07a0 */ 131, 1,232, 55, 99, 12, 64,146,100, 0,128,146,132, 32,195,154, +/* 0x07b0 */ 128, 0, 0,138, 31, 0, 1,235,162, 0, 0, 84, 32,117, 11,213, +/* 0x07c0 */ 0, 0, 4,203, 31, 0, 1,235,163,255,255, 84,159, 59, 3,213, +/* 0x07d0 */ 223, 63, 3,213,192, 3, 95,214, 68, 4,128, 82, 99, 0, 4, 42, +/* 0x07e0 */ 4, 0,128, 18, 5, 0,128,210,200, 27,128, 82, 1, 0, 0,212, +/* 0x07f0 */ 192, 3, 95,214, 0, 0,128, 82,192, 3, 95,214, 35, 20, 64, 56, +/* 0x0800 */ 3, 20, 0, 56, 66, 4, 0,241, 12, 0, 0, 84,192, 3, 95,214, +/* 0x0810 */ 1, 20, 0, 56, 66, 4, 0,241, 12, 0, 0, 84,192, 3, 95,214, +/* 0x0820 */ 224, 7,190,169,226,123, 1,169, 4, 32, 64, 57,227, 3, 2,170, +/* 0x0830 */ 226, 3, 1,170, 1, 4, 64,185, 0, 48, 0,145, 58, 0, 0,148, +/* 0x0840 */ 227, 3, 0,170,225,123, 65,169,226, 3,194,168, 33, 0, 64,249, +/* 0x0850 */ 224, 7,190,169,227, 11, 0,249, 67, 36, 64, 57, 66, 40, 64, 57, +/* 0x0860 */ 99, 2, 0, 52, 99, 28, 0, 18,127, 72, 1,113, 1, 2, 0, 84, +/* 0x0870 */ 33,124, 2, 83,192, 1, 0,180,161, 1, 0, 52, 33, 4, 0, 81, +/* 0x0880 */ 35,116, 30, 83, 2, 72, 99,184, 67,120, 26, 83,127, 20, 0,113, +/* 0x0890 */ 161, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 35,116, 30, 83, +/* 0x08a0 */ 2, 72, 35,184, 63, 0, 0,113,161,254,255, 84,224, 7,193,168, +/* 0x08b0 */ 33, 0, 0,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211, +/* 0x08c0 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235, +/* 0x08d0 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235, +/* 0x08e0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, +/* 0x08f0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235, +/* 0x0900 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235, +/* 0x0910 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 7, 65,248, +/* 0x0920 */ 192, 3, 95,214,227,135, 64,248, 3, 0, 3,203,224,135, 64,248, +/* 0x0930 */ 225,135, 64,248, 65, 0, 1,203,227,135, 64,248, 98, 0, 0,249, +/* 0x0940 */ 192, 3, 95,214,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139, +/* 0x0950 */ 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168, +/* 0x0960 */ 0, 0, 7,203, 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170, +/* 0x0970 */ 224, 3, 3,170, 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, +/* 0x0980 */ 98, 76, 80,211,100, 0,128,146,132, 32,194,154, 2, 0, 4,138, +/* 0x0990 */ 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, +/* 0x09a0 */ 63, 0, 2,235,168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, +/* 0x09b0 */ 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, +/* 0x09c0 */ 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, +/* 0x09d0 */ 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,223, 63, 3,213, +/* 0x09e0 */ 224, 3, 5,170,254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, +/* 0x09f0 */ 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58, +/* 0x0a00 */ 192, 3, 95,214, 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151, +/* 0x0a10 */ 162,255,255, 84, 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81, +/* 0x0a20 */ 243,255,255,151, 33, 0, 1, 26,241,255,255,151, 33, 0, 1, 26, +/* 0x0a30 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, +/* 0x0a40 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42, +/* 0x0a50 */ 101,248,255, 52,191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84, +/* 0x0a60 */ 3, 0, 0, 20,226,255,255,151, 66, 1, 0, 84, 33, 0,128, 82, +/* 0x0a70 */ 223,255,255,151,226, 0, 0, 84,221,255,255,151, 33, 0, 1, 26, +/* 0x0a80 */ 219,255,255,151,163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20, +/* 0x0a90 */ 215,255,255,151, 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49, +/* 0x0aa0 */ 33, 36,129, 26, 67, 64, 33,139, 99,240, 95, 56, 67,200,101, 56, +/* 0x0ab0 */ 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,212,255,255, 23, +/* 0x0ac0 */ 226, 15,190,169,254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18, +/* 0x0ad0 */ 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, +/* 0x0ae0 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, +/* 0x0af0 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211, +/* 0x0b00 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235, +/* 0x0b10 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235, +/* 0x0b20 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, +/* 0x0b30 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235, +/* 0x0b40 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235, +/* 0x0b50 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170, +/* 0x0b60 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52, +/* 0x0b70 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, +/* 0x0b80 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84, +/* 0x0b90 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151, +/* 0x0ba0 */ 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,239,255,255,151, +/* 0x0bb0 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, +/* 0x0bc0 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52, +/* 0x0bd0 */ 163, 0, 1, 83,165,124, 1, 83, 99, 0, 3, 43, 2, 0, 0, 20, +/* 0x0be0 */ 226,255,255,151, 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58, +/* 0x0bf0 */ 225, 0, 0, 84, 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58, +/* 0x0c00 */ 218,255,255,151,163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17, +/* 0x0c10 */ 191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56, +/* 0x0c20 */ 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,215,255,255, 23, +/* 0x0c30 */ 1, 64, 33,139,225, 11,190,169,227,123, 1,169, 5, 0,128, 18, +/* 0x0c40 */ 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, +/* 0x0c50 */ 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170, +/* 0x0c60 */ 224, 3, 3,170, 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, +/* 0x0c70 */ 98, 76, 80,211,100, 0,128,146,132, 32,194,154, 2, 0, 4,138, +/* 0x0c80 */ 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, +/* 0x0c90 */ 63, 0, 2,235,168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, +/* 0x0ca0 */ 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, +/* 0x0cb0 */ 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, +/* 0x0cc0 */ 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,223, 63, 3,213, +/* 0x0cd0 */ 224, 3, 5,170,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52, +/* 0x0ce0 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, +/* 0x0cf0 */ 33, 0,128, 82,240, 3, 30,170,248,255,255,151, 33, 0, 1, 58, +/* 0x0d00 */ 246,255,255,151,163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, +/* 0x0d10 */ 67, 20, 0, 56,241,255,255,151,162,255,255, 84,245,255,255,151, +/* 0x0d20 */ 35, 12, 0,113, 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56, +/* 0x0d30 */ 165, 32, 3, 42,229, 3, 37, 42,133,248,255, 52,231,255,255,151, +/* 0x0d40 */ 33, 0, 1, 58,229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84, +/* 0x0d50 */ 232,255,255,151, 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, +/* 0x0d60 */ 67,200,101, 56, 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84, +/* 0x0d70 */ 233,255,255, 23,159, 56, 0,113, 1, 0, 0, 84,226, 15,190,169, +/* 0x0d80 */ 253,123, 1,169,253, 3, 0,145, 8, 0, 64, 57, 7,192,128, 82, +/* 0x0d90 */ 8,125, 3, 83,231, 32,200, 26,231,192, 57, 17,232, 3, 0,145, +/* 0x0da0 */ 255, 67, 39,203,228, 3, 0,145,159,124,129,168,159, 0, 8,235, +/* 0x0db0 */ 195,255,255, 84,255,127,191,169,230, 3, 3,170,197, 0, 64,185, +/* 0x0dc0 */ 228, 3, 2,170,227, 35, 0,145, 34, 8, 0, 81,225, 3, 0,170, +/* 0x0dd0 */ 224, 3, 0,145, 39, 20, 64, 56,231, 8, 0, 18, 7, 8, 0, 57, +/* 0x0de0 */ 39, 20, 64, 56,232,124, 4, 83, 8, 4, 0, 57,231, 12, 0, 18, +/* 0x0df0 */ 7, 0, 0, 57, 35, 0, 0,148,191, 3, 0,145,229, 3, 0,170, +/* 0x0e00 */ 253,123, 65,169,224, 7,194,168, 33, 0, 64,249, 33, 0, 0,139, +/* 0x0e10 */ 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146, +/* 0x0e20 */ 132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84, +/* 0x0e30 */ 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84, +/* 0x0e40 */ 159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146, +/* 0x0e50 */ 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84, +/* 0x0e60 */ 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84, +/* 0x0e70 */ 159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,192, 3, 95,214, +/* 0x0e80 */ 255, 67, 1,209, 39, 0,128, 82, 17, 16, 0,145, 9,128,128, 82, +/* 0x0e90 */ 243, 83, 0,169,245, 91, 1,169,247, 99, 2,169,249,107, 3,169, +/* 0x0ea0 */ 251,115, 4,169, 20, 8, 64, 57, 19, 4, 64, 57, 22, 0, 64, 57, +/* 0x0eb0 */ 244, 32,212, 26,127, 0, 0,185,243, 32,211, 26,223, 0, 0,185, +/* 0x0ec0 */ 7, 0,128,210,148, 6, 0, 81, 8, 4, 64, 57, 10, 1, 22, 11, +/* 0x0ed0 */ 104, 6, 0, 81, 18, 1, 39, 30, 8, 96,128, 82, 8, 33,202, 26, +/* 0x0ee0 */ 8,217, 28, 49,160, 0, 0, 84, 41,122, 39,120,231, 4, 0,145, +/* 0x0ef0 */ 31, 1, 7,107,168,255,255, 84, 34, 64, 34,139, 63, 0, 2,235, +/* 0x0f00 */ 64, 16, 0, 84,235, 3, 1,170, 40, 4, 0,145,103, 85, 64, 56, +/* 0x0f10 */ 31, 1, 2,235,160, 15, 0, 84, 9, 21, 64, 56, 31, 1, 11,235, +/* 0x0f20 */ 39, 33, 7, 42, 97,255,255, 84,229, 69, 0, 52, 8, 1,128, 82, +/* 0x0f30 */ 53, 0,128, 82, 18, 0,128, 82, 9, 0,128, 18, 20, 1, 39, 30, +/* 0x0f40 */ 104, 0,128, 82,177, 2, 39, 30,247, 3, 21, 42, 7, 1, 39, 30, +/* 0x0f50 */ 8, 86,128,210,165, 2, 39, 30,252, 3, 21, 42, 3, 1,103,158, +/* 0x0f60 */ 104, 1,128, 82,234, 3, 18, 42,240, 3, 18, 42, 0, 1, 39, 30, +/* 0x0f70 */ 8,176, 41,145, 14,224,191, 18, 15, 0,129, 82, 1, 1,103,158, +/* 0x0f80 */ 40, 1,128, 82, 2, 1, 39, 30,136, 2, 38, 30, 8, 1, 22, 75, +/* 0x0f90 */ 16, 1, 39, 30, 72,110, 28, 83, 63, 1, 14,107, 25, 2, 20, 10, +/* 0x0fa0 */ 13,125, 64,147,173,193, 57,139,173,249,127,211,232, 0, 0, 84, +/* 0x0fb0 */ 127, 1, 2,235,160, 10, 0, 84,104, 1, 64, 57, 41, 93, 24, 83, +/* 0x0fc0 */ 107, 5, 0,145, 7, 33, 7, 42, 59,106,109,120, 40,125, 11, 83, +/* 0x0fd0 */ 8,125, 27, 27,255, 0, 8,107,130, 10, 0, 84, 73, 2, 38, 30, +/* 0x0fe0 */ 19, 62, 1, 14, 95, 26, 0,113, 12, 2, 9, 10, 73, 41,211, 26, +/* 0x0ff0 */ 140, 33,214, 26,234, 1, 27, 75, 41, 1, 12, 11,106, 23,138, 11, +/* 0x1000 */ 42,106, 45,120, 41, 5, 9, 11, 41, 93,120,211, 41,217, 28,145, +/* 0x1010 */ 58, 6, 9,139,109, 31, 0, 84, 10, 2, 28, 75, 41, 0,128, 82, +/* 0x1020 */ 153,104,106, 56, 7, 0, 0, 20, 91,107, 42,120, 41,121, 31, 83, +/* 0x1030 */ 232, 3, 13, 42, 83, 57, 0, 53, 63,253, 3,113,236, 3, 0, 84, +/* 0x1040 */ 57,123, 31, 83, 31, 1, 14,107, 51, 3, 24, 18, 56,121, 31, 83, +/* 0x1050 */ 106,126, 64,147, 74, 1, 4,145, 74,193, 41,139, 74,249,127,211, +/* 0x1060 */ 232, 0, 0, 84,127, 1, 2,235, 8, 93, 24, 83,224, 4, 0, 84, +/* 0x1070 */ 108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42, 76,107,106,120, +/* 0x1080 */ 13,125, 11, 83,251, 1, 12, 75,173,125, 12, 27,155, 21,155, 11, +/* 0x1090 */ 140, 21, 76, 75,255, 0, 13,107, 8, 1, 13, 75, 99,252,255, 84, +/* 0x10a0 */ 76,107, 42,120, 9, 7, 0, 17,231, 0, 13, 75,115,252,255, 53, +/* 0x10b0 */ 63,253, 3,113, 77, 27, 0, 84, 42, 29, 0, 83,233, 3, 8, 42, +/* 0x10c0 */ 138, 72, 48, 56, 16, 6, 0, 17, 95, 38, 0,113,236, 49, 0, 84, +/* 0x10d0 */ 82, 14, 0, 81,191, 0, 16,107,232,245,255, 84, 0,224,191, 18, +/* 0x10e0 */ 63, 1, 0,107,136, 0, 0, 84,127, 1, 2,235,224, 0, 0, 84, +/* 0x10f0 */ 107, 5, 0,145, 97, 1, 1,203, 97, 0, 0,185,208, 0, 0,185, +/* 0x1100 */ 0, 0,128, 82, 2, 0, 0, 20, 32, 0,128, 82,243, 83, 64,169, +/* 0x1110 */ 245, 91, 65,169,247, 99, 66,169,249,107, 67,169,251,115, 68,169, +/* 0x1120 */ 255, 67, 1,145,192, 3, 95,214, 58, 1, 8, 75, 74,126, 64,147, +/* 0x1130 */ 105, 23, 91, 75, 95, 3, 14,107, 41,106, 45,120, 76, 1, 3,145, +/* 0x1140 */ 231, 0, 8, 75,140,249,127,211,232, 0, 0, 84,127, 1, 2,235, +/* 0x1150 */ 192,253,255, 84,104, 1, 64, 57, 90, 95, 24, 83,107, 5, 0,145, +/* 0x1160 */ 7, 33, 7, 42, 40,106,108,120, 74,127, 11, 83, 74,125, 8, 27, +/* 0x1170 */ 255, 0, 10,107,130, 25, 0, 84,237, 0, 38, 30,233, 1, 8, 75, +/* 0x1180 */ 95, 30, 0,113, 53, 2, 38, 30, 8, 21,137, 11,241, 2, 39, 30, +/* 0x1190 */ 40,106, 44,120,242,179,141, 26, 12,160, 25,145,247, 3, 28, 42, +/* 0x11a0 */ 95, 1, 14,107,232, 0, 0, 84,127, 1, 2,235,224,250,255, 84, +/* 0x11b0 */ 104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42, +/* 0x11c0 */ 141, 1, 64,121, 73,125, 11, 83, 41,125, 13, 27,255, 0, 9,107, +/* 0x11d0 */ 98, 31, 0, 84, 40,115, 29, 83,115, 0,128, 82,234, 1, 13, 75, +/* 0x11e0 */ 8,125, 64,147, 8, 9, 0,145,173, 21,138, 11,228, 3, 39, 30, +/* 0x11f0 */ 141, 1, 0,121,102, 2, 39, 30,153, 5, 8,139,218, 0, 38, 30, +/* 0x1200 */ 44, 0,128, 82, 6, 0, 0, 20, 13, 3, 0,121, 90, 7, 0,113, +/* 0x1210 */ 140,121, 31, 83,233, 3, 8, 42, 32, 3, 0, 84, 63, 1, 14,107, +/* 0x1220 */ 147,121, 31, 83, 56,199, 44,139,232, 0, 0, 84,127, 1, 2,235, +/* 0x1230 */ 41, 93, 24, 83,160,246,255, 84,104, 1, 64, 57,107, 5, 0,145, +/* 0x1240 */ 7, 33, 7, 42, 8, 3, 64,121, 42,125, 11, 83,237, 1, 8, 75, +/* 0x1250 */ 27, 21, 72, 75, 13, 21,141, 11, 72,125, 8, 27,255, 0, 8,107, +/* 0x1260 */ 41, 1, 8, 75, 35,253,255, 84, 27, 3, 0,121, 90, 7, 0,113, +/* 0x1270 */ 231, 0, 8, 75,108, 6, 0, 17, 33,253,255, 84,166, 68,166, 46, +/* 0x1280 */ 138, 0, 38, 30, 95, 14, 0,113,200, 0, 38, 30, 72, 1, 8, 75, +/* 0x1290 */ 8, 1, 12, 11, 6, 1, 39, 30,236, 22, 0, 84,234, 0, 38, 30, +/* 0x12a0 */ 31, 13, 0,113,220, 0,128, 82, 10,209,138, 26, 40, 0,128, 82, +/* 0x12b0 */ 74,101, 26, 83, 74,125, 64,147, 74,193, 6,145, 91,249,127,211, +/* 0x12c0 */ 6, 0, 0, 20, 44,106, 57,120,156, 7, 0,113, 8,121, 31, 83, +/* 0x12d0 */ 233, 3, 10, 42, 32, 3, 0, 84, 63, 1, 14,107, 19,121, 31, 83, +/* 0x12e0 */ 121,199, 40,139,232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83, +/* 0x12f0 */ 192,240,255, 84,106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42, +/* 0x1300 */ 42,106,121,120, 45,125, 11, 83,236, 1, 10, 75, 90, 21, 74, 75, +/* 0x1310 */ 76, 21,140, 11,170,125, 10, 27,255, 0, 10,107, 41, 1, 10, 75, +/* 0x1320 */ 35,253,255, 84, 58,106, 57,120,156, 7, 0,113,231, 0, 10, 75, +/* 0x1330 */ 104, 6, 0, 17, 33,253,255, 84, 10, 1, 1, 81, 95, 13, 0,113, +/* 0x1340 */ 45, 17, 0, 84, 95, 53, 0,113, 72, 1, 0, 18, 77,125, 1, 19, +/* 0x1350 */ 12, 1, 31, 50,140, 32, 0, 84,104, 0,102,158,187, 5, 0, 81, +/* 0x1360 */ 152, 33,219, 26, 8,193, 42,203, 8, 65, 56,139, 40, 6, 8,139, +/* 0x1370 */ 8, 9, 0,209, 19, 1,103,158, 40, 0,128, 82,252, 3, 8, 42, +/* 0x1380 */ 7, 0, 0, 20, 83, 3, 0,121, 8,121, 31, 83,233, 3, 10, 42, +/* 0x1390 */ 123, 7, 0,113,156,123, 31, 83,128, 14, 0, 84,106, 2,102,158, +/* 0x13a0 */ 63, 1, 14,107, 25,121, 31, 83, 90,197, 40,139,232, 0, 0, 84, +/* 0x13b0 */ 127, 1, 2,235, 41, 93, 24, 83,128,234,255, 84,106, 1, 64, 57, +/* 0x13c0 */ 107, 5, 0,145, 71, 33, 7, 42, 74, 3, 64,121, 45,125, 11, 83, +/* 0x13d0 */ 243, 1, 10, 75, 76, 21, 74, 75, 83, 21,147, 11,170,125, 10, 27, +/* 0x13e0 */ 255, 0, 10,107, 41, 1, 10, 75,227,252,255, 84, 76, 3, 0,121, +/* 0x13f0 */ 24, 3, 28, 42,231, 0, 10, 75, 40, 7, 0, 17,229,255,255, 23, +/* 0x1400 */ 41, 0,128, 82, 6, 0, 0, 20, 41,121, 31, 83, 74,107, 56,120, +/* 0x1410 */ 63,253, 3,113,232, 3, 12, 42, 44, 3, 0, 84, 31, 1, 14,107, +/* 0x1420 */ 51,121, 31, 83, 56,125,127,147,232, 0, 0, 84,127, 1, 2,235, +/* 0x1430 */ 8, 93, 24, 83,160,230,255, 84,106, 1, 64, 57,107, 5, 0,145, +/* 0x1440 */ 71, 33, 7, 42, 74,107,120,120, 12,125, 11, 83,237, 1, 10, 75, +/* 0x1450 */ 140,125, 10, 27, 89, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107, +/* 0x1460 */ 8, 1, 12, 75, 35,253,255, 84,105, 6, 0, 17, 89,107, 56,120, +/* 0x1470 */ 63,253, 3,113,231, 0, 12, 75, 45,253,255, 84, 42, 29, 0, 83, +/* 0x1480 */ 95, 14, 0,113,138, 72, 48, 56,233, 3, 8, 42, 16, 6, 0, 17, +/* 0x1490 */ 204,225,255, 84,191, 0, 16,107, 18, 0,128, 82,200,215,255, 84, +/* 0x14a0 */ 15,255,255, 23, 73, 3, 10, 75, 8, 21, 72, 75, 63, 1, 14,107, +/* 0x14b0 */ 40,106, 44,120,231, 0, 10, 75,154, 97, 0,145,232, 0, 0, 84, +/* 0x14c0 */ 127, 1, 2,235, 32,226,255, 84,104, 1, 64, 57, 41, 93, 24, 83, +/* 0x14d0 */ 107, 5, 0,145, 7, 33, 7, 42, 40,106,122,120, 42,125, 11, 83, +/* 0x14e0 */ 74,125, 8, 27,255, 0, 10,107, 66, 10, 0, 84,233, 1, 8, 75, +/* 0x14f0 */ 95, 1, 14,107,173,129, 7,145, 8, 21,137, 11, 40,106, 58,120, +/* 0x1500 */ 232, 0, 0, 84,127, 1, 2,235, 0,224,255, 84,104, 1, 64, 57, +/* 0x1510 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42, 40,106,109,120, +/* 0x1520 */ 73,125, 11, 83, 41,125, 8, 27,255, 0, 9,107,226, 16, 0, 84, +/* 0x1530 */ 234, 1, 8, 75, 8, 21,138, 11, 40,106, 45,120,112,222,255, 52, +/* 0x1540 */ 74, 0, 38, 30, 8, 2, 28, 75, 12, 0, 38, 30, 95, 30, 0,113, +/* 0x1550 */ 82,177,140, 26,138,104,104, 56,138, 72, 48, 56, 16, 6, 0, 17, +/* 0x1560 */ 221,254,255, 23,248, 3, 10, 42, 28, 7, 0, 49,128,219,255, 84, +/* 0x1570 */ 82, 30, 0, 17,200, 0, 38, 30,159, 3, 16,107, 12, 9, 0, 17, +/* 0x1580 */ 72,220,255, 84,232, 3, 16, 42, 2, 0, 0, 20, 76,218,255, 52, +/* 0x1590 */ 10, 2, 28, 75, 16, 6, 0, 17, 31, 2, 5,107,140, 5, 0, 81, +/* 0x15a0 */ 138,104,106, 56,138, 72, 40, 56,232, 3, 16, 42, 3,255,255, 84, +/* 0x15b0 */ 191, 0, 16,107, 8,207,255, 84,201,254,255, 23, 74, 1, 9, 75, +/* 0x15c0 */ 173, 21, 77, 75, 95, 1, 14,107,141, 1, 0,121,231, 0, 9, 75, +/* 0x15d0 */ 232, 0, 0, 84,127, 1, 2,235,128,217,255, 84,104, 1, 64, 57, +/* 0x15e0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,141, 5, 64,121, +/* 0x15f0 */ 73,125, 11, 83, 41,125, 13, 27,255, 0, 9,107, 34, 7, 0, 84, +/* 0x1600 */ 40,115, 29, 83, 19, 1,128, 82,234, 1, 13, 75, 8,125, 64,147, +/* 0x1610 */ 100, 2, 39, 30, 8, 9, 2,145,115, 0,128, 82,173, 21,138, 11, +/* 0x1620 */ 153, 5, 8,139,141, 5, 0,121,102, 2, 39, 30,244,254,255, 23, +/* 0x1630 */ 41, 1, 10, 75, 8, 21, 72, 75, 63, 1, 14,107, 40,106, 58,120, +/* 0x1640 */ 231, 0, 10, 75,154,193, 0,145,232, 0, 0, 84,127, 1, 2,235, +/* 0x1650 */ 192,213,255, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145, +/* 0x1660 */ 7, 33, 7, 42, 45,106,122,120, 40,125, 11, 83, 10,125, 13, 27, +/* 0x1670 */ 255, 0, 10,107, 35, 5, 0, 84, 41, 1, 10, 75,173, 21, 77, 75, +/* 0x1680 */ 63, 1, 14,107, 45,106, 58,120,231, 0, 10, 75,140, 33, 1,145, +/* 0x1690 */ 232, 0, 0, 84,127, 1, 2,235,128,211,255, 84,104, 1, 64, 57, +/* 0x16a0 */ 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42, 45,106,108,120, +/* 0x16b0 */ 40,125, 11, 83, 10,125, 13, 27,255, 0, 10,107, 2, 8, 0, 84, +/* 0x16c0 */ 232, 1, 13, 75,233, 3, 28, 42, 60, 2, 38, 30,173, 21,136, 11, +/* 0x16d0 */ 45,106, 44,120,241, 2, 39, 30,247, 3, 9, 42, 21, 0, 0, 20, +/* 0x16e0 */ 8, 2,128, 82,231, 0, 9, 75,173, 21, 77, 75,153, 17, 8,145, +/* 0x16f0 */ 4, 1, 39, 30, 8, 1,128, 82,141, 5, 0,121, 73, 1, 9, 75, +/* 0x1700 */ 6, 1, 39, 30,190,254,255, 23,191, 0, 16,107, 82, 26, 0, 81, +/* 0x1710 */ 40,196,255, 84,114,254,255, 23,232, 1, 13, 75,233, 3, 28, 42, +/* 0x1720 */ 252, 3, 23, 42,247, 3, 9, 42,173, 21,136, 11, 45,106, 58,120, +/* 0x1730 */ 136, 2, 38, 30, 95, 30, 0,113, 9, 0, 38, 30, 44, 0,102,158, +/* 0x1740 */ 18,177,137, 26,151,254,255, 23, 8, 21, 72, 75, 74, 1, 9, 75, +/* 0x1750 */ 231, 0, 9, 75, 40,106, 45,120,246,255,255, 23,232, 3, 13, 42, +/* 0x1760 */ 84,254,255, 23,170, 21, 0, 81, 63, 1, 14,107,140,121, 31, 83, +/* 0x1770 */ 232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83, 96,204,255, 84, +/* 0x1780 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42, 41,125, 1, 83, +/* 0x1790 */ 255, 0, 9,107, 99, 0, 0, 84,231, 0, 9, 75,140, 1, 0, 50, +/* 0x17a0 */ 74, 5, 0,113, 33,254,255, 84, 8, 32, 25,145,152,109, 28, 83, +/* 0x17b0 */ 155, 0,128, 82, 19, 1,103,158,240,254,255, 23,232, 3, 28, 42, +/* 0x17c0 */ 231, 0, 10, 75,173, 21, 77, 75,252, 3, 21, 42, 45,106, 44,120, +/* 0x17d0 */ 42, 1, 10, 75, 53, 2, 38, 30,241, 2, 39, 30,247, 3, 8, 42, +/* 0x17e0 */ 212,255,255, 23,240, 3, 5, 42,227, 19,189,169,229, 27, 1,169, +/* 0x17f0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170, +/* 0x1800 */ 142, 64, 37,139, 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57, +/* 0x1810 */ 4, 8, 64, 57,174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26, +/* 0x1820 */ 229, 3, 37, 42,228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, +/* 0x1830 */ 34, 0,128, 82, 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82, +/* 0x1840 */ 230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, +/* 0x1850 */ 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, +/* 0x1860 */ 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, +/* 0x1870 */ 0, 21, 0,145,232, 0, 0,148, 31, 0, 8,235,193,255,255, 84, +/* 0x1880 */ 227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10, +/* 0x1890 */ 224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145,226, 0, 0,148, +/* 0x18a0 */ 161, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10, +/* 0x18b0 */ 224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, +/* 0x18c0 */ 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11, +/* 0x18d0 */ 227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, +/* 0x18e0 */ 35, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 37,105, 99, 56, +/* 0x18f0 */ 165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, +/* 0x1900 */ 33, 4, 3,139,202, 0, 0,148, 3, 0, 0, 18,130,124, 8, 83, +/* 0x1910 */ 127, 0, 2,107,193, 0, 0, 84, 31, 0, 4,113,163,254,255, 84, +/* 0x1920 */ 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113, +/* 0x1930 */ 163,255,255, 84, 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, +/* 0x1940 */ 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, +/* 0x1950 */ 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84, +/* 0x1960 */ 227, 11, 64,185,226, 7, 64,185,227, 15, 0,185,226, 11, 0,185, +/* 0x1970 */ 239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82, +/* 0x1980 */ 102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145, +/* 0x1990 */ 164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, +/* 0x19a0 */ 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82, +/* 0x19b0 */ 223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, +/* 0x19c0 */ 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84,227,125, 64,147, +/* 0x19d0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, +/* 0x19e0 */ 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, +/* 0x19f0 */ 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84, +/* 0x1a00 */ 227, 11, 64,185,228, 15, 64,185,227, 15, 0,185,227, 7, 64,185, +/* 0x1a10 */ 227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82, +/* 0x1a20 */ 223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,106,161, 41,145, +/* 0x1a30 */ 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, +/* 0x1a40 */ 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, +/* 0x1a50 */ 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, +/* 0x1a60 */ 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, +/* 0x1a70 */ 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, +/* 0x1a80 */ 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, +/* 0x1a90 */ 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107, +/* 0x1aa0 */ 163,255,255, 84,229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185, +/* 0x1ab0 */ 223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82, +/* 0x1ac0 */ 191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139, +/* 0x1ad0 */ 165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, +/* 0x1ae0 */ 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84,227, 47, 0,185, +/* 0x1af0 */ 127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81, +/* 0x1b00 */ 111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84, +/* 0x1b10 */ 239, 33,196, 26,106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, +/* 0x1b20 */ 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148, +/* 0x1b30 */ 231,124, 1, 83,131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26, +/* 0x1b40 */ 132, 4, 0,113, 65,255,255, 84,106, 17, 25,145,239,109, 28, 83, +/* 0x1b50 */ 132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, +/* 0x1b60 */ 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42, +/* 0x1b70 */ 165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20, +/* 0x1b80 */ 239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248, +/* 0x1b90 */ 165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84, +/* 0x1ba0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, +/* 0x1bb0 */ 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84, +/* 0x1bc0 */ 224,115, 0, 57, 63, 1, 14,235,195,229,255, 84, 13, 0, 0,148, +/* 0x1bd0 */ 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, +/* 0x1be0 */ 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, +/* 0x1bf0 */ 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82,246,255,255, 23, +/* 0x1c00 */ 227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, +/* 0x1c10 */ 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214, +/* 0x1c20 */ 224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139, +/* 0x1c30 */ 227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, +/* 0x1c40 */ 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, +/* 0x1c50 */ 2, 1, 0, 84,231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, +/* 0x1c60 */ 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214, +/* 0x1c70 */ 140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, +/* 0x1c80 */ 35, 0, 0,121, 32, 2, 95,214, 0, 46,115,121,109,116, 97, 98, +/* 0x1c90 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, +/* 0x1ca0 */ 97, 98, 0, 46,114,101,108, 97, 83, 79, 95, 77, 65, 73, 78, 0, +/* 0x1cb0 */ 46,114,101,108, 97, 83, 79, 95, 72, 69, 65, 68, 0,112,116,114, +/* 0x1cc0 */ 95, 78, 69, 88, 84, 0, 46,114,101,108, 97, 83, 79, 95, 84, 65, +/* 0x1cd0 */ 73, 76, 0, 69, 88, 80, 95, 72, 69, 65, 68, 0, 69, 88, 80, 95, +/* 0x1ce0 */ 84, 65, 73, 76, 0, 78, 82, 86, 50, 69, 0, 78, 82, 86, 50, 68, +/* 0x1cf0 */ 0, 78, 82, 86, 50, 66, 0, 46,114,101,108, 97, 76, 90, 77, 65, +/* 0x1d00 */ 95, 69, 76, 70, 48, 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x1d10 */ 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 0, 76, 90, 77, +/* 0x1d20 */ 65, 95, 68, 69, 67, 51, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d40 */ 0, 0, 0, 0, 3, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, +/* 0x1d60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d70 */ 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1d80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0, +/* 0x1d90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1da0 */ 0, 0, 0, 0, 3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1db0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 8, 0, +/* 0x1dc0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1dd0 */ 0, 0, 0, 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1de0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 10, 0, +/* 0x1df0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e00 */ 0, 0, 0, 0, 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 12, 0, +/* 0x1e20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e30 */ 0, 0, 0, 0, 3, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 15, 0, +/* 0x1e50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e60 */ 0, 0, 0, 0, 3, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e70 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 6, 0, +/* 0x1e80 */ 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1e90 */ 20, 0, 0, 0, 16, 0, 3, 0, 20, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ea0 */ 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 8, 0, +/* 0x1eb0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ec0 */ 34, 0, 0, 0, 16, 0, 6, 0,112, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ed0 */ 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 16, 0, 6, 0, +/* 0x1ee0 */ 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ef0 */ 56, 0, 0, 0, 16, 0, 6, 0, 76, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f00 */ 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 16, 0, 6, 0, +/* 0x1f10 */ 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f20 */ 70, 0, 0, 0, 16, 0, 6, 0,100, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f30 */ 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 16, 0, 6, 0, +/* 0x1f40 */ 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f50 */ 84, 0, 0, 0, 18, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f60 */ 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 16, 0, 6, 0, +/* 0x1f70 */ 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f80 */ 102, 0, 0, 0, 16, 0, 6, 0, 28, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f90 */ 0, 0, 0, 0, 0, 0, 0, 0,108, 0, 0, 0, 16, 0, 6, 0, +/* 0x1fa0 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fb0 */ 117, 0, 0, 0, 18, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fc0 */ 112, 1, 0, 0, 0, 0, 0, 0,141, 0, 0, 0, 16, 0, 6, 0, +/* 0x1fd0 */ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fe0 */ 146, 0, 0, 0, 16, 0, 6, 0, 44, 1, 0, 0, 0, 0, 0, 0, +/* 0x1ff0 */ 0, 0, 0, 0, 0, 0, 0, 0,153, 0, 0, 0, 18, 0, 12, 0, +/* 0x2000 */ 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, +/* 0x2010 */ 177, 0, 0, 0, 16, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2020 */ 0, 0, 0, 0, 0, 0, 0, 0,185, 0, 0, 0, 16, 0, 6, 0, +/* 0x2030 */ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2040 */ 190, 0, 0, 0, 16, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2050 */ 0, 0, 0, 0, 0, 0, 0, 0,201, 0, 0, 0, 16, 0, 6, 0, +/* 0x2060 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2070 */ 205, 0, 0, 0, 16, 0, 6, 0, 40, 0, 0, 0, 0, 0, 0, 0, +/* 0x2080 */ 0, 0, 0, 0, 0, 0, 0, 0,212, 0, 0, 0, 18, 0, 10, 0, +/* 0x2090 */ 0, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, +/* 0x20a0 */ 236, 0, 0, 0, 16, 0, 6, 0,124, 0, 0, 0, 0, 0, 0, 0, +/* 0x20b0 */ 0, 0, 0, 0, 0, 0, 0, 0,245, 0, 0, 0, 16, 0, 6, 0, +/* 0x20c0 */ 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x20d0 */ 251, 0, 0, 0, 18, 0, 1, 0,224, 2, 0, 0, 0, 0, 0, 0, +/* 0x20e0 */ 132, 3, 0, 0, 0, 0, 0, 0, 0, 95, 95,115,121,110, 99, 95, +/* 0x20f0 */ 99, 97, 99,104,101, 95,114, 97,110,103,101, 0,103,101,116, 52, +/* 0x2100 */ 0,102, 95,101,120,112, 97,110,100, 0,109,117,110,109, 97,112, +/* 0x2110 */ 0,103,101,116, 95,115,121,115, 95,109,117,110,109, 97,112, 0, +/* 0x2120 */ 103,101,116,112,105,100, 0,109,101,109, 99,112,121, 0,114,101, +/* 0x2130 */ 97,100,108,105,110,107, 0,109,109, 97,112, 0,101,111,102, 0, +/* 0x2140 */ 109,109, 97,112, 95,112,114,105,118, 97,110,111,110, 0,119,114, +/* 0x2150 */ 105,116,101, 0,117,110,108,105,110,107, 97,116, 0,117, 99,108, +/* 0x2160 */ 95,110,114,118, 50,100, 95,100,101, 99,111,109,112,114,101,115, +/* 0x2170 */ 115, 95, 51, 50, 0,114,101, 97,100, 0,109,101,109,115,101,116, +/* 0x2180 */ 0,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109, +/* 0x2190 */ 112,114,101,115,115, 95, 51, 50, 0,109,121, 95, 98,107,112,116, +/* 0x21a0 */ 0,101,120,105,116, 0, 76,122,109, 97, 68,101, 99,111,100,101, +/* 0x21b0 */ 0, 98,114,107, 0,111,112,101,110, 97,116, 0,117, 99,108, 95, +/* 0x21c0 */ 110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115,115, +/* 0x21d0 */ 95, 51, 50, 0,109,112,114,111,116,101, 99,116, 0, 99,108,111, +/* 0x21e0 */ 115,101, 0,117,112,120, 95,115,111, 95,109, 97,105,110, 0, 0, +/* 0x21f0 */ 40, 0, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 20, 0, 0, 0, +/* 0x2200 */ 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, +/* 0x2210 */ 27, 1, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2220 */ 84, 0, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 20, 0, 0, 0, +/* 0x2230 */ 0, 0, 0, 0, 0, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, +/* 0x2240 */ 27, 1, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2250 */ 184, 0, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 28, 0, 0, 0, +/* 0x2260 */ 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0, 0, 0, 0, 0, +/* 0x2270 */ 27, 1, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2280 */ 92, 1, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 32, 0, 0, 0, +/* 0x2290 */ 0, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, +/* 0x22a0 */ 27, 1, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22b0 */ 168, 1, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 32, 0, 0, 0, +/* 0x22c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, +/* 0x22d0 */ 27, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22e0 */ 84, 3, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 22, 0, 0, 0, +/* 0x22f0 */ 0, 0, 0, 0, 0, 0, 0, 0,104, 3, 0, 0, 0, 0, 0, 0, +/* 0x2300 */ 27, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2310 */ 132, 3, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 37, 0, 0, 0, +/* 0x2320 */ 0, 0, 0, 0, 0, 0, 0, 0,140, 5, 0, 0, 0, 0, 0, 0, +/* 0x2330 */ 27, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2340 */ 200, 5, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 22, 0, 0, 0, +/* 0x2350 */ 0, 0, 0, 0, 0, 0, 0, 0, 20, 6, 0, 0, 0, 0, 0, 0, +/* 0x2360 */ 27, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2370 */ 36, 6, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 17, 0, 0, 0, +/* 0x2380 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2390 */ 27, 1, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23a0 */ 36, 1, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, 20, 0, 0, 0, +/* 0x23b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 0, 0, +/* 0x23c0 */ 24, 1, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23d0 */ 4, 0, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0, +/* 0x23e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2400 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2410 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2420 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, +/* 0x2430 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2440 */ 64, 0, 0, 0, 0, 0, 0, 0,100, 6, 0, 0, 0, 0, 0, 0, +/* 0x2450 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, +/* 0x2460 */ 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, +/* 0x2470 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2480 */ 240, 33, 0, 0, 0, 0, 0, 0,152, 1, 0, 0, 0, 0, 0, 0, +/* 0x2490 */ 19, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x24a0 */ 24, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 1, 0, 0, 0, +/* 0x24b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x24c0 */ 164, 6, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, +/* 0x24d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x24e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 4, 0, 0, 0, +/* 0x24f0 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2500 */ 136, 35, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x2510 */ 19, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x2520 */ 24, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 1, 0, 0, 0, +/* 0x2530 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2540 */ 220, 6, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x2550 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2560 */ 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 1, 0, 0, 0, +/* 0x2570 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2580 */ 228, 6, 0, 0, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, +/* 0x2590 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x25a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 4, 0, 0, 0, +/* 0x25b0 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x25c0 */ 160, 35, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, +/* 0x25d0 */ 19, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x25e0 */ 24, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 1, 0, 0, 0, +/* 0x25f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2600 */ 32, 8, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, +/* 0x2610 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2620 */ 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 1, 0, 0, 0, +/* 0x2630 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2640 */ 36, 9, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, +/* 0x2650 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2660 */ 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 1, 0, 0, 0, +/* 0x2670 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2680 */ 68, 9, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, +/* 0x2690 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x26a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 1, 0, 0, 0, +/* 0x26b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x26c0 */ 192, 10, 0, 0, 0, 0, 0, 0,112, 1, 0, 0, 0, 0, 0, 0, +/* 0x26d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x26e0 */ 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 1, 0, 0, 0, +/* 0x26f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2700 */ 48, 12, 0, 0, 0, 0, 0, 0, 68, 1, 0, 0, 0, 0, 0, 0, +/* 0x2710 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2720 */ 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 1, 0, 0, 0, +/* 0x2730 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2740 */ 116, 13, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, +/* 0x2750 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2760 */ 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 4, 0, 0, 0, +/* 0x2770 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2780 */ 208, 35, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +/* 0x2790 */ 19, 0, 0, 0, 13, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x27a0 */ 24, 0, 0, 0, 0, 0, 0, 0,127, 0, 0, 0, 1, 0, 0, 0, +/* 0x27b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x27c0 */ 128, 14, 0, 0, 0, 0, 0, 0,104, 9, 0, 0, 0, 0, 0, 0, +/* 0x27d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x27e0 */ 0, 0, 0, 0, 0, 0, 0, 0,138, 0, 0, 0, 1, 0, 0, 0, +/* 0x27f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2800 */ 232, 23, 0, 0, 0, 0, 0, 0,160, 4, 0, 0, 0, 0, 0, 0, +/* 0x2810 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2820 */ 0, 0, 0, 0, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, +/* 0x2830 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2840 */ 136, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2850 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2860 */ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, +/* 0x2870 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2880 */ 136, 28, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, +/* 0x2890 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x28a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, +/* 0x28b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x28c0 */ 40, 29, 0, 0, 0, 0, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, +/* 0x28d0 */ 20, 0, 0, 0, 14, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, +/* 0x28e0 */ 24, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, +/* 0x28f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2900 */ 232, 32, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, +/* 0x2910 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2920 */ 0, 0, 0, 0, 0, 0, 0, 0,102,105,108,101, 32,102,111,114, +/* 0x2930 */ 109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116,108,101, +/* 0x2940 */ 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105,111,110, +/* 0x2950 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, +/* 0x2960 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, +/* 0x2970 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2980 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2990 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, +/* 0x29a0 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 83, 79, 95, +/* 0x29b0 */ 77, 65, 73, 78, 32, 32, 32, 32, 32, 32, 32, 48, 54, 54, 52, 32, +/* 0x29c0 */ 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 50, +/* 0x29d0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 83, +/* 0x29e0 */ 79, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 32, 48, 51, 56, +/* 0x29f0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 54, 97, 52, 32, 32, 50, 42, +/* 0x2a00 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, +/* 0x2a10 */ 32,112,116,114, 95, 78, 69, 88, 84, 32, 32, 32, 32, 32, 32, 48, +/* 0x2a20 */ 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54,100, 99, 32, 32, 50, +/* 0x2a30 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, +/* 0x2a40 */ 51, 32, 83, 79, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 32, +/* 0x2a50 */ 48, 49, 51, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54,101, 52, +/* 0x2a60 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x2a70 */ 10, 32, 32, 52, 32, 69, 88, 80, 95, 72, 69, 65, 68, 32, 32, 32, +/* 0x2a80 */ 32, 32, 32, 48, 49, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x2a90 */ 56, 50, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x2aa0 */ 78, 84, 83, 10, 32, 32, 53, 32, 69, 88, 80, 95, 84, 65, 73, 76, +/* 0x2ab0 */ 32, 32, 32, 32, 32, 32, 48, 50, 48, 32, 32, 48, 32, 32, 48, 32, +/* 0x2ac0 */ 32, 48, 57, 50, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2ad0 */ 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 78, 82, 86, 50, 69, 32, +/* 0x2ae0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, +/* 0x2af0 */ 32, 48, 32, 32, 48, 57, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x2b00 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 78, 82, 86, +/* 0x2b10 */ 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, 32, +/* 0x2b20 */ 32, 48, 32, 32, 48, 32, 32, 48, 97, 99, 48, 32, 32, 50, 42, 42, +/* 0x2b30 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, +/* 0x2b40 */ 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, +/* 0x2b50 */ 52, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 99, 51, 48, 32, 32, +/* 0x2b60 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, +/* 0x2b70 */ 32, 57, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, +/* 0x2b80 */ 32, 48, 49, 48, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,100, 55, +/* 0x2b90 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x2ba0 */ 83, 10, 32, 49, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x2bb0 */ 32, 32, 32, 32, 48, 57, 54, 56, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x2bc0 */ 48,101, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x2bd0 */ 69, 78, 84, 83, 10, 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2be0 */ 67, 49, 48, 32, 32, 32, 32, 48, 52, 97, 48, 32, 32, 48, 32, 32, +/* 0x2bf0 */ 48, 32, 32, 48, 49, 55,101, 56, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x2c00 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 50, 32, 76, 90, 77, +/* 0x2c10 */ 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 32, 32, 48, 32, +/* 0x2c20 */ 32, 48, 32, 32, 48, 49, 99, 56, 56, 32, 32, 50, 42, 42, 48, 32, +/* 0x2c30 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, +/* 0x2c40 */ 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x2c60 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, +/* 0x2c70 */ 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x2c90 */ 32, 32, 83, 79, 95, 77, 65, 73, 78, 32, 48, 32, 83, 79, 95, 77, +/* 0x2ca0 */ 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2cb0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 79, 95, +/* 0x2cc0 */ 72, 69, 65, 68, 32, 48, 32, 83, 79, 95, 72, 69, 65, 68, 10, 48, +/* 0x2cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2ce0 */ 108, 32, 32, 32, 32,100, 32, 32,112,116,114, 95, 78, 69, 88, 84, +/* 0x2cf0 */ 32, 48, 32,112,116,114, 95, 78, 69, 88, 84, 10, 48, 48, 48, 48, +/* 0x2d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x2d10 */ 32, 32,100, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 83, +/* 0x2d20 */ 79, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2d30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2d40 */ 69, 88, 80, 95, 72, 69, 65, 68, 32, 48, 32, 69, 88, 80, 95, 72, +/* 0x2d50 */ 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2d60 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, +/* 0x2d70 */ 95, 84, 65, 73, 76, 32, 48, 32, 69, 88, 80, 95, 84, 65, 73, 76, +/* 0x2d80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2d90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, +/* 0x2da0 */ 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x2dc0 */ 32, 78, 82, 86, 50, 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, +/* 0x2dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2de0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, +/* 0x2df0 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2e00 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, +/* 0x2e10 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, +/* 0x2e20 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2e30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2e40 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, +/* 0x2e50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x2e70 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, +/* 0x2e80 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2e90 */ 48, 48, 48, 48, 48, 48, 48, 56, 56, 32,103, 32, 32, 32, 32, 32, +/* 0x2ea0 */ 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, 95, 95,115,121, +/* 0x2eb0 */ 110, 99, 95, 99, 97, 99,104,101, 95,114, 97,110,103,101, 10, 48, +/* 0x2ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 52, 32, +/* 0x2ed0 */ 103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 72, 69, 65, 68, 32, +/* 0x2ee0 */ 48, 32,103,101,116, 52, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2ef0 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, +/* 0x2f00 */ 69, 88, 80, 95, 72, 69, 65, 68, 32, 48, 32,102, 95,101,120,112, +/* 0x2f10 */ 97,110,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2f20 */ 48, 48, 55, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x2f30 */ 84, 65, 73, 76, 32, 48, 32,109,117,110,109, 97,112, 10, 48, 48, +/* 0x2f40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 48, 32,103, +/* 0x2f50 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x2f60 */ 32,103,101,116, 95,115,121,115, 95,109,117,110,109, 97,112, 10, +/* 0x2f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 99, +/* 0x2f80 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x2f90 */ 32, 48, 32,103,101,116,112,105,100, 10, 48, 48, 48, 48, 48, 48, +/* 0x2fa0 */ 48, 48, 48, 48, 48, 48, 48, 49, 49, 56, 32,103, 32, 32, 32, 32, +/* 0x2fb0 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,101,109, +/* 0x2fc0 */ 99,112,121, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2fd0 */ 48, 48, 54, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x2fe0 */ 84, 65, 73, 76, 32, 48, 32,114,101, 97,100,108,105,110,107, 10, +/* 0x2ff0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 52, +/* 0x3000 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3010 */ 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3020 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, +/* 0x3030 */ 32, 69, 88, 80, 95, 84, 65, 73, 76, 32, 48, 32,101,111,102, 10, +/* 0x3040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 52, +/* 0x3050 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x3060 */ 32, 48, 32,109,109, 97,112, 95,112,114,105,118, 97,110,111,110, +/* 0x3070 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, +/* 0x3080 */ 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x3090 */ 76, 32, 48, 32,119,114,105,116,101, 10, 48, 48, 48, 48, 48, 48, +/* 0x30a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 52, 48, 32,103, 32, 32, 32, 32, +/* 0x30b0 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,117,110,108, +/* 0x30c0 */ 105,110,107, 97,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x30d0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, +/* 0x30e0 */ 82, 86, 50, 68, 32, 48, 49, 55, 48, 32,117, 99,108, 95,110,114, +/* 0x30f0 */ 118, 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, +/* 0x3100 */ 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3110 */ 49, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, +/* 0x3120 */ 73, 76, 32, 48, 32,114,101, 97,100, 10, 48, 48, 48, 48, 48, 48, +/* 0x3130 */ 48, 48, 48, 48, 48, 48, 48, 49, 50, 99, 32,103, 32, 32, 32, 32, +/* 0x3140 */ 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,101,109, +/* 0x3150 */ 115,101,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3160 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, +/* 0x3170 */ 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, 95,110,114,118, 50, +/* 0x3180 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, +/* 0x3190 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x31a0 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, +/* 0x31b0 */ 32, 48, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, +/* 0x31c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 32,103, 32, 32, 32, +/* 0x31d0 */ 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,101,120, +/* 0x31e0 */ 105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x31f0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3200 */ 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,101, 99, +/* 0x3210 */ 111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3220 */ 48, 48, 53, 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, +/* 0x3230 */ 84, 65, 73, 76, 32, 48, 32, 98,114,107, 10, 48, 48, 48, 48, 48, +/* 0x3240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 56, 32,103, 32, 32, 32, +/* 0x3250 */ 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,111,112, +/* 0x3260 */ 101,110, 97,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3270 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x3280 */ 86, 50, 69, 32, 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, +/* 0x3290 */ 50,101, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, +/* 0x32a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, +/* 0x32b0 */ 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, +/* 0x32c0 */ 76, 32, 48, 32,109,112,114,111,116,101, 99,116, 10, 48, 48, 48, +/* 0x32d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 52, 32,103, 32, +/* 0x32e0 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, +/* 0x32f0 */ 99,108,111,115,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3300 */ 48, 48, 48, 50,101, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 83, +/* 0x3310 */ 79, 95, 77, 65, 73, 78, 32, 48, 51, 56, 52, 32,117,112,120, 95, +/* 0x3320 */ 115,111, 95,109, 97,105,110, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x3330 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x3340 */ 91, 83, 79, 95, 77, 65, 73, 78, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x3350 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x3360 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x3370 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3380 */ 48, 48, 50, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, +/* 0x3390 */ 65, 76, 76, 50, 54, 32, 32,109,101,109, 99,112,121, 10, 48, 48, +/* 0x33a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 52, 32, 82, +/* 0x33b0 */ 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, +/* 0x33c0 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x33d0 */ 48, 48, 48, 48, 53, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, +/* 0x33e0 */ 95, 67, 65, 76, 76, 50, 54, 32, 32,109,101,109, 99,112,121, 10, +/* 0x33f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 52, +/* 0x3400 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, +/* 0x3410 */ 54, 32, 32,111,112,101,110, 97,116, 10, 48, 48, 48, 48, 48, 48, +/* 0x3420 */ 48, 48, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 65, 82, +/* 0x3430 */ 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32,114,101, 97, +/* 0x3440 */ 100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3450 */ 99, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, +/* 0x3460 */ 76, 50, 54, 32, 32, 99,108,111,115,101, 10, 48, 48, 48, 48, 48, +/* 0x3470 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 53, 99, 32, 82, 95, 65, 65, +/* 0x3480 */ 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32,101,120, +/* 0x3490 */ 105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x34a0 */ 49, 97, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, +/* 0x34b0 */ 76, 76, 50, 54, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, +/* 0x34c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 97, 56, 32, 82, +/* 0x34d0 */ 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, +/* 0x34e0 */ 32,101,120,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x34f0 */ 48, 48, 48, 50, 54, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, +/* 0x3500 */ 95, 67, 65, 76, 76, 50, 54, 32, 32,102, 95,101,120,112, 97,110, +/* 0x3510 */ 100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, +/* 0x3520 */ 53, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, +/* 0x3530 */ 76, 50, 54, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, +/* 0x3540 */ 48, 48, 48, 48, 48, 48, 48, 51, 54, 56, 32, 82, 95, 65, 65, 82, +/* 0x3550 */ 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32,109,101,109, +/* 0x3560 */ 99,112,121, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3570 */ 48, 51, 56, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, +/* 0x3580 */ 65, 76, 76, 50, 54, 32, 32,109,112,114,111,116,101, 99,116, 10, +/* 0x3590 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 56, 99, +/* 0x35a0 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, +/* 0x35b0 */ 54, 32, 32,109,112,114,111,116,101, 99,116, 10, 48, 48, 48, 48, +/* 0x35c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 99, 56, 32, 82, 95, 65, +/* 0x35d0 */ 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32,109, +/* 0x35e0 */ 109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x35f0 */ 48, 54, 49, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, +/* 0x3600 */ 65, 76, 76, 50, 54, 32, 32,109,112,114,111,116,101, 99,116, 10, +/* 0x3610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 50, 52, +/* 0x3620 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, +/* 0x3630 */ 54, 32, 32,109,117,110,109, 97,112, 10, 10, 82, 69, 76, 79, 67, +/* 0x3640 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x3650 */ 82, 32, 91, 83, 79, 95, 72, 69, 65, 68, 93, 58, 10, 79, 70, 70, +/* 0x3660 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, +/* 0x3670 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3680 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x3690 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, +/* 0x36a0 */ 95, 67, 65, 76, 76, 50, 54, 32, 32,117,112,120, 95,115,111, 95, +/* 0x36b0 */ 109, 97,105,110, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x36c0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, +/* 0x36d0 */ 95, 84, 65, 73, 76, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x36e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x36f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x3700 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, +/* 0x3710 */ 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, +/* 0x3720 */ 66, 82, 49, 57, 32, 32,109,101,109, 99,112,121, 10, 48, 48, 48, +/* 0x3730 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 51, 52, 32, 82, 95, +/* 0x3740 */ 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, +/* 0x3750 */ 32, 32,109,101,109,115,101,116, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x3760 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x3770 */ 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, +/* 0x3780 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3790 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x37a0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x37b0 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, +/* 0x37c0 */ 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, +/* 0x37d0 */ 65, 95, 68, 69, 67, 51, 48, 10 +}; diff --git a/src/stub/arm64-linux.shlib-init.h b/src/stub/arm64-linux.shlib-init.h index 7faa309c..05928d5a 100644 --- a/src/stub/arm64-linux.shlib-init.h +++ b/src/stub/arm64-linux.shlib-init.h @@ -1,5 +1,5 @@ /* arm64-linux.shlib-init.h - created from arm64-linux.shlib-init.bin, 7919 (0x1eef) bytes + created from arm64-linux.shlib-init.bin, 7923 (0x1ef3) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 7919 -#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x7f382f31 -#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0xf67e2f73 +#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 7923 +#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x74b92ff3 +#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0xfaebe7b3 -unsigned char stub_arm64_linux_shlib_init[7919] = { +unsigned char stub_arm64_linux_shlib_init[7923] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,248, 25, 0, 0, 0, 0, 0, 0, @@ -284,251 +284,252 @@ unsigned char stub_arm64_linux_shlib_init[7919] = { /* 0x0f50 */ 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, /* 0x0f60 */ 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, /* 0x0f70 */ 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145, -/* 0x0f80 */ 231, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248, +/* 0x0f80 */ 232, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248, /* 0x0f90 */ 226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, -/* 0x0fa0 */ 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84, +/* 0x0fa0 */ 0, 16, 6, 11, 97, 1, 0,145,226, 0, 0,148,161, 5, 0, 84, /* 0x0fb0 */ 227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, /* 0x0fc0 */ 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, /* 0x0fd0 */ 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, -/* 0x0fe0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84, +/* 0x0fe0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 35, 2, 0, 84, /* 0x0ff0 */ 227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, /* 0x1000 */ 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139, -/* 0x1010 */ 201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, -/* 0x1020 */ 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170, -/* 0x1030 */ 193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82, -/* 0x1040 */ 195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113, -/* 0x1050 */ 195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145, -/* 0x1060 */ 178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185, -/* 0x1070 */ 227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82, -/* 0x1080 */ 223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,106,145, 25,145, -/* 0x1090 */ 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84, -/* 0x10a0 */ 227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148, -/* 0x10b0 */ 161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82, -/* 0x10c0 */ 102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107, -/* 0x10d0 */ 131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, -/* 0x10e0 */ 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148, -/* 0x10f0 */ 228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148, -/* 0x1100 */ 228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185, -/* 0x1110 */ 227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,239, 7, 0,185, -/* 0x1120 */ 239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82, -/* 0x1130 */ 102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, -/* 0x1140 */ 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, -/* 0x1150 */ 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, -/* 0x1160 */ 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, -/* 0x1170 */ 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, -/* 0x1180 */ 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, -/* 0x1190 */ 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170, -/* 0x11a0 */ 101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,229, 55, 64,185, -/* 0x11b0 */ 165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84, -/* 0x11c0 */ 198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26, -/* 0x11d0 */ 227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, -/* 0x11e0 */ 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107, -/* 0x11f0 */ 163,255,255, 84,227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84, -/* 0x1200 */ 100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50, -/* 0x1210 */ 127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,106,121, 21,145, -/* 0x1220 */ 227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20, -/* 0x1230 */ 132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107, -/* 0x1240 */ 108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84, -/* 0x1250 */ 106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, -/* 0x1260 */ 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, -/* 0x1270 */ 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, -/* 0x1280 */ 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49, -/* 0x1290 */ 229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203, -/* 0x12a0 */ 255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, -/* 0x12b0 */ 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84, -/* 0x12c0 */ 165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235, -/* 0x12d0 */ 227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, -/* 0x12e0 */ 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, -/* 0x12f0 */ 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, -/* 0x1300 */ 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, -/* 0x1310 */ 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56, -/* 0x1320 */ 108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, -/* 0x1330 */ 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, -/* 0x1340 */ 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, -/* 0x1350 */ 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,231, 3, 2, 42, -/* 0x1360 */ 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, -/* 0x1370 */ 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, -/* 0x1380 */ 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214, -/* 0x1390 */ 194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82, 8, 8,128, 82, -/* 0x13a0 */ 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212, -/* 0x13b0 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, -/* 0x13c0 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 67,132, -/* 0x13d0 */ 64,248,227,255,255,181, 3, 0,130,210, 64, 4,193,168, 96, 0, -/* 0x13e0 */ 0,180, 31, 24, 0,241,161,255,255, 84, 33, 0,131,154,225, 3, -/* 0x13f0 */ 1,203,225,255,129,146,225, 19, 0,249,226, 3, 30,170, 65,144, -/* 0x1400 */ 0,209, 36, 68, 64,184,134, 0, 0, 18,131, 0, 38, 10,229, 3, -/* 0x1410 */ 1,170, 36, 68, 64,184,165, 0, 4,203, 36, 68, 64,184,132, 48, -/* 0x1420 */ 6,139,132, 0, 5,139,228, 15, 0,249, 36, 68, 64,184,132, 0, -/* 0x1430 */ 5,139,228, 27, 0,249, 36, 68, 64,184,128, 0, 5,139, 97, 0, -/* 0x1440 */ 5,139, 36, 4, 64,185, 33, 48, 0,145, 33, 0, 4,139,229, 35, -/* 0x1450 */ 64,185, 36, 68, 64,184, 5, 0, 37, 10,165, 12, 0, 17,165,116, -/* 0x1460 */ 30, 18,132, 0, 5, 11, 0, 64, 37,203,224,147, 4,169, 0, 64, -/* 0x1470 */ 37,139,132, 0, 5, 75, 16, 0, 0,148, 99, 28, 0, 18,127, 72, -/* 0x1480 */ 1,113,129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180, 33, 4, -/* 0x1490 */ 0,209, 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,129, 0, -/* 0x14a0 */ 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 2,120, 33,184, 1,255, -/* 0x14b0 */ 255,181,192, 3, 95,214,165,124, 2, 83,254,151, 5,169, 35, 20, -/* 0x14c0 */ 64, 57, 38, 24, 64, 57,224,147, 6,169,230,143, 7,169, 36, 68, -/* 0x14d0 */ 64,184,229, 3, 4, 42, 36, 68, 64,184,226,147, 8,169,227,195, -/* 0x14e0 */ 1,145,225,151, 9,169,224,143, 10,169,165, 12, 0,145,227, 99, -/* 0x14f0 */ 64,185, 98, 8, 69,139,227, 71, 64,249, 99, 0, 0,148,227, 47, -/* 0x1500 */ 64,249, 97, 0, 0,148, 53, 0, 0,148, 5, 0,128,210, 4, 0, -/* 0x1510 */ 128,146, 67, 6,128,210, 98, 0,128,210,224,135, 68,169,230, 3, -/* 0x1520 */ 0,170,200, 27,128, 82, 1, 0, 0,212, 31, 0, 6,235, 64, 0, -/* 0x1530 */ 0, 84, 0, 0, 32,212,229, 99, 64,185,225, 31, 64,249, 29, 0, -/* 0x1540 */ 0,148,228, 71, 64,249,224,135, 73,169,226,143, 74,169,128, 0, -/* 0x1550 */ 63,214, 4, 0, 0,148, 1, 0, 0,212,224, 7,204,168, 96, 0, -/* 0x1560 */ 31,214,228, 27, 64,249,192, 7, 64,169,128, 0, 0,249,129, 8, -/* 0x1570 */ 0,185,228, 47, 64,249,226,143, 71,169,224,135, 70,169, 67, 0, -/* 0x1580 */ 0,180,128, 0, 63,214,224,135, 68,169,162, 0,128,210, 72, 28, -/* 0x1590 */ 128, 82, 1, 0, 0,212,254,147, 66,169,224,135, 67,169,232, 26, -/* 0x15a0 */ 128, 82,226, 15, 65,169,128, 0, 31,214, 37,192, 95,184,165, 92, -/* 0x15b0 */ 0, 18,133, 0, 0, 54, 35, 68, 64,184,165, 4, 0, 81, 3, 68, -/* 0x15c0 */ 0,184,165, 0, 0, 52, 34, 12,193, 40,165, 8, 0, 81, 2, 12, -/* 0x15d0 */ 129, 40,165,255,255, 53,192, 3, 95,214,254, 95, 0,249,227, 3, -/* 0x15e0 */ 30,170, 41, 0, 0,148, 65,244,126,211, 5, 0,128,210, 4, 0, -/* 0x15f0 */ 128,146, 67, 4,128,210, 98, 0,128,210,225, 35, 0,249, 0, 0, -/* 0x1600 */ 128,210,200, 27,128, 82, 1, 0, 0,212, 31, 4, 64,177, 67, 0, -/* 0x1610 */ 0, 84, 0, 0, 32,212,224, 31, 0,249,225, 39, 64,249,229, 99, -/* 0x1620 */ 64,185,228,255,255,151,225,151, 73,169,224, 79, 0,249,165, 12, -/* 0x1630 */ 0, 17,165,124, 2, 83,223,255,255,151,226, 3, 0,170,225, 71, -/* 0x1640 */ 64,249,224, 71, 0,249,217,255,255,151,225, 47, 64,249,224, 47, -/* 0x1650 */ 0,249,214,255,255,151,225, 95, 64,249,224, 95, 0,249,211,255, -/* 0x1660 */ 255,151,224,135, 67,169,162, 0,128,210, 72, 28,128, 82, 1, 0, -/* 0x1670 */ 0,212, 31, 4, 64,177, 67, 0, 0, 84, 0, 0, 32,212,254, 95, -/* 0x1680 */ 64,249,192, 3, 31,214, 99,192, 95,184, 99, 92, 0, 18, 66, 0, -/* 0x1690 */ 3,139,192, 3, 95,214,102,105,108,101, 32,102,111,114,109, 97, -/* 0x16a0 */ 116, 32,101,108,102, 54, 52, 45,108,105,116,116,108,101, 97, 97, -/* 0x16b0 */ 114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, -/* 0x16c0 */ 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, -/* 0x16d0 */ 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, -/* 0x16e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x16f0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1700 */ 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, -/* 0x1710 */ 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, -/* 0x1720 */ 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 48, 32, 32, 48, 32, -/* 0x1730 */ 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1740 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 78, 82, 86, 95, -/* 0x1750 */ 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, -/* 0x1760 */ 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1770 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 78, 82, 86, 95, 84, -/* 0x1780 */ 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x1790 */ 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x17a0 */ 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, -/* 0x17b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, -/* 0x17c0 */ 32, 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x17d0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, 78, 82, 86, 50, -/* 0x17e0 */ 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, -/* 0x17f0 */ 48, 32, 32, 48, 32, 32, 48, 49, 99, 99, 32, 32, 50, 42, 42, 48, -/* 0x1800 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, 32, 78, -/* 0x1810 */ 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, -/* 0x1820 */ 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 51, 99, 32, 32, 50, -/* 0x1830 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, -/* 0x1840 */ 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, -/* 0x1850 */ 48, 49, 48, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 56, 48, -/* 0x1860 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1870 */ 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, -/* 0x1880 */ 32, 32, 32, 48, 57, 54, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x1890 */ 53, 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x18a0 */ 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x18b0 */ 49, 48, 32, 32, 32, 32, 48, 52, 57, 99, 32, 32, 48, 32, 32, 48, -/* 0x18c0 */ 32, 32, 48,101,102, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x18d0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, -/* 0x18e0 */ 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x18f0 */ 32, 32, 48, 49, 51, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1900 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48, 32, 69, 76, 70, 77, -/* 0x1910 */ 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 51,101, 32, 32, 48, -/* 0x1920 */ 32, 32, 48, 32, 32, 48, 49, 51, 57, 48, 32, 32, 50, 42, 42, 48, -/* 0x1930 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 49, 32, 69, -/* 0x1940 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 32, 32, -/* 0x1950 */ 48, 32, 32, 48, 32, 32, 48, 49, 51, 99,101, 32, 32, 50, 42, 42, -/* 0x1960 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 50, 32, -/* 0x1970 */ 69, 76, 70, 77, 65, 74, 78, 90, 32, 32, 32, 32, 32, 32, 48, 50, -/* 0x1980 */ 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 99,101, 32, 32, -/* 0x1990 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, -/* 0x19a0 */ 49, 51, 32, 65, 78, 68, 77, 65, 74, 78, 90, 32, 32, 32, 32, 32, -/* 0x19b0 */ 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51,102, 50, -/* 0x19c0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x19d0 */ 10, 32, 49, 52, 32, 69, 76, 70, 77, 65, 75, 78, 90, 32, 32, 32, -/* 0x19e0 */ 32, 32, 32, 48, 50, 97, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, -/* 0x19f0 */ 49, 51,102, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x1a00 */ 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, -/* 0x1a10 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a20 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, -/* 0x1a30 */ 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x1a40 */ 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a50 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, -/* 0x1a60 */ 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, -/* 0x1a70 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a80 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x1a90 */ 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, -/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1ab0 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, -/* 0x1ac0 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, -/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1ae0 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 48, 32, 78, -/* 0x1af0 */ 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1b10 */ 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69, 10, 48, -/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1b30 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, -/* 0x1b40 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, -/* 0x1b60 */ 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, -/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1b80 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x1b90 */ 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, -/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1bb0 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x1bc0 */ 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1be0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x1bf0 */ 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c10 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x1c20 */ 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, -/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1c40 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 74, 78, 90, 32, 48, -/* 0x1c50 */ 32, 69, 76, 70, 77, 65, 74, 78, 90, 10, 48, 48, 48, 48, 48, 48, -/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x1c70 */ 100, 32, 32, 65, 78, 68, 77, 65, 74, 78, 90, 32, 48, 32, 65, 78, -/* 0x1c80 */ 68, 77, 65, 74, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1ca0 */ 69, 76, 70, 77, 65, 75, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, -/* 0x1cb0 */ 75, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1cc0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x1cd0 */ 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, -/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1cf0 */ 103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, 48, 49, -/* 0x1d00 */ 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99, -/* 0x1d10 */ 111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, -/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, -/* 0x1d30 */ 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48, 32,117, -/* 0x1d40 */ 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,112,114, -/* 0x1d50 */ 101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, -/* 0x1d70 */ 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, 95,110, -/* 0x1d80 */ 114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, -/* 0x1d90 */ 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1da0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x1db0 */ 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,101, 99, -/* 0x1dc0 */ 111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1dd0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x1de0 */ 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101, 99,111, -/* 0x1df0 */ 109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x1e00 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x1e10 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x1e20 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, -/* 0x1e30 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x1e40 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e50 */ 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, -/* 0x1e60 */ 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, -/* 0x1e70 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x1e80 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, -/* 0x1e90 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x1ea0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x1eb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, -/* 0x1ed0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, -/* 0x1ee0 */ 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10 +/* 0x1010 */ 202, 0, 0,148, 3, 0, 0, 18,130,124, 8, 83,127, 0, 2,107, +/* 0x1020 */ 193, 0, 0, 84, 31, 0, 4,113,163,254,255, 84, 5, 0, 0, 20, +/* 0x1030 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, +/* 0x1040 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26, +/* 0x1050 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, +/* 0x1060 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185, +/* 0x1070 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, +/* 0x1080 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26, +/* 0x1090 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, +/* 0x10a0 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11, +/* 0x10b0 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113, +/* 0x10c0 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203, +/* 0x10d0 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, +/* 0x10e0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145, +/* 0x10f0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145, +/* 0x1100 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185, +/* 0x1110 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185, +/* 0x1120 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113, +/* 0x1130 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145, +/* 0x1140 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145, +/* 0x1150 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x1160 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84, +/* 0x1170 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82, +/* 0x1180 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, +/* 0x1190 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82, +/* 0x11a0 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x11b0 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113, +/* 0x11c0 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113, +/* 0x11d0 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, +/* 0x11e0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, +/* 0x11f0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113, +/* 0x1200 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18, +/* 0x1210 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26, +/* 0x1220 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, +/* 0x1230 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83, +/* 0x1240 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, +/* 0x1250 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, +/* 0x1260 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, +/* 0x1270 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83, +/* 0x1280 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185, +/* 0x1290 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, +/* 0x12a0 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147, +/* 0x12b0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235, +/* 0x12c0 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, +/* 0x12d0 */ 63, 1, 14,235,195,229,255, 84, 13, 0, 0,148, 0, 0,128, 82, +/* 0x12e0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185, +/* 0x12f0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185, +/* 0x1300 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83, +/* 0x1310 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, +/* 0x1320 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, +/* 0x1330 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83, +/* 0x1340 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121, +/* 0x1350 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84, +/* 0x1360 */ 231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58, +/* 0x1370 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75, +/* 0x1380 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, +/* 0x1390 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82, +/* 0x13a0 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82, +/* 0x13b0 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, +/* 0x13c0 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, +/* 0x13d0 */ 10, 0, 67,132, 64,248,227,255,255,181, 3, 0,130,210, 64, 4, +/* 0x13e0 */ 193,168, 96, 0, 0,180, 31, 24, 0,241,161,255,255, 84, 33, 0, +/* 0x13f0 */ 131,154,225, 3, 1,203,225,255,129,146,225, 19, 0,249,226, 3, +/* 0x1400 */ 30,170, 65,144, 0,209, 36, 68, 64,184,134, 0, 0, 18,131, 0, +/* 0x1410 */ 38, 10,229, 3, 1,170, 36, 68, 64,184,165, 0, 4,203, 36, 68, +/* 0x1420 */ 64,184,132, 48, 6,139,132, 0, 5,139,228, 15, 0,249, 36, 68, +/* 0x1430 */ 64,184,132, 0, 5,139,228, 27, 0,249, 36, 68, 64,184,128, 0, +/* 0x1440 */ 5,139, 97, 0, 5,139, 36, 4, 64,185, 33, 48, 0,145, 33, 0, +/* 0x1450 */ 4,139,229, 35, 64,185, 36, 68, 64,184, 5, 0, 37, 10,165, 12, +/* 0x1460 */ 0, 17,165,116, 30, 18,132, 0, 5, 11, 0, 64, 37,203,224,147, +/* 0x1470 */ 4,169, 0, 64, 37,139,132, 0, 5, 75, 16, 0, 0,148, 99, 28, +/* 0x1480 */ 0, 18,127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211, 65, 1, +/* 0x1490 */ 0,180, 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83,127, 20, +/* 0x14a0 */ 0,113,129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 2,120, +/* 0x14b0 */ 33,184, 1,255,255,181,192, 3, 95,214,165,124, 2, 83,254,151, +/* 0x14c0 */ 5,169, 35, 20, 64, 57, 38, 24, 64, 57,224,147, 6,169,230,143, +/* 0x14d0 */ 7,169, 36, 68, 64,184,229, 3, 4, 42, 36, 68, 64,184,226,147, +/* 0x14e0 */ 8,169,227,195, 1,145,225,151, 9,169,224,143, 10,169,165, 12, +/* 0x14f0 */ 0,145,227, 99, 64,185, 98, 8, 69,139,227, 71, 64,249, 99, 0, +/* 0x1500 */ 0,148,227, 47, 64,249, 97, 0, 0,148, 53, 0, 0,148, 5, 0, +/* 0x1510 */ 128,210, 4, 0,128,146, 67, 6,128,210, 98, 0,128,210,224,135, +/* 0x1520 */ 68,169,230, 3, 0,170,200, 27,128, 82, 1, 0, 0,212, 31, 0, +/* 0x1530 */ 6,235, 64, 0, 0, 84, 0, 0, 32,212,229, 99, 64,185,225, 31, +/* 0x1540 */ 64,249, 29, 0, 0,148,228, 71, 64,249,224,135, 73,169,226,143, +/* 0x1550 */ 74,169,128, 0, 63,214, 4, 0, 0,148, 1, 0, 0,212,224, 7, +/* 0x1560 */ 204,168, 96, 0, 31,214,228, 27, 64,249,192, 7, 64,169,128, 0, +/* 0x1570 */ 0,249,129, 8, 0,185,228, 47, 64,249,226,143, 71,169,224,135, +/* 0x1580 */ 70,169, 67, 0, 0,180,128, 0, 63,214,224,135, 68,169,162, 0, +/* 0x1590 */ 128,210, 72, 28,128, 82, 1, 0, 0,212,254,147, 66,169,224,135, +/* 0x15a0 */ 67,169,232, 26,128, 82,226, 15, 65,169,128, 0, 31,214, 37,192, +/* 0x15b0 */ 95,184,165, 92, 0, 18,133, 0, 0, 54, 35, 68, 64,184,165, 4, +/* 0x15c0 */ 0, 81, 3, 68, 0,184,165, 0, 0, 52, 34, 12,193, 40,165, 8, +/* 0x15d0 */ 0, 81, 2, 12,129, 40,165,255,255, 53,192, 3, 95,214,254, 95, +/* 0x15e0 */ 0,249,227, 3, 30,170, 41, 0, 0,148, 65,244,126,211, 5, 0, +/* 0x15f0 */ 128,210, 4, 0,128,146, 67, 4,128,210, 98, 0,128,210,225, 35, +/* 0x1600 */ 0,249, 0, 0,128,210,200, 27,128, 82, 1, 0, 0,212, 31, 4, +/* 0x1610 */ 64,177, 67, 0, 0, 84, 0, 0, 32,212,224, 31, 0,249,225, 39, +/* 0x1620 */ 64,249,229, 99, 64,185,228,255,255,151,225,151, 73,169,224, 79, +/* 0x1630 */ 0,249,165, 12, 0, 17,165,124, 2, 83,223,255,255,151,226, 3, +/* 0x1640 */ 0,170,225, 71, 64,249,224, 71, 0,249,217,255,255,151,225, 47, +/* 0x1650 */ 64,249,224, 47, 0,249,214,255,255,151,225, 95, 64,249,224, 95, +/* 0x1660 */ 0,249,211,255,255,151,224,135, 67,169,162, 0,128,210, 72, 28, +/* 0x1670 */ 128, 82, 1, 0, 0,212, 31, 4, 64,177, 67, 0, 0, 84, 0, 0, +/* 0x1680 */ 32,212,254, 95, 64,249,192, 3, 31,214, 99,192, 95,184, 99, 92, +/* 0x1690 */ 0, 18, 66, 0, 3,139,192, 3, 95,214,102,105,108,101, 32,102, +/* 0x16a0 */ 111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116, +/* 0x16b0 */ 108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105, +/* 0x16c0 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, +/* 0x16d0 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, +/* 0x16e0 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x16f0 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1700 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65, +/* 0x1710 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, +/* 0x1720 */ 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 48, +/* 0x1730 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, +/* 0x1740 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, +/* 0x1750 */ 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 32, +/* 0x1760 */ 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, 48, +/* 0x1770 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 78, +/* 0x1780 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 32, 32, +/* 0x1790 */ 48, 32, 32, 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, 48, 32, +/* 0x17a0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82, +/* 0x17b0 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 99, +/* 0x17c0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42, +/* 0x17d0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, +/* 0x17e0 */ 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, +/* 0x17f0 */ 55, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 99, 99, 32, 32, +/* 0x1800 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, +/* 0x1810 */ 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1820 */ 32, 48, 49, 52, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 51, +/* 0x1830 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1840 */ 83, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x1850 */ 32, 32, 32, 32, 48, 49, 48, 99, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x1860 */ 48, 52, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1870 */ 69, 78, 84, 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1880 */ 67, 50, 48, 32, 32, 32, 32, 48, 57, 54, 56, 32, 32, 48, 32, 32, +/* 0x1890 */ 48, 32, 32, 48, 53, 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x18a0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, +/* 0x18b0 */ 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 52, 97, 48, 32, 32, +/* 0x18c0 */ 48, 32, 32, 48, 32, 32, 48,101,102, 52, 32, 32, 50, 42, 42, 48, +/* 0x18d0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, +/* 0x18e0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 32, 32, +/* 0x18f0 */ 48, 32, 32, 48, 32, 32, 48, 49, 51, 57, 52, 32, 32, 50, 42, 42, +/* 0x1900 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48, 32, +/* 0x1910 */ 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 51, +/* 0x1920 */ 101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 57, 52, 32, 32, +/* 0x1930 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, +/* 0x1940 */ 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, +/* 0x1950 */ 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51,100, 50, 32, +/* 0x1960 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, +/* 0x1970 */ 32, 49, 50, 32, 69, 76, 70, 77, 65, 74, 78, 90, 32, 32, 32, 32, +/* 0x1980 */ 32, 32, 48, 50, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, +/* 0x1990 */ 100, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x19a0 */ 84, 83, 10, 32, 49, 51, 32, 65, 78, 68, 77, 65, 74, 78, 90, 32, +/* 0x19b0 */ 32, 32, 32, 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, +/* 0x19c0 */ 49, 51,102, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x19d0 */ 69, 78, 84, 83, 10, 32, 49, 52, 32, 69, 76, 70, 77, 65, 75, 78, +/* 0x19e0 */ 90, 32, 32, 32, 32, 32, 32, 48, 50, 97, 48, 32, 32, 48, 32, 32, +/* 0x19f0 */ 48, 32, 32, 48, 49, 51,102, 97, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x1a00 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, +/* 0x1a10 */ 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1a30 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, +/* 0x1a40 */ 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1a60 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, +/* 0x1a70 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a80 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, +/* 0x1a90 */ 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x1aa0 */ 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, +/* 0x1ac0 */ 69, 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, +/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1ae0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x1af0 */ 32, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, +/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1b10 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, +/* 0x1b20 */ 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b30 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, +/* 0x1b40 */ 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1b60 */ 100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, +/* 0x1b70 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b80 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, +/* 0x1b90 */ 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x1ba0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bb0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x1bc0 */ 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1bd0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1bf0 */ 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1c00 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c10 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, +/* 0x1c20 */ 77, 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, +/* 0x1c30 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c40 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 74, +/* 0x1c50 */ 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 74, 78, 90, 10, 48, 48, +/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1c70 */ 32, 32, 32, 32,100, 32, 32, 65, 78, 68, 77, 65, 74, 78, 90, 32, +/* 0x1c80 */ 48, 32, 65, 78, 68, 77, 65, 74, 78, 90, 10, 48, 48, 48, 48, 48, +/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1ca0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 75, 78, 90, 32, 48, 32, 69, +/* 0x1cb0 */ 76, 70, 77, 65, 75, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, +/* 0x1cd0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97, +/* 0x1ce0 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cf0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, +/* 0x1d00 */ 69, 32, 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, +/* 0x1d10 */ 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, +/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d30 */ 103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, +/* 0x1d40 */ 55, 48, 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99, +/* 0x1d50 */ 111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, +/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, +/* 0x1d70 */ 32, 32, 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, +/* 0x1d80 */ 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114, +/* 0x1d90 */ 101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, +/* 0x1db0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, +/* 0x1dc0 */ 97, 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, +/* 0x1de0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95, +/* 0x1df0 */ 100,101, 99,111,109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, +/* 0x1e00 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, +/* 0x1e10 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, +/* 0x1e20 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1e30 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1e40 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, +/* 0x1e60 */ 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, +/* 0x1e70 */ 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x1e80 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, +/* 0x1e90 */ 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x1ea0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x1eb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x1ec0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ed0 */ 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, +/* 0x1ee0 */ 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1ef0 */ 51, 48, 10 }; diff --git a/src/stub/arm64-win64.pe.h b/src/stub/arm64-win64.pe.h index edaef68d..6bd272d7 100644 --- a/src/stub/arm64-win64.pe.h +++ b/src/stub/arm64-win64.pe.h @@ -1,5 +1,5 @@ /* arm64-win64.pe.h - created from arm64-win64.pe.bin, 6441 (0x1929) bytes + created from arm64-win64.pe.bin, 6445 (0x192d) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARM64_WIN64_PE_SIZE 6441 -#define STUB_ARM64_WIN64_PE_ADLER32 0xa3046739 -#define STUB_ARM64_WIN64_PE_CRC32 0x0340666b +#define STUB_ARM64_WIN64_PE_SIZE 6445 +#define STUB_ARM64_WIN64_PE_ADLER32 0x2ad96830 +#define STUB_ARM64_WIN64_PE_CRC32 0x37da39bd -unsigned char stub_arm64_win64_pe[6441] = { +unsigned char stub_arm64_win64_pe[6445] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,216, 21, 0, 0, 0, 0, 0, 0, @@ -283,160 +283,160 @@ unsigned char stub_arm64_win64_pe[6441] = { /* 0x0f40 */ 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, /* 0x0f50 */ 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, /* 0x0f60 */ 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145, -/* 0x0f70 */ 231, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248, +/* 0x0f70 */ 232, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248, /* 0x0f80 */ 226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, -/* 0x0f90 */ 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84, +/* 0x0f90 */ 0, 16, 6, 11, 97, 1, 0,145,226, 0, 0,148,161, 5, 0, 84, /* 0x0fa0 */ 227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, /* 0x0fb0 */ 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, /* 0x0fc0 */ 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, -/* 0x0fd0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84, +/* 0x0fd0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 35, 2, 0, 84, /* 0x0fe0 */ 227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, /* 0x0ff0 */ 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139, -/* 0x1000 */ 201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, -/* 0x1010 */ 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170, -/* 0x1020 */ 193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82, -/* 0x1030 */ 195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113, -/* 0x1040 */ 195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145, -/* 0x1050 */ 178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185, -/* 0x1060 */ 227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82, -/* 0x1070 */ 223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,106,145, 25,145, -/* 0x1080 */ 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84, -/* 0x1090 */ 227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148, -/* 0x10a0 */ 161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82, -/* 0x10b0 */ 102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107, -/* 0x10c0 */ 131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, -/* 0x10d0 */ 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148, -/* 0x10e0 */ 228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148, -/* 0x10f0 */ 228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185, -/* 0x1100 */ 227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,239, 7, 0,185, -/* 0x1110 */ 239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82, -/* 0x1120 */ 102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, -/* 0x1130 */ 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, -/* 0x1140 */ 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, -/* 0x1150 */ 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, -/* 0x1160 */ 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, -/* 0x1170 */ 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, -/* 0x1180 */ 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170, -/* 0x1190 */ 101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,229, 55, 64,185, -/* 0x11a0 */ 165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84, -/* 0x11b0 */ 198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26, -/* 0x11c0 */ 227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, -/* 0x11d0 */ 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107, -/* 0x11e0 */ 163,255,255, 84,227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84, -/* 0x11f0 */ 100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50, -/* 0x1200 */ 127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,106,121, 21,145, -/* 0x1210 */ 227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20, -/* 0x1220 */ 132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107, -/* 0x1230 */ 108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84, -/* 0x1240 */ 106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, -/* 0x1250 */ 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, -/* 0x1260 */ 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, -/* 0x1270 */ 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49, -/* 0x1280 */ 229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203, -/* 0x1290 */ 255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, -/* 0x12a0 */ 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84, -/* 0x12b0 */ 165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235, -/* 0x12c0 */ 227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, -/* 0x12d0 */ 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, -/* 0x12e0 */ 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, -/* 0x12f0 */ 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, -/* 0x1300 */ 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56, -/* 0x1310 */ 108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, -/* 0x1320 */ 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, -/* 0x1330 */ 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, -/* 0x1340 */ 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,231, 3, 2, 42, -/* 0x1350 */ 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, -/* 0x1360 */ 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, -/* 0x1370 */ 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214, -/* 0x1380 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, -/* 0x1390 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, -/* 0x13a0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, -/* 0x13b0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, -/* 0x13c0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, -/* 0x13d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, -/* 0x13e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, -/* 0x13f0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, -/* 0x1400 */ 10, 32, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, -/* 0x1410 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, -/* 0x1420 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, -/* 0x1430 */ 32, 32, 49, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, -/* 0x1440 */ 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, -/* 0x1450 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x1460 */ 83, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, -/* 0x1470 */ 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32, -/* 0x1480 */ 48, 49, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x1490 */ 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, -/* 0x14a0 */ 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, 32, -/* 0x14b0 */ 48, 32, 32, 48, 50,102, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x14c0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, 76, 90, 77, 65, -/* 0x14d0 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, -/* 0x14e0 */ 48, 32, 32, 48, 52, 55, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x14f0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, 32, 76, 90, 77, 65, -/* 0x1500 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32, -/* 0x1510 */ 48, 32, 32, 48, 32, 32, 48, 52, 55, 48, 32, 32, 50, 42, 42, 48, -/* 0x1520 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 76, -/* 0x1530 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54, -/* 0x1540 */ 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 55, 99, 32, 32, 50, -/* 0x1550 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, -/* 0x1560 */ 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, -/* 0x1570 */ 48, 52, 57, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,101,101, 52, -/* 0x1580 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1590 */ 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, -/* 0x15a0 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 56, -/* 0x15b0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x15c0 */ 83, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 84, 65, 73, 76, 32, -/* 0x15d0 */ 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, -/* 0x15e0 */ 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x15f0 */ 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, -/* 0x1600 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1610 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x1620 */ 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, -/* 0x1630 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1640 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, -/* 0x1650 */ 69, 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, -/* 0x1660 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1670 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, -/* 0x1680 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1690 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, -/* 0x16a0 */ 82, 86, 50, 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, -/* 0x16b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x16c0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, -/* 0x16d0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x16e0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, -/* 0x16f0 */ 65, 95, 72, 69, 65, 68, 32, 48, 32, 76, 90, 77, 65, 95, 72, 69, -/* 0x1700 */ 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1710 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, -/* 0x1720 */ 95, 69, 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, -/* 0x1730 */ 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1740 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, -/* 0x1750 */ 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, -/* 0x1760 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1770 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x1780 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, -/* 0x1790 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x17b0 */ 90, 77, 65, 95, 84, 65, 73, 76, 32, 48, 32, 76, 90, 77, 65, 95, -/* 0x17c0 */ 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x17d0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, -/* 0x17e0 */ 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, 95,110,114,118, -/* 0x17f0 */ 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, -/* 0x1800 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1810 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, -/* 0x1820 */ 48, 49, 55, 48, 32,117, 99,108, 95,110,114,118, 50,100, 95,100, -/* 0x1830 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, -/* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, -/* 0x1850 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, 48, 49, 55, 99, -/* 0x1860 */ 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109, -/* 0x1870 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1890 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, -/* 0x18a0 */ 122,109, 97, 68,101, 99,111,100,101, 10, 10, 82, 69, 76, 79, 67, -/* 0x18b0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x18c0 */ 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, -/* 0x18d0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x18e0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x18f0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, -/* 0x1910 */ 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, -/* 0x1920 */ 77, 65, 95, 68, 69, 67, 51, 48, 10 +/* 0x1000 */ 202, 0, 0,148, 3, 0, 0, 18,130,124, 8, 83,127, 0, 2,107, +/* 0x1010 */ 193, 0, 0, 84, 31, 0, 4,113,163,254,255, 84, 5, 0, 0, 20, +/* 0x1020 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, +/* 0x1030 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26, +/* 0x1040 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, +/* 0x1050 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185, +/* 0x1060 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, +/* 0x1070 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26, +/* 0x1080 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, +/* 0x1090 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11, +/* 0x10a0 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113, +/* 0x10b0 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203, +/* 0x10c0 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, +/* 0x10d0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145, +/* 0x10e0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145, +/* 0x10f0 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185, +/* 0x1100 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185, +/* 0x1110 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113, +/* 0x1120 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145, +/* 0x1130 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145, +/* 0x1140 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x1150 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84, +/* 0x1160 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82, +/* 0x1170 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, +/* 0x1180 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82, +/* 0x1190 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x11a0 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113, +/* 0x11b0 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113, +/* 0x11c0 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, +/* 0x11d0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, +/* 0x11e0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113, +/* 0x11f0 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18, +/* 0x1200 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26, +/* 0x1210 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, +/* 0x1220 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83, +/* 0x1230 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, +/* 0x1240 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, +/* 0x1250 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, +/* 0x1260 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83, +/* 0x1270 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185, +/* 0x1280 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, +/* 0x1290 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147, +/* 0x12a0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235, +/* 0x12b0 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, +/* 0x12c0 */ 63, 1, 14,235,195,229,255, 84, 13, 0, 0,148, 0, 0,128, 82, +/* 0x12d0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185, +/* 0x12e0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185, +/* 0x12f0 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83, +/* 0x1300 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, +/* 0x1310 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, +/* 0x1320 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83, +/* 0x1330 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121, +/* 0x1340 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84, +/* 0x1350 */ 231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58, +/* 0x1360 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75, +/* 0x1370 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, +/* 0x1380 */ 32, 2, 95,214,102,105,108,101, 32,102,111,114,109, 97,116, 32, +/* 0x1390 */ 101,108,102, 54, 52, 45,108,105,116,116,108,101, 97, 97,114, 99, +/* 0x13a0 */ 104, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, +/* 0x13b0 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x13c0 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, +/* 0x13d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, +/* 0x13e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, +/* 0x13f0 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, +/* 0x1400 */ 108, 97,103,115, 10, 32, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x1410 */ 68, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x1420 */ 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1430 */ 78, 84, 83, 10, 32, 32, 49, 32, 78, 82, 86, 50, 66, 32, 32, 32, +/* 0x1440 */ 32, 32, 32, 32, 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32, 48, +/* 0x1450 */ 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1460 */ 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, +/* 0x1470 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, +/* 0x1480 */ 32, 48, 32, 32, 48, 49, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x1490 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82, 86, +/* 0x14a0 */ 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55, 99, 32, +/* 0x14b0 */ 32, 48, 32, 32, 48, 32, 32, 48, 50,102, 52, 32, 32, 50, 42, 42, +/* 0x14c0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, +/* 0x14d0 */ 76, 90, 77, 65, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 48, 32, +/* 0x14e0 */ 32, 48, 32, 32, 48, 32, 32, 48, 52, 55, 48, 32, 32, 50, 42, 42, +/* 0x14f0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, 32, +/* 0x1500 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, +/* 0x1510 */ 48, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 55, 48, 32, 32, +/* 0x1520 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, +/* 0x1530 */ 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, +/* 0x1540 */ 32, 48, 57, 54, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 55, +/* 0x1550 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1560 */ 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1570 */ 32, 32, 32, 32, 48, 52, 97, 48, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x1580 */ 48,101,101, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1590 */ 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x15a0 */ 67, 51, 48, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x15b0 */ 48, 49, 51, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x15c0 */ 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 84, +/* 0x15d0 */ 65, 73, 76, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, +/* 0x15e0 */ 32, 48, 49, 51, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x15f0 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, +/* 0x1600 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1610 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, +/* 0x1620 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, +/* 0x1630 */ 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1640 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, +/* 0x1650 */ 82, 86, 95, 72, 69, 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, +/* 0x1660 */ 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1670 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, +/* 0x1680 */ 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, +/* 0x1690 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x16a0 */ 100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, 78, 82, 86, 50, 68, +/* 0x16b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16c0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 32, +/* 0x16d0 */ 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x16f0 */ 32, 76, 90, 77, 65, 95, 72, 69, 65, 68, 32, 48, 32, 76, 90, 77, +/* 0x1700 */ 65, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1710 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1720 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 48, 32, 76, 90, 77, +/* 0x1730 */ 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1740 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1750 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 48, 32, 76, 90, +/* 0x1760 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x1780 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, +/* 0x1790 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x17b0 */ 100, 32, 32, 76, 90, 77, 65, 95, 84, 65, 73, 76, 32, 48, 32, 76, +/* 0x17c0 */ 90, 77, 65, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x17e0 */ 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, +/* 0x17f0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1800 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1810 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x1820 */ 86, 50, 68, 32, 48, 49, 55, 48, 32,117, 99,108, 95,110,114,118, +/* 0x1830 */ 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, +/* 0x1840 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1850 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, +/* 0x1860 */ 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100, +/* 0x1870 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, +/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1890 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x18a0 */ 32, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, 10, 10, 82, +/* 0x18b0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x18c0 */ 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x18d0 */ 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, +/* 0x18e0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x18f0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, +/* 0x1910 */ 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, +/* 0x1920 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10 }; diff --git a/src/stub/armeb.v4a-linux.elf-entry.h b/src/stub/armeb.v4a-linux.elf-entry.h index 848ac9e6..0a359e49 100644 --- a/src/stub/armeb.v4a-linux.elf-entry.h +++ b/src/stub/armeb.v4a-linux.elf-entry.h @@ -1,5 +1,5 @@ /* armeb.v4a-linux.elf-entry.h - created from armeb.v4a-linux.elf-entry.bin, 13848 (0x3618) bytes + created from armeb.v4a-linux.elf-entry.bin, 13886 (0x363e) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARMEB_V4A_LINUX_ELF_ENTRY_SIZE 13848 -#define STUB_ARMEB_V4A_LINUX_ELF_ENTRY_ADLER32 0xbee041d2 -#define STUB_ARMEB_V4A_LINUX_ELF_ENTRY_CRC32 0x6fdb8360 +#define STUB_ARMEB_V4A_LINUX_ELF_ENTRY_SIZE 13886 +#define STUB_ARMEB_V4A_LINUX_ELF_ENTRY_ADLER32 0x1a5748b6 +#define STUB_ARMEB_V4A_LINUX_ELF_ENTRY_CRC32 0xbdd15d50 -unsigned char stub_armeb_v4a_linux_elf_entry[13848] = { +unsigned char stub_armeb_v4a_linux_elf_entry[13886] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 40, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 19, 84, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, @@ -100,7 +100,7 @@ unsigned char stub_armeb_v4a_linux_elf_entry[13848] = { /* 0x03d0 */ 229,205, 0, 17,226, 12,192, 15,229,205,192, 16,226,141, 0, 16, /* 0x03e0 */ 235, 0, 0, 41,225,160,208, 11,225,160, 48, 0,232,189, 0, 3, /* 0x03f0 */ 229,145, 16, 0,224,129, 16, 0,227,160, 32, 0,239,159, 0, 2, -/* 0x0400 */ 225,160, 0, 3,232,189,136, 0,231,240, 1,240,233, 45, 79,240, +/* 0x0400 */ 225,160, 0, 3,232,189,136, 0,234, 0, 0, 40,233, 45, 79,240, /* 0x0410 */ 226, 77,208, 48,229,141, 48, 0,229,208, 48, 0,229,208, 80, 2, /* 0x0420 */ 229,208,224, 1,229,157,192, 0,229,141, 48, 20,229,157, 48, 92, /* 0x0430 */ 227,160, 64, 0,229,140, 64, 0,229,131, 64, 0,229,157,192, 20, @@ -320,7 +320,7 @@ unsigned char stub_armeb_v4a_linux_elf_entry[13848] = { /* 0x1190 */ 224, 14, 14,147,225, 92, 0, 14, 49,160,112, 14, 32, 71,112, 14, /* 0x11a0 */ 50, 99,235, 2, 32, 76,192, 14, 48,131, 50,174, 32, 67, 50,163, /* 0x11b0 */ 224,176, 0, 0,225,193, 48,176,225,160,240, 2,229,141, 48, 20, -/* 0x11c0 */ 226,142, 96, 4,227,160, 80, 0,227,224, 64, 0,227,160, 32, 3, +/* 0x11c0 */ 226,142, 96, 4,227,160, 80, 0,227,224, 64, 0,227,160, 32, 7, /* 0x11d0 */ 229,150, 16, 0,227,160, 0, 0,229,141, 16, 12,239,144, 0,192, /* 0x11e0 */ 229,141, 0, 8,229,150, 48, 0,229, 45, 48, 4,225,160, 48, 13, /* 0x11f0 */ 225,160, 32, 0,229,214, 0, 8,229, 45, 0, 4,229,150, 16, 4, @@ -580,326 +580,328 @@ unsigned char stub_armeb_v4a_linux_elf_entry[13848] = { /* 0x21d0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x21e0 */ 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x21f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, -/* 0x2200 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x2210 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, -/* 0x2220 */ 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, -/* 0x2230 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2240 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, -/* 0x2250 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2260 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2270 */ 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2200 */ 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2210 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2220 */ 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x2230 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, +/* 0x2240 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, +/* 0x2250 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x2260 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x2270 */ 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2280 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2290 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, +/* 0x2290 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, /* 0x22a0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x22b0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, -/* 0x22c0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x22b0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, +/* 0x22c0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x22d0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x22e0 */ 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x22e0 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x22f0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2300 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x2300 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, /* 0x2310 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2320 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2330 */ 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2330 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2340 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2350 */ 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2350 */ 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x2360 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2370 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, +/* 0x2370 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, /* 0x2380 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2390 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x23a0 */ 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x23a0 */ 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x23b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x23c0 */ 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, +/* 0x23c0 */ 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, /* 0x23d0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x23e0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, -/* 0x23f0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x23e0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, +/* 0x23f0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2400 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2410 */ 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2410 */ 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2420 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2430 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, +/* 0x2430 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, /* 0x2440 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2450 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2460 */ 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2460 */ 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2470 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2480 */ 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2480 */ 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2490 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x24a0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, +/* 0x24a0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, /* 0x24b0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x24c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x24d0 */ 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x24d0 */ 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x24e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x24f0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, +/* 0x24f0 */ 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, /* 0x2500 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2510 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, -/* 0x2520 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2510 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, +/* 0x2520 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2530 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2540 */ 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2540 */ 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2550 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2560 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, +/* 0x2560 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, /* 0x2570 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2580 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2590 */ 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2590 */ 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x25a0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x25b0 */ 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x25b0 */ 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x25c0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x25d0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, +/* 0x25d0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, /* 0x25e0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x25f0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2600 */ 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2600 */ 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2610 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2620 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, +/* 0x2620 */ 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, /* 0x2630 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x2640 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, -/* 0x2650 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2650 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2660 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2670 */ 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2670 */ 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2680 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2690 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, +/* 0x2690 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, /* 0x26a0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x26b0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x26c0 */ 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x26c0 */ 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x26d0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x26e0 */ 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x26e0 */ 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, /* 0x26f0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2700 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, +/* 0x2700 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, /* 0x2710 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2720 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2730 */ 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2730 */ 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2740 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2750 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, +/* 0x2750 */ 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, /* 0x2760 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x2770 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, -/* 0x2780 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2780 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2790 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x27a0 */ 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x27a0 */ 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x27b0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x27c0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, +/* 0x27c0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, /* 0x27d0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x27e0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x27f0 */ 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x27f0 */ 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2800 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2810 */ 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2810 */ 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2820 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2830 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, +/* 0x2830 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, /* 0x2840 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2850 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2860 */ 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2860 */ 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2870 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2880 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, +/* 0x2880 */ 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, /* 0x2890 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x28a0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, -/* 0x28b0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x28a0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, +/* 0x28b0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x28c0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x28d0 */ 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x28d0 */ 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x28e0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x28f0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, +/* 0x28f0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, /* 0x2900 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2910 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2920 */ 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2920 */ 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2930 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2940 */ 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2940 */ 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2950 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2960 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, +/* 0x2960 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, /* 0x2970 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2980 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2990 */ 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2990 */ 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x29a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x29b0 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, +/* 0x29b0 */ 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, /* 0x29c0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x29d0 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, -/* 0x29e0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x29e0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x29f0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2a00 */ 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2a00 */ 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2a10 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2a20 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, +/* 0x2a20 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, /* 0x2a30 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2a40 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2a50 */ 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2a50 */ 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2a60 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2a70 */ 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2a70 */ 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2a80 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2a90 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, +/* 0x2a90 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, /* 0x2aa0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2ab0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2ac0 */ 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ac0 */ 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2ad0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2ae0 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, +/* 0x2ae0 */ 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, /* 0x2af0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2b00 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, -/* 0x2b10 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2b00 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, +/* 0x2b10 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2b20 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2b30 */ 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2b30 */ 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2b40 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2b50 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, +/* 0x2b50 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, /* 0x2b60 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2b70 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2b80 */ 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2b80 */ 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2b90 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2ba0 */ 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x2ba0 */ 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x2bb0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2bc0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, +/* 0x2bc0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, /* 0x2bd0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x2be0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x2bf0 */ 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2bf0 */ 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x2c00 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x2c10 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, +/* 0x2c10 */ 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, /* 0x2c20 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2c30 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, -/* 0x2c40 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2c30 */ 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, +/* 0x2c40 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x2c50 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, -/* 0x2c60 */ 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2c60 */ 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x2c70 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2c80 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, +/* 0x2c80 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, /* 0x2c90 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2ca0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x2cb0 */ 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2cb0 */ 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x2cc0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x2cd0 */ 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x2cd0 */ 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x2ce0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x2cf0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, +/* 0x2cf0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, /* 0x2d00 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2d10 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, -/* 0x2d20 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2d30 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2d40 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, -/* 0x2d50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x2d60 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, -/* 0x2d70 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2d80 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, -/* 0x2d90 */ 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2d10 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, +/* 0x2d20 */ 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2d30 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x2d40 */ 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x2d50 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, +/* 0x2d60 */ 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x2d70 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d80 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x2d90 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2da0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x2db0 */ 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2db0 */ 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2dc0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2dd0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, +/* 0x2dd0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, /* 0x2de0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2df0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x2e00 */ 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2e00 */ 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2e10 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x2e20 */ 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, +/* 0x2e20 */ 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, /* 0x2e30 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2e40 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, +/* 0x2e40 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, /* 0x2e50 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2e60 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x2e70 */ 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2e70 */ 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2e80 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2e90 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, +/* 0x2e90 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, /* 0x2ea0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2eb0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x2ec0 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2ec0 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2ed0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x2ee0 */ 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ee0 */ 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2ef0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2f00 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, +/* 0x2f00 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, /* 0x2f10 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2f20 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x2f30 */ 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2f30 */ 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2f40 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x2f50 */ 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, +/* 0x2f50 */ 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, /* 0x2f60 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2f70 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, +/* 0x2f70 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, /* 0x2f80 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2f90 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x2fa0 */ 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2fa0 */ 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2fb0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2fc0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, +/* 0x2fc0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, /* 0x2fd0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2fe0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x2ff0 */ 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2ff0 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3000 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3010 */ 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3010 */ 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3020 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3030 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, +/* 0x3030 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, /* 0x3040 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3050 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3060 */ 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3060 */ 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3070 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3080 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, +/* 0x3080 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, /* 0x3090 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x30a0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, +/* 0x30a0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, /* 0x30b0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x30c0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x30d0 */ 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x30d0 */ 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x30e0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x30f0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, +/* 0x30f0 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, /* 0x3100 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3110 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x3120 */ 101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3120 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3130 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3140 */ 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3140 */ 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3150 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3160 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, +/* 0x3160 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, /* 0x3170 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3180 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3190 */ 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3190 */ 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x31a0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x31b0 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, +/* 0x31b0 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, /* 0x31c0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x31d0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, +/* 0x31d0 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, /* 0x31e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x31f0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3200 */ 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3200 */ 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3210 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3220 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, +/* 0x3220 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, /* 0x3230 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3240 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x3250 */ 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3250 */ 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3260 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x3270 */ 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3270 */ 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x3280 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x3290 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, +/* 0x3290 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, /* 0x32a0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x32b0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x32c0 */ 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x32c0 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x32d0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x32e0 */ 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, +/* 0x32e0 */ 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, /* 0x32f0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3300 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, +/* 0x3300 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, /* 0x3310 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3320 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3330 */ 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3330 */ 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3340 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3350 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, +/* 0x3350 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, /* 0x3360 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x3370 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x3380 */ 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x3380 */ 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x3390 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x33a0 */ 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x33a0 */ 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x33b0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x33c0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, +/* 0x33c0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, /* 0x33d0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x33e0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x33f0 */ 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x33f0 */ 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3400 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3410 */ 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, +/* 0x3410 */ 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, /* 0x3420 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3430 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, +/* 0x3430 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, /* 0x3440 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x3450 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, -/* 0x3460 */ 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x3460 */ 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x3470 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x3480 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, +/* 0x3480 */ 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, /* 0x3490 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x34a0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x34b0 */ 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x34b0 */ 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x34c0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x34d0 */ 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x34d0 */ 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x34e0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x34f0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, +/* 0x34f0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, /* 0x3500 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x3510 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, -/* 0x3520 */ 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x3520 */ 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x3530 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x3540 */ 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, +/* 0x3540 */ 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, /* 0x3550 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x3560 */ 65, 95, 68, 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x3570 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x3580 */ 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, -/* 0x3590 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x35a0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x35b0 */ 48, 48, 48,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x35c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, -/* 0x35d0 */ 10, 48, 48, 48, 48, 48, 48,101, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x35e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, -/* 0x35f0 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,101, 99, 32, 82, 95, -/* 0x3600 */ 65, 82, 77, 95, 65, 66, 83, 51, 50, 32, 32, 32, 32, 32, 32, 32, -/* 0x3610 */ 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x3560 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, +/* 0x3570 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x3580 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 10, 82, +/* 0x3590 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x35a0 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, +/* 0x35b0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x35c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x35d0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48,100, 99, 32, 82, 95, 65, 82, +/* 0x35e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, +/* 0x35f0 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,101, 56, 32, +/* 0x3600 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3610 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, +/* 0x3620 */ 48,101, 99, 32, 82, 95, 65, 82, 77, 95, 65, 66, 83, 51, 50, 32, +/* 0x3630 */ 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 }; diff --git a/src/stub/armeb.v4a-linux.elf-fold.h b/src/stub/armeb.v4a-linux.elf-fold.h index a08aa488..d0393faf 100644 --- a/src/stub/armeb.v4a-linux.elf-fold.h +++ b/src/stub/armeb.v4a-linux.elf-fold.h @@ -1,5 +1,5 @@ /* armeb.v4a-linux.elf-fold.h - created from armeb.v4a-linux.elf-fold.bin, 2856 (0xb28) bytes + created from armeb.v4a-linux.elf-fold.bin, 2864 (0xb30) bytes This file is part of the UPX executable compressor. @@ -31,17 +31,17 @@ */ -#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2856 -#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0xa0e89765 -#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0xaa51ca16 +#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2864 +#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x625d9ab5 +#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0x1e64357e -unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { +unsigned char stub_armeb_v4a_linux_elf_fold[2864] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0, -/* 0x0040 */ 0, 0,128, 0, 0, 0, 11, 40, 0, 0, 11, 40, 0, 0, 0, 5, -/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 11, 40, 0, 0, 0, 0, +/* 0x0040 */ 0, 0,128, 0, 0, 0, 11, 48, 0, 0, 11, 48, 0, 0, 0, 5, +/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 11, 48, 0, 0, 0, 0, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 0, 0, 0, 34,232,189, 31,192,225,160, 16, 13,226, 77,218, 1, @@ -61,7 +61,7 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { /* 0x0160 */ 229,141, 0, 24,229, 49, 32, 4,225, 81, 0, 13,229, 32, 32, 4, /* 0x0170 */ 26,255,255,251,225,160,208, 0,232,189, 12, 16,226, 77,220, 10, /* 0x0180 */ 229,154,144, 4,225,160,128, 13,229,154,112, 0,226,143, 96,176, -/* 0x0190 */ 226,137,144, 12,233, 45, 15,248,232,189, 0, 15,235, 0, 2, 20, +/* 0x0190 */ 226,137,144, 12,233, 45, 15,248,232,189, 0, 15,235, 0, 2, 22, /* 0x01a0 */ 226,141,208, 20,226,141,220, 10,229,141, 0, 16,229,155, 16, 92, /* 0x01b0 */ 229,155, 32, 60,225,160, 0, 11,224, 65, 16, 2,235, 0, 0, 70, /* 0x01c0 */ 228,157, 64, 4,227,160, 80, 0,233, 45, 0, 48,227,160, 48, 2, @@ -71,7 +71,7 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { /* 0x0200 */ 227,160,144, 0,227,160,160, 0,227,160,176, 0,226, 77,199, 1, /* 0x0210 */ 228, 29,112, 32,229,141,112, 0,229,157,112, 0,225, 92, 0, 13, /* 0x0220 */ 58,255,255,250,226,141,215, 1,227,160,112, 0,227,160,192, 0, -/* 0x0230 */ 229, 18,240, 4, 47,112,114,111, 99, 47,115,101,108,102, 47,101, +/* 0x0230 */ 225,160,240, 14, 47,112,114,111, 99, 47,115,101,108,102, 47,101, /* 0x0240 */ 120,101, 0, 0,226, 3, 48,255,227, 83, 0, 81, 17,160,240, 14, /* 0x0250 */ 225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,226, 65, 16, 1, /* 0x0260 */ 231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11, 26, 0, 0, 4, @@ -93,9 +93,9 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { /* 0x0360 */ 224,161, 20, 1,224,129, 28, 34,225,160, 32, 0,224,144, 8, 0, /* 0x0370 */ 224,161, 24, 1,224,129, 24, 34,224, 80, 15,140,224,193, 16,172, /* 0x0380 */ 224,144, 0, 12,226,161, 0, 0,225,160,240, 14,227, 80, 0, 0, -/* 0x0390 */ 1,160,240, 14,229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8, -/* 0x03a0 */ 26,255,255,251,229,128, 32, 4,225,160,240, 14,229,159, 0, 0, -/* 0x03b0 */ 225,160,240, 14,255,255,240, 0,229,144, 48, 0,225, 83, 0, 2, +/* 0x0390 */ 1, 47,255, 30,229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8, +/* 0x03a0 */ 26,255,255,251,229,128, 32, 4,225, 47,255, 30,229,159, 0, 0, +/* 0x03b0 */ 225, 47,255, 30,255,255,240, 0,229,144, 48, 0,225, 83, 0, 2, /* 0x03c0 */ 229,144, 48, 4,229, 45,224, 4, 33,160,192, 3,225,160,224, 2, /* 0x03d0 */ 33,160, 32, 2, 42, 0, 0, 3,227,160, 0,127,235,255,255,173, /* 0x03e0 */ 229, 92, 48, 1,229, 65, 48, 1,226, 66, 32, 1,227,114, 0, 1, @@ -111,12 +111,12 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { /* 0x0480 */ 225, 81, 0, 14,138,255,255,251,229,148, 48, 0,225, 94, 0, 3, /* 0x0490 */ 138,255,255,248,225, 81, 0, 14, 42, 0, 0, 33,229,221,192, 12, /* 0x04a0 */ 229,149, 0, 4,229,148, 32, 4,226,141, 48, 16,229,141,224, 16, -/* 0x04b0 */ 229,141,192, 0,225,160,224, 15,225,160,240, 7,227, 80, 0, 0, +/* 0x04b0 */ 229,141,192, 0,225,160,224, 15,225, 47,255, 23,227, 80, 0, 0, /* 0x04c0 */ 26,255,255,236,229,157, 16, 16,229,157, 48, 4,225, 81, 0, 3, /* 0x04d0 */ 26,255,255,232,229,221, 32, 13,227, 82, 0, 0, 19, 86, 0, 0, /* 0x04e0 */ 10, 0, 0, 9,227, 81, 12, 2,138, 0, 0, 2,229,148, 48, 0, /* 0x04f0 */ 225, 83, 0, 1, 26, 0, 0, 4,225,160, 48, 2,229,148, 0, 4, -/* 0x0500 */ 229,221, 32, 14,225,160,224, 15,225,160,240, 6,229,157, 48, 8, +/* 0x0500 */ 229,221, 32, 14,225,160,224, 15,225, 47,255, 22,229,157, 48, 8, /* 0x0510 */ 232,149, 0, 6,224,130, 32, 3,224, 99, 16, 1,232,133, 0, 6, /* 0x0520 */ 234, 0, 0, 3,225,160, 32, 1,225,160, 0, 5,229,148, 16, 4, /* 0x0530 */ 235,255,255,160,229,157, 48, 4,232,148, 0, 6,224,130, 32, 3, @@ -124,11 +124,11 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { /* 0x0550 */ 26,255,255,183,226,141,208, 20,232,189,128,240, 33, 88, 80, 85, /* 0x0560 */ 233, 45, 79,240,225,160,128, 1,229,145, 16, 28,226, 77,208, 52, /* 0x0570 */ 226, 82,144, 0,229,141, 0, 12,229,141, 48, 8,224,136, 96, 1, -/* 0x0580 */ 10, 0, 0, 18,229,157, 16, 88,229,145, 0, 0,225,208, 49,176, -/* 0x0590 */ 226,128, 16, 52,227, 83, 0, 2, 21,145, 48, 40, 5,145, 80, 8, -/* 0x05a0 */ 16, 99, 0, 0,229,145, 48, 20, 17,160, 80, 0, 3,160, 32, 0, -/* 0x05b0 */ 21,141, 0, 24,225,160, 16, 3,225,160, 0, 5,224,131, 48, 5, -/* 0x05c0 */ 5,141, 32, 24,229,141, 48, 20,235,255,255, 67,234, 0, 0, 41, +/* 0x0580 */ 10, 0, 0, 18,229,157, 32, 88,229,146, 0, 0,225,208, 49,176, +/* 0x0590 */ 226,128, 16, 52,227, 83, 0, 2, 21,145, 48, 40, 3,160, 48, 0, +/* 0x05a0 */ 16, 99, 0, 0, 5,145, 80, 8, 5,141, 48, 24,229,145, 48, 20, +/* 0x05b0 */ 17,160, 80, 0, 21,141, 0, 24,225,160, 16, 3,225,160, 0, 5, +/* 0x05c0 */ 224,131, 48, 5,229,141, 48, 20,235,255,255, 67,234, 0, 0, 41, /* 0x05d0 */ 225,216, 49,176,225,216, 34,188,227, 83, 0, 3, 19,160,192, 16, /* 0x05e0 */ 3,160,192, 0,226, 66, 0, 1,225,160, 16, 6,227,224, 64, 0, /* 0x05f0 */ 225,160, 80, 9,234, 0, 0, 13,229,145, 48, 0,227, 83, 0, 1, @@ -141,78 +141,78 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2856] = { /* 0x0660 */ 227,160, 32, 0,235,255,255, 43,224,100, 64, 0,224,133, 80, 0, /* 0x0670 */ 229,141, 64, 24,229,141, 80, 20,229,157,192, 24,227,160, 48, 52, /* 0x0680 */ 224, 12, 12,147,227,160, 0, 0,226,134, 80, 32,229,141,192, 36, -/* 0x0690 */ 229,141, 0, 28,234, 0, 0,171,227, 89, 0, 0, 10, 0, 0, 9, -/* 0x06a0 */ 229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 6,229,157, 16, 24, -/* 0x06b0 */ 229, 21, 32, 24,229,157, 0, 8,224,129, 32, 2,227,160, 16, 3, -/* 0x06c0 */ 235,255,255, 49,234, 0, 0,155,229, 21, 48, 32,227, 83, 0, 1, -/* 0x06d0 */ 26, 0, 0,152,229, 21, 48, 12,227, 83, 0, 0, 10, 0, 0,149, +/* 0x0690 */ 229,141, 0, 28,234, 0, 0,173,227, 89, 0, 0, 10, 0, 0, 9, +/* 0x06a0 */ 229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 6,229, 21, 32, 24, +/* 0x06b0 */ 229,157, 48, 24,229,157, 0, 8,224,131, 32, 2,227,160, 16, 3, +/* 0x06c0 */ 235,255,255, 49,234, 0, 0,157,229, 21, 48, 32,227, 83, 0, 1, +/* 0x06d0 */ 26, 0, 0,154,229, 21, 48, 12,227, 83, 0, 0, 10, 0, 0,151, /* 0x06e0 */ 227, 89, 0, 0, 10, 0, 0, 18,229, 21, 48, 28,227, 83, 0, 0, -/* 0x06f0 */ 26, 0, 0, 15,229,152, 48, 28,229, 21, 32, 24,224,130, 32, 3, -/* 0x0700 */ 229,157, 48, 24,227,160, 16, 3,224,131, 32, 2,229,157, 0, 8, +/* 0x06f0 */ 26, 0, 0, 15,229,152, 48, 28,229, 21, 32, 24,229,157,192, 24, +/* 0x0700 */ 224,130, 32, 3,224,140, 32, 2,227,160, 16, 3,229,157, 0, 8, /* 0x0710 */ 235,255,255, 29,229,157, 0, 8,227,160, 16, 5,225,216, 34,188, /* 0x0720 */ 235,255,255, 25,229,157, 0, 8,227,160, 16, 4,225,216, 34,186, -/* 0x0730 */ 235,255,255, 21,229, 21, 48, 8,229,159, 34,172,226, 3, 48, 7, -/* 0x0740 */ 225,160, 49, 3,225,160, 67, 50,229,157,192, 24,229, 21, 48, 24, -/* 0x0750 */ 224,140, 48, 3,229,141, 48, 16,229,157, 0, 16,229, 21, 48, 16, -/* 0x0760 */ 225,160, 42, 0,229, 21, 16, 12,225,160, 42, 34,227, 89, 0, 0, -/* 0x0770 */ 229,141, 48, 44,229,141, 0, 48,224,131,160, 2,226, 4,176, 7, -/* 0x0780 */ 229,141, 16, 40,224, 98, 96, 0, 10, 0, 0, 14,225,160, 0, 6, -/* 0x0790 */ 225,160, 16, 10,227,160, 32, 3,227,160, 48, 16,235,255,254,221, -/* 0x07a0 */ 225, 86, 0, 0, 26, 0, 0, 82,229,157, 32, 92,226, 20, 48, 4, -/* 0x07b0 */ 17,160, 48, 2,225,160, 0, 9,226,141, 16, 44,229,157, 32, 12, -/* 0x07c0 */ 235,255,255, 20,234, 0, 0, 11,229, 21,192, 28,224, 98,192, 12, -/* 0x07d0 */ 229,141,192, 4,229,157,192, 12,225,160, 0, 6,225,160, 16, 10, -/* 0x07e0 */ 225,160, 32, 11,227,160, 48, 18,229,141,192, 0,235,255,254,193, -/* 0x07f0 */ 225, 86, 0, 0, 26, 0, 0, 62,226,106, 48, 0,225,160,122, 3, -/* 0x0800 */ 227, 27, 0, 2,225,160,122, 39, 10, 0, 0, 7,227, 87, 0, 0, -/* 0x0810 */ 10, 0, 0, 5,224,134, 16, 10,225,160, 32, 7,227,160, 48, 0, -/* 0x0820 */ 226, 82, 32, 1,228,193, 48, 1, 26,255,255,251,227, 89, 0, 0, -/* 0x0830 */ 10, 0, 0, 49,235,255,254,181,229, 21, 48, 32,227, 83, 0, 1, -/* 0x0840 */ 229,141, 0, 32, 26, 0, 0, 36,229, 21, 48, 8,227, 19, 0, 1, -/* 0x0850 */ 10, 0, 0, 33,229, 21, 32, 12,229, 21, 48, 16,225, 82, 0, 3, -/* 0x0860 */ 229, 21, 16, 24, 26, 0, 0, 74,224,130, 48, 1,229,157, 0, 24, -/* 0x0870 */ 226,131, 48, 3,224,128, 48, 3,227,195, 64, 3,226,100, 48, 0, -/* 0x0880 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,154, 0, 0, 64, -/* 0x0890 */ 234, 0, 0, 10,227,160,224, 0,227,160, 32, 3,227,224,192, 0, -/* 0x08a0 */ 225,160, 0, 14,227,160, 26, 1,227,160, 48, 34,232,141, 80, 0, -/* 0x08b0 */ 235,255,254,144,226, 80, 32, 0, 26, 0, 0, 60,234, 0, 0, 6, -/* 0x08c0 */ 229,157, 16, 32,229,159, 49, 36,232,132, 0, 10,225,160, 0, 4, -/* 0x08d0 */ 226,132, 16, 8,235,255,254,132,234, 0, 0, 62,225,160, 0, 6, -/* 0x08e0 */ 225,160, 16, 10,225,160, 32, 11,235,255,254,125,227, 80, 0, 0, -/* 0x08f0 */ 10, 0, 0, 1,227,160, 0,127,235,255,254,102,229,157, 32, 16, -/* 0x0900 */ 229,157,192, 40,224,138, 48, 7,224,130, 16, 12,224,134, 64, 3, -/* 0x0910 */ 225, 84, 0, 1, 42, 0, 0, 7,224,100, 16, 1,225,160, 32, 11, -/* 0x0920 */ 225,160, 0, 4,227,160, 48, 16,235,255,254,122,225, 84, 0, 0, -/* 0x0930 */ 10, 0, 0, 0,234,255,255,254,229,157, 0, 28,226,128, 0, 1, -/* 0x0940 */ 229,141, 0, 28,226,133, 80, 32,225,216, 50,188,229,157, 16, 28, -/* 0x0950 */ 225, 81, 0, 3,186,255,255, 79,227, 89, 0, 0, 10, 0, 0, 3, -/* 0x0960 */ 225,216, 49,176,227, 83, 0, 3, 21,157, 0, 20, 27,255,254, 86, -/* 0x0970 */ 229,157, 32, 88,227, 82, 0, 0, 21,157, 48, 24, 21,130, 48, 0, -/* 0x0980 */ 229,157, 32, 24,229,152, 0, 24,224,130, 0, 0,226,141,208, 52, -/* 0x0990 */ 232,189,143,240,229, 21, 48, 28,227, 83, 0, 0, 5,157,192, 36, -/* 0x09a0 */ 0,129, 48, 12, 2,131, 64, 8, 10,255,255,196,234,255,255,184, -/* 0x09b0 */ 229,157, 16, 32,229,159, 48, 52,225,160, 64, 2,232,130, 0, 10, -/* 0x09c0 */ 226,130, 16, 8,235,255,254, 72,225,160, 0, 4,227,160, 16, 8, -/* 0x09d0 */ 227,160, 32, 5,235,255,254, 66,225,160, 32, 4,229,157, 0, 8, -/* 0x09e0 */ 227,160, 16, 0,235,255,254,104,234,255,255,187,115, 81, 98, 64, -/* 0x09f0 */ 225,160,240, 14,233, 45, 71,240,226, 77,208, 12,226,141, 96, 52, -/* 0x0a00 */ 225,160,144, 0,225,160,112, 1,225,160,128, 3,225,160, 0, 6, -/* 0x0a10 */ 226,141, 16, 44,227,160, 48, 0,229,157,160, 48,225,160, 80, 2, -/* 0x0a20 */ 229,157, 64, 52,235,255,254,123,229,157, 48, 60,226,141,224, 12, -/* 0x0a30 */ 229,157,192, 56,229, 46, 48, 4,224,100,192, 12,225,160, 32, 6, -/* 0x0a40 */ 225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,229,141,192, 56, -/* 0x0a50 */ 229,141,224, 0,229,141,112, 52,229,141,128, 4,235,255,254,191, -/* 0x0a60 */ 225,160, 64, 0,227,160, 16, 9,225,160, 0, 9,225,160, 32, 4, -/* 0x0a70 */ 235,255,254, 69,225,218, 2,188,226,138, 32, 52,227,160, 16, 0, -/* 0x0a80 */ 234, 0, 0, 35,229,146, 48, 0,227, 83, 0, 3, 26, 0, 0, 30, -/* 0x0a90 */ 229,146, 48, 8,229,157, 0, 8,227,160, 16, 0,224,131, 0, 0, -/* 0x0aa0 */ 225,160, 32, 1,235,255,254, 0,226, 80, 80, 0,186, 0, 0, 4, -/* 0x0ab0 */ 225,160, 16, 10,227,160, 44, 2,235,255,253,247,227, 80, 12, 2, -/* 0x0ac0 */ 10, 0, 0, 1,227,160, 0,127,235,255,253,242,227,160,224, 0, -/* 0x0ad0 */ 225,160, 32, 14,226,141,192, 8,225,160, 16, 10,225,160, 48, 9, -/* 0x0ae0 */ 225,160, 0, 5,232,141, 80, 0,235,255,254,156,227,160, 16, 7, -/* 0x0af0 */ 225,160, 64, 0,229,157, 32, 8,225,160, 0, 9,235,255,254, 34, -/* 0x0b00 */ 225,160, 0, 5,235,255,253,234,234, 0, 0, 3,226,130, 32, 32, -/* 0x0b10 */ 226,129, 16, 1,225, 81, 0, 0,186,255,255,217,225,160, 0, 4, -/* 0x0b20 */ 226,141,208, 12,232,189,135,240 +/* 0x0730 */ 235,255,255, 21,229, 21, 16, 8,229,159, 34,180,226, 1, 48, 7, +/* 0x0740 */ 225,160, 49, 3,225,160, 67, 50,229,157, 0, 24,229, 21, 48, 24, +/* 0x0750 */ 224,128, 48, 3,229,141, 48, 16,229,157,192, 16,229, 21, 48, 16, +/* 0x0760 */ 225,160, 42, 12,229, 21, 0, 12,225,160, 42, 34,227, 89, 0, 0, +/* 0x0770 */ 229,141, 48, 44,229,141,192, 48,224,131,160, 2,226, 4,176, 7, +/* 0x0780 */ 229,141, 0, 40,224, 98, 96, 12, 10, 0, 0, 16,227, 17, 0, 1, +/* 0x0790 */ 3,160, 32, 3, 19,160, 32, 7,225,160, 0, 6,225,160, 16, 10, +/* 0x07a0 */ 227,160, 48, 16,235,255,254,219,225, 86, 0, 0, 26, 0, 0, 82, +/* 0x07b0 */ 229,157, 32, 92,226, 20, 48, 4, 17,160, 48, 2,225,160, 0, 9, +/* 0x07c0 */ 226,141, 16, 44,229,157, 32, 12,235,255,255, 18,234, 0, 0, 11, +/* 0x07d0 */ 229, 21,192, 28,224, 98,192, 12,229,141,192, 4,229,157,192, 12, +/* 0x07e0 */ 225,160, 0, 6,225,160, 16, 10,225,160, 32, 11,227,160, 48, 18, +/* 0x07f0 */ 229,141,192, 0,235,255,254,191,225, 86, 0, 0, 26, 0, 0, 62, +/* 0x0800 */ 226,106, 48, 0,225,160,122, 3,227, 27, 0, 2,225,160,122, 39, +/* 0x0810 */ 10, 0, 0, 7,227, 87, 0, 0, 10, 0, 0, 5,224,134, 16, 10, +/* 0x0820 */ 225,160, 32, 7,227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1, +/* 0x0830 */ 26,255,255,251,227, 89, 0, 0, 10, 0, 0, 49,235,255,254,179, +/* 0x0840 */ 229, 21, 48, 32,227, 83, 0, 1,229,141, 0, 32, 26, 0, 0, 36, +/* 0x0850 */ 229, 21, 48, 8,227, 19, 0, 1, 10, 0, 0, 33,229, 21, 32, 12, +/* 0x0860 */ 229, 21, 48, 16,225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 74, +/* 0x0870 */ 224,130, 48, 1,229,157, 0, 24,226,131, 48, 3,224,128, 48, 3, +/* 0x0880 */ 227,195, 64, 3,226,100, 48, 0,225,160, 58, 3,225,160, 58, 35, +/* 0x0890 */ 227, 83, 0, 7,154, 0, 0, 64,234, 0, 0, 10,227,160,224, 0, +/* 0x08a0 */ 227,160, 32, 7,227,224,192, 0,225,160, 0, 14,227,160, 26, 1, +/* 0x08b0 */ 227,160, 48, 34,232,141, 80, 0,235,255,254,142,226, 80, 32, 0, +/* 0x08c0 */ 26, 0, 0, 60,234, 0, 0, 6,229,157, 32, 32,229,159, 49, 36, +/* 0x08d0 */ 232,132, 0, 12,225,160, 0, 4,226,132, 16, 8,235,255,254,130, +/* 0x08e0 */ 234, 0, 0, 62,225,160, 0, 6,225,160, 16, 10,225,160, 32, 11, +/* 0x08f0 */ 235,255,254,123,227, 80, 0, 0, 10, 0, 0, 1,227,160, 0,127, +/* 0x0900 */ 235,255,254,100,229,157,192, 16,229,157, 0, 40,224,138, 48, 7, +/* 0x0910 */ 224,140, 16, 0,224,134, 64, 3,225, 84, 0, 1, 42, 0, 0, 7, +/* 0x0920 */ 224,100, 16, 1,225,160, 32, 11,225,160, 0, 4,227,160, 48, 16, +/* 0x0930 */ 235,255,254,120,225, 84, 0, 0, 10, 0, 0, 0,234,255,255,254, +/* 0x0940 */ 229,157, 32, 28,226,130, 32, 1,229,141, 32, 28,226,133, 80, 32, +/* 0x0950 */ 225,216, 50,188,229,157,192, 28,225, 92, 0, 3,186,255,255, 77, +/* 0x0960 */ 227, 89, 0, 0, 10, 0, 0, 3,225,216, 49,176,227, 83, 0, 3, +/* 0x0970 */ 21,157, 0, 20, 27,255,254, 84,229,157, 0, 88,227, 80, 0, 0, +/* 0x0980 */ 21,157, 32, 24, 21,128, 32, 0,229,157, 48, 24,229,152, 0, 24, +/* 0x0990 */ 224,131, 0, 0,226,141,208, 52,232,189,143,240,229, 21, 48, 28, +/* 0x09a0 */ 227, 83, 0, 0, 5,157,192, 36, 0,129, 48, 12, 2,131, 64, 8, +/* 0x09b0 */ 10,255,255,196,234,255,255,184,225,160, 64, 2,229,159, 48, 52, +/* 0x09c0 */ 229,157, 32, 32,226,132, 16, 8,232,132, 0, 12,235,255,254, 70, +/* 0x09d0 */ 225,160, 0, 4,227,160, 16, 8,227,160, 32, 5,235,255,254, 64, +/* 0x09e0 */ 225,160, 32, 4,229,157, 0, 8,227,160, 16, 0,235,255,254,102, +/* 0x09f0 */ 234,255,255,187,115, 81, 98, 64,225,160,240, 14,233, 45, 71,240, +/* 0x0a00 */ 226, 77,208, 12,226,141, 96, 52,225,160,144, 0,225,160,112, 1, +/* 0x0a10 */ 225,160,128, 3,225,160, 0, 6,226,141, 16, 44,227,160, 48, 0, +/* 0x0a20 */ 229,157,160, 48,225,160, 80, 2,229,157, 64, 52,235,255,254,121, +/* 0x0a30 */ 229,157, 48, 60,226,141,224, 12,229,157,192, 56,229, 46, 48, 4, +/* 0x0a40 */ 224,100,192, 12,225,160, 32, 6,225,160, 16, 10,225,160, 48, 9, +/* 0x0a50 */ 225,160, 0, 5,229,141,192, 56,229,141,224, 0,229,141,112, 52, +/* 0x0a60 */ 229,141,128, 4,235,255,254,189,225,160, 64, 0,227,160, 16, 9, +/* 0x0a70 */ 225,160, 0, 9,225,160, 32, 4,235,255,254, 67,225,218, 2,188, +/* 0x0a80 */ 226,138, 32, 52,227,160, 16, 0,234, 0, 0, 35,229,146, 48, 0, +/* 0x0a90 */ 227, 83, 0, 3, 26, 0, 0, 30,229,146, 48, 8,229,157, 0, 8, +/* 0x0aa0 */ 227,160, 16, 0,224,131, 0, 0,225,160, 32, 1,235,255,253,254, +/* 0x0ab0 */ 226, 80, 80, 0,186, 0, 0, 4,225,160, 16, 10,227,160, 44, 2, +/* 0x0ac0 */ 235,255,253,245,227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127, +/* 0x0ad0 */ 235,255,253,240,227,160,224, 0,225,160, 32, 14,226,141,192, 8, +/* 0x0ae0 */ 225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,232,141, 80, 0, +/* 0x0af0 */ 235,255,254,154,227,160, 16, 7,225,160, 64, 0,229,157, 32, 8, +/* 0x0b00 */ 225,160, 0, 9,235,255,254, 32,225,160, 0, 5,235,255,253,232, +/* 0x0b10 */ 234, 0, 0, 3,226,130, 32, 32,226,129, 16, 1,225, 81, 0, 0, +/* 0x0b20 */ 186,255,255,217,225,160, 0, 4,226,141,208, 12,232,189,135,240 }; diff --git a/src/stub/armeb.v5a-linux.kernel.vmlinux.h b/src/stub/armeb.v5a-linux.kernel.vmlinux.h index 19a62202..0201306b 100644 --- a/src/stub/armeb.v5a-linux.kernel.vmlinux.h +++ b/src/stub/armeb.v5a-linux.kernel.vmlinux.h @@ -1,5 +1,5 @@ /* armeb.v5a-linux.kernel.vmlinux.h - created from armeb.v5a-linux.kernel.vmlinux.bin, 14395 (0x383b) bytes + created from armeb.v5a-linux.kernel.vmlinux.bin, 14433 (0x3861) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_ARMEB_V5A_LINUX_KERNEL_VMLINUX_SIZE 14395 -#define STUB_ARMEB_V5A_LINUX_KERNEL_VMLINUX_ADLER32 0xb79f9086 -#define STUB_ARMEB_V5A_LINUX_KERNEL_VMLINUX_CRC32 0x6f404789 +#define STUB_ARMEB_V5A_LINUX_KERNEL_VMLINUX_SIZE 14433 +#define STUB_ARMEB_V5A_LINUX_KERNEL_VMLINUX_ADLER32 0xb24498b8 +#define STUB_ARMEB_V5A_LINUX_KERNEL_VMLINUX_CRC32 0x16c40117 -unsigned char stub_armeb_v5a_linux_kernel_vmlinux[14395] = { +unsigned char stub_armeb_v5a_linux_kernel_vmlinux[14433] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 40, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 18,248, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, @@ -105,7 +105,7 @@ unsigned char stub_armeb_v5a_linux_kernel_vmlinux[14395] = { /* 0x0420 */ 228,209,192, 1,226, 12,192, 7,229,205,192, 18,228,209,192, 1, /* 0x0430 */ 225,160, 2, 44,229,205, 0, 17,226, 12,192, 15,229,205,192, 16, /* 0x0440 */ 226,141, 0, 16,235, 0, 0, 34,225,160,208, 11,232,189,136, 0, -/* 0x0450 */ 225, 32, 0,112,233, 45, 79,240,226, 77,208, 48,229,141, 48, 0, +/* 0x0450 */ 234, 0, 0, 33,233, 45, 79,240,226, 77,208, 48,229,141, 48, 0, /* 0x0460 */ 229,208, 48, 0,229,208, 80, 2,229,208,224, 1,229,157,192, 0, /* 0x0470 */ 229,141, 48, 20,229,157, 48, 92,227,160, 64, 0,229,140, 64, 0, /* 0x0480 */ 229,131, 64, 0,229,157,192, 20,229,208, 48, 1,224,140, 48, 3, @@ -625,315 +625,318 @@ unsigned char stub_armeb_v5a_linux_kernel_vmlinux[14395] = { /* 0x24a0 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, /* 0x24b0 */ 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x24c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, -/* 0x24d0 */ 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x24e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, -/* 0x24f0 */ 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x2500 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2510 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x2520 */ 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2530 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2540 */ 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x24d0 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, +/* 0x24e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x24f0 */ 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x2500 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x2510 */ 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, +/* 0x2520 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x2540 */ 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2550 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2560 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, +/* 0x2560 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, /* 0x2570 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2580 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2590 */ 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2590 */ 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x25a0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x25b0 */ 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x25b0 */ 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, /* 0x25c0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x25d0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, +/* 0x25d0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, /* 0x25e0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x25f0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2600 */ 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2600 */ 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2610 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2620 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, +/* 0x2620 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, /* 0x2630 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2640 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x2650 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2650 */ 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2660 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2670 */ 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2670 */ 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2680 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2690 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, 82, +/* 0x2690 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, /* 0x26a0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x26b0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x26c0 */ 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x26c0 */ 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x26d0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x26e0 */ 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, +/* 0x26e0 */ 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, /* 0x26f0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2700 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, +/* 0x2700 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, /* 0x2710 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2720 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2730 */ 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2730 */ 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2740 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2750 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, +/* 0x2750 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, /* 0x2760 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2770 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x2780 */ 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2780 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2790 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x27a0 */ 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x27a0 */ 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x27b0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x27c0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, +/* 0x27c0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, /* 0x27d0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x27e0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x27f0 */ 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x27f0 */ 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2800 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2810 */ 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, +/* 0x2810 */ 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, /* 0x2820 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2830 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50,101, 56, +/* 0x2830 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, /* 0x2840 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2850 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2860 */ 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2860 */ 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2870 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2880 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, +/* 0x2880 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, /* 0x2890 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x28a0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x28b0 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x28b0 */ 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x28c0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x28d0 */ 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x28d0 */ 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x28e0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x28f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, +/* 0x28f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, /* 0x2900 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2910 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2920 */ 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2920 */ 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2930 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2940 */ 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, +/* 0x2940 */ 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, /* 0x2950 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2960 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 48, +/* 0x2960 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, /* 0x2970 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2980 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2990 */ 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2990 */ 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x29a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x29b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, +/* 0x29b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, /* 0x29c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x29d0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x29e0 */ 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x29e0 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x29f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2a00 */ 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2a00 */ 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2a10 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2a20 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, +/* 0x2a20 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, /* 0x2a30 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2a40 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2a50 */ 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2a50 */ 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2a60 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2a70 */ 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, +/* 0x2a70 */ 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, /* 0x2a80 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2a90 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,100, 52, +/* 0x2a90 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, /* 0x2aa0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2ab0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2ac0 */ 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2ac0 */ 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2ad0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2ae0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, 95, 65, +/* 0x2ae0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, /* 0x2af0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2b00 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, -/* 0x2b10 */ 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2b00 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, +/* 0x2b10 */ 102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2b20 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2b30 */ 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2b30 */ 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2b40 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2b50 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, +/* 0x2b50 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, /* 0x2b60 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2b70 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2b80 */ 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2b80 */ 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2b90 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2ba0 */ 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, +/* 0x2ba0 */ 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, /* 0x2bb0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2bc0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,101, 52, +/* 0x2bc0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, /* 0x2bd0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2be0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2bf0 */ 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2bf0 */ 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2c00 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2c10 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, +/* 0x2c10 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, /* 0x2c20 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2c30 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, -/* 0x2c40 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2c40 */ 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2c50 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2c60 */ 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2c60 */ 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2c70 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2c80 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, +/* 0x2c80 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, /* 0x2c90 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2ca0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2cb0 */ 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2cb0 */ 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2cc0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2cd0 */ 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x2cd0 */ 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, /* 0x2ce0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2cf0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,101, 99, +/* 0x2cf0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, /* 0x2d00 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2d10 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2d20 */ 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2d20 */ 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2d30 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2d40 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, +/* 0x2d40 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, /* 0x2d50 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2d60 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2d70 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2d70 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2d80 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2d90 */ 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2d90 */ 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2da0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2db0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, +/* 0x2db0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, /* 0x2dc0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2dd0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2de0 */ 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2de0 */ 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2df0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2e00 */ 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, +/* 0x2e00 */ 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, /* 0x2e10 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2e20 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,100, 48, +/* 0x2e20 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, /* 0x2e30 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2e40 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2e50 */ 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2e50 */ 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2e60 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2e70 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, +/* 0x2e70 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, /* 0x2e80 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2e90 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, -/* 0x2ea0 */ 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2ea0 */ 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2eb0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2ec0 */ 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ec0 */ 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, /* 0x2ed0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2ee0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, +/* 0x2ee0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, /* 0x2ef0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, /* 0x2f00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2f10 */ 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2f10 */ 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, /* 0x2f20 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2f30 */ 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, 82, 77, +/* 0x2f30 */ 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, /* 0x2f40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2f50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 52, +/* 0x2f50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, /* 0x2f60 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, /* 0x2f70 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2f80 */ 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2f80 */ 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, /* 0x2f90 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2fa0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, +/* 0x2fa0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, /* 0x2fb0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, /* 0x2fc0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, -/* 0x2fd0 */ 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2fd0 */ 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, /* 0x2fe0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2ff0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, -/* 0x3000 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, -/* 0x3010 */ 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, -/* 0x3020 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3030 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, -/* 0x3040 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3050 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3060 */ 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2ff0 */ 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3000 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x3010 */ 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x3020 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, +/* 0x3030 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, +/* 0x3040 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x3050 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x3060 */ 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3070 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3080 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, +/* 0x3080 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, /* 0x3090 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x30a0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, +/* 0x30a0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, /* 0x30b0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x30c0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x30d0 */ 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x30d0 */ 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x30e0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x30f0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, +/* 0x30f0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, /* 0x3100 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3110 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3120 */ 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3120 */ 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3130 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3140 */ 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3140 */ 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x3150 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3160 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, +/* 0x3160 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, /* 0x3170 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3180 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3190 */ 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3190 */ 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x31a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x31b0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, +/* 0x31b0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, /* 0x31c0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x31d0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, -/* 0x31e0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x31e0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x31f0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3200 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3200 */ 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3210 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3220 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, +/* 0x3220 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, /* 0x3230 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3240 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3250 */ 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3250 */ 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3260 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3270 */ 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x3270 */ 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x3280 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3290 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, +/* 0x3290 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, /* 0x32a0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x32b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x32c0 */ 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x32c0 */ 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x32d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x32e0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, +/* 0x32e0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, /* 0x32f0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3300 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, -/* 0x3310 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3300 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, +/* 0x3310 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3320 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3330 */ 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3330 */ 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3340 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3350 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, +/* 0x3350 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, /* 0x3360 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3370 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3380 */ 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3380 */ 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3390 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x33a0 */ 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x33a0 */ 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x33b0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x33c0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 52, 32, +/* 0x33c0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, /* 0x33d0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x33e0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x33f0 */ 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x33f0 */ 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3400 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3410 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, +/* 0x3410 */ 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, /* 0x3420 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x3430 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, -/* 0x3440 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3440 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3450 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3460 */ 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3460 */ 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3470 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3480 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, +/* 0x3480 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, /* 0x3490 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x34a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x34b0 */ 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x34b0 */ 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x34c0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x34d0 */ 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x34d0 */ 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, /* 0x34e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x34f0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, +/* 0x34f0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, /* 0x3500 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3510 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3520 */ 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3520 */ 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3530 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3540 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, +/* 0x3540 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, /* 0x3550 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3560 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, -/* 0x3570 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3560 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, +/* 0x3570 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x3580 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3590 */ 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3590 */ 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x35a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x35b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, 82, 95, +/* 0x35b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, /* 0x35c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x35d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x35e0 */ 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x35e0 */ 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x35f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3600 */ 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x3600 */ 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, /* 0x3610 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3620 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, +/* 0x3620 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, /* 0x3630 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3640 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3650 */ 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3650 */ 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3660 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3670 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, +/* 0x3670 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, /* 0x3680 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, /* 0x3690 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, -/* 0x36a0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x36a0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x36b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x36c0 */ 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x36c0 */ 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x36d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x36e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, +/* 0x36e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, /* 0x36f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3700 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3710 */ 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3710 */ 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, /* 0x3720 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3730 */ 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x3730 */ 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, /* 0x3740 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3750 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, +/* 0x3750 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, /* 0x3760 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, /* 0x3770 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3780 */ 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3780 */ 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, /* 0x3790 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x37a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, +/* 0x37a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, /* 0x37b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x37c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, -/* 0x37d0 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x37c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, +/* 0x37d0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, /* 0x37e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x37f0 */ 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x37f0 */ 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, /* 0x3800 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3810 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, +/* 0x3810 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, /* 0x3820 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3830 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10 +/* 0x3830 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3840 */ 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3850 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3860 */ 10 }; diff --git a/src/stub/i386-linux.elf-so_entry.h b/src/stub/i386-linux.elf-so_entry.h new file mode 100644 index 00000000..8896e39f --- /dev/null +++ b/src/stub/i386-linux.elf-so_entry.h @@ -0,0 +1,117 @@ +/* i386-linux.elf-so_entry.h + created from i386-linux.elf-so_entry.bin, 1246 (0x4de) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 1246 +#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0xc298fde4 +#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0x5c27ebfe + +unsigned char stub_i386_linux_elf_so_entry[1246] = { +/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 48, 1, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 8, 0, 5, 0,144, 96,232,252,255,255,255, 1,219,116, 2,243, +/* 0x0040 */ 195,139, 30,131,238,252, 17,219,195, 91,102,131,123, 8, 2,116, +/* 0x0050 */ 1,244,141, 74,233, 81, 83,106, 0,106,255,106, 34,106, 3,255, +/* 0x0060 */ 51,106, 0,232,121, 0, 0, 0, 91,255, 51, 80,137,199,139, 75, +/* 0x0070 */ 4,141,115, 12, 1,241, 81, 49,219, 49,201,131,205,255,252,168, +/* 0x0080 */ 164,255,210,114,251,141, 65, 1,255,210, 17,192,255,210,115,248, +/* 0x0090 */ 131,232, 3,114, 11,193,224, 8,172,131,240,255,116, 45,137,197, +/* 0x00a0 */ 141, 65, 1,255,210, 17,201,255,210, 17,201,117, 13,137,193,131, +/* 0x00b0 */ 192, 2,255,210, 17,201,255,210,115,248,129,253, 0,243,255,255, +/* 0x00c0 */ 17,193, 86,141, 52, 47,243,164, 94,235,182, 89, 57,206,116, 1, +/* 0x00d0 */ 244, 91, 89, 81, 83,106, 5, 90,106,125, 88,205,128, 88, 80,255, +/* 0x00e0 */ 224,141, 92, 36, 4,106, 90, 88,205,128, 61, 0,240,255,255,114, +/* 0x00f0 */ 1,244,194, 24, 0, 90,232, 17, 0, 0, 0, 0, 46,115,121,109, +/* 0x0100 */ 116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115, +/* 0x0110 */ 116,114,116, 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, +/* 0x0120 */ 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, +/* 0x0130 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0150 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, +/* 0x0160 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,193, 0, 0, 0, +/* 0x0170 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0180 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0190 */ 184, 2, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, +/* 0x01a0 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, +/* 0x01b0 */ 0, 0, 0, 0, 0, 0, 0, 0,245, 0, 0, 0, 6, 0, 0, 0, +/* 0x01c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x01d0 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x01e0 */ 192, 2, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, +/* 0x01f0 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, +/* 0x0200 */ 0, 0, 0, 0, 0, 0, 0, 0,251, 0, 0, 0, 53, 0, 0, 0, +/* 0x0210 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0220 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0230 */ 112, 2, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, +/* 0x0240 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, +/* 0x0250 */ 0, 0, 0, 0, 0, 0, 0, 0,176, 2, 0, 0, 8, 0, 0, 0, +/* 0x0260 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x0270 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0280 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, +/* 0x0290 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, +/* 0x02a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, +/* 0x02b0 */ 0, 95,115,116, 97,114,116, 0, 3, 0, 0, 0, 2, 3, 0, 0, +/* 0x02c0 */ 2, 0, 0, 0, 2, 1, 0, 0,102,105,108,101, 32,102,111,114, +/* 0x02d0 */ 109, 97,116, 32,101,108,102, 51, 50, 45,105, 51, 56, 54, 10, 10, +/* 0x02e0 */ 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97, +/* 0x02f0 */ 109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, +/* 0x0300 */ 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, +/* 0x0310 */ 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111, +/* 0x0320 */ 102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, +/* 0x0330 */ 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, +/* 0x0340 */ 32, 32, 48, 99, 49, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, +/* 0x0350 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x0360 */ 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, +/* 0x0370 */ 32, 32, 32, 48, 54, 32, 32, 48, 32, 32, 48, 32, 32, 48,102, 53, +/* 0x0380 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x0390 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, +/* 0x03a0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x03b0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, +/* 0x03c0 */ 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x03d0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, +/* 0x03e0 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x03f0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, +/* 0x0400 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, +/* 0x0410 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x0420 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, +/* 0x0430 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x0440 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x0450 */ 10, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 51, 56, 54, 95, +/* 0x0460 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x0470 */ 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x0480 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x0490 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x04a0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x04b0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x04c0 */ 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, +/* 0x04d0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10 +}; diff --git a/src/stub/i386-linux.elf-so_fold.h b/src/stub/i386-linux.elf-so_fold.h new file mode 100644 index 00000000..7c33b4f1 --- /dev/null +++ b/src/stub/i386-linux.elf-so_fold.h @@ -0,0 +1,824 @@ +/* i386-linux.elf-so_fold.h + created from i386-linux.elf-so_fold.bin, 12551 (0x3107) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2023 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#define STUB_I386_LINUX_ELF_SO_FOLD_SIZE 12551 +#define STUB_I386_LINUX_ELF_SO_FOLD_ADLER32 0x49f4bfbe +#define STUB_I386_LINUX_ELF_SO_FOLD_CRC32 0xb954ed28 + +unsigned char stub_i386_linux_elf_so_fold[12551] = { +/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 180, 30, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 24, 0, 21, 0, 85,137,229, 83,255,117, 8,232,252,255,255,255, +/* 0x0040 */ 131,196, 4,187,127, 0, 0, 0,106, 1, 88,205,128,235,254, 85, +/* 0x0050 */ 137,229, 87, 86, 83,139,125, 8,139,119, 4,139, 93, 12,139, 69, +/* 0x0060 */ 16, 57, 7,115, 10,106, 8,232,200,255,255,255,131,196, 4,139, +/* 0x0070 */ 85, 16, 74,131,250,255,116, 12,138, 6,136, 3, 70, 67, 74,131, +/* 0x0080 */ 250,255,117,244,139, 69, 16, 1, 71, 4, 41, 7,141,101,244, 91, +/* 0x0090 */ 94, 95,201,195, 85,137,229, 86, 83,131,236, 20,139,117, 8,139, +/* 0x00a0 */ 93, 12,131, 59, 0, 15,132,220, 0, 0, 0,106, 12,141, 69,232, +/* 0x00b0 */ 80, 86,232,152,255,255,255,131,196, 12,131,125,232, 0,117, 43, +/* 0x00c0 */ 129,125,236, 85, 80, 88, 33,116, 10,106, 2,232,100,255,255,255, +/* 0x00d0 */ 131,196, 4,131, 62, 0, 15,132,171, 0, 0, 0,106, 3,232, 81, +/* 0x00e0 */ 255,255,255,131,196, 4,233,156, 0, 0, 0,131,125,236, 0,117, +/* 0x00f0 */ 10,106, 4,232, 60,255,255,255,131,196, 4,139, 69,236, 59, 69, +/* 0x0100 */ 232,119, 7,139, 69,232, 59, 3,118, 10,106, 5,232, 35,255,255, +/* 0x0110 */ 255,131,196, 4,139, 69,236, 59, 69,232,115, 68,139, 69,232,137, +/* 0x0120 */ 69,228,141, 69,228, 80,255,115, 4,139, 70, 4,131,232, 12, 80, +/* 0x0130 */ 232,252,255,255,255,131,196, 12,133,192,117, 8,139, 69,232, 59, +/* 0x0140 */ 69,228,116, 10,106, 7,232,233,254,255,255,131,196, 4,139, 70, +/* 0x0150 */ 4, 3, 69,236,137, 70, 4,139, 6, 43, 69,236,137, 6,235, 15, +/* 0x0160 */ 255,117,236,255,115, 4, 86,232,227,254,255,255,131,196, 12,139, +/* 0x0170 */ 67, 4, 3, 69,232,137, 67, 4,139, 3, 43, 69,232,137, 3,133, +/* 0x0180 */ 192, 15,133, 36,255,255,255,141,101,248, 91, 94,201,195, 85,137, +/* 0x0190 */ 229, 87, 86, 83,131,236, 4,139, 77, 8,139, 93, 12,191, 0, 0, +/* 0x01a0 */ 0, 0,190, 0, 0, 0, 0,131, 57, 1, 15,133,128, 0, 0, 0, +/* 0x01b0 */ 246, 65, 24, 1,116,122,139, 81, 20,137,208, 3, 65, 8,141, 52, +/* 0x01c0 */ 24, 59, 81, 16,117, 14,137,240,247,216, 37,255, 15, 0, 0,131, +/* 0x01d0 */ 248, 3,119, 49,107,195, 52, 3, 65, 8,141,112, 12,131,121, 4, +/* 0x01e0 */ 0,116, 34,191, 1, 0, 0, 0,106, 0,106,255,106, 34,106, 3, +/* 0x01f0 */ 104, 0, 16, 0, 0,106, 0,232,252,255,255,255,137,198,131,196, +/* 0x0200 */ 24,133,192,116, 38,139, 6, 61,205,128, 97,195,116, 6,199, 6, +/* 0x0210 */ 205,128, 97,195,133,255,116, 24,185, 4, 0, 0, 0,186, 5, 0, +/* 0x0220 */ 0, 0,137,243,106,125, 88,205,128,235, 5,190, 0, 0, 0, 0, +/* 0x0230 */ 137,240,141,101,244, 91, 94, 95,201,195, 85,137,229, 87, 86, 83, +/* 0x0240 */ 129,236, 0, 16, 0, 0,139, 93, 12,139,117, 16,141,189,244,239, +/* 0x0250 */ 255,255, 86, 83, 87,232,252,255,255,255,106, 0,106,255,106, 50, +/* 0x0260 */ 106, 3,255,117, 8, 83,232,252,255,255,255,131,196, 36, 86, 87, +/* 0x0270 */ 83,232,252,255,255,255,131,196, 12,141,101,244, 91, 94, 95,201, +/* 0x0280 */ 195, 85,137,229, 87, 86, 83,131,236,116,139, 85, 8,139, 2,137, +/* 0x0290 */ 209, 41,193,137, 77,192,137, 69,228,139, 66, 4,137, 69,232,139, +/* 0x02a0 */ 66, 8,137, 69,236,139, 90, 12,137, 93,240, 1,217,137, 77,188, +/* 0x02b0 */ 41,202,137, 85,184,106, 0,106,255,106, 34,106, 3, 82,106, 0, +/* 0x02c0 */ 232,252,255,255,255,137, 69,180,255,117,184,255,117,188, 80,232, +/* 0x02d0 */ 252,255,255,255,139, 69,180,131,192, 24,137, 69,176,139, 77,180, +/* 0x02e0 */ 139, 65, 24,139, 85,192,137, 69,204,137, 85,208,131,196, 36,139, +/* 0x02f0 */ 73, 24,186, 3, 0, 0, 0,139, 93,192,106,125, 88,205,128,139, +/* 0x0300 */ 77,176,139, 65, 4,131,192, 12,137, 69,196,137, 77,200,141, 69, +/* 0x0310 */ 204, 80,141, 69,196, 80,232,121,253,255,255,139, 93,192, 15,183, +/* 0x0320 */ 75, 44,137,216,131,192, 52,199, 69,172, 0, 0, 0, 0,131,196, +/* 0x0330 */ 8,133,201,116, 13,131, 56, 1,117, 3,255, 69,172,131,192, 32, +/* 0x0340 */ 226,243,199, 69,168, 0, 0, 0, 0,131,125,172, 2,119, 6,139, +/* 0x0350 */ 69,236,137, 69,168,199, 69,164, 0, 0, 0, 0,199, 69,160, 0, +/* 0x0360 */ 0, 0, 0,139, 77,192, 15,183,121, 44,137,206,131,198, 52,133, +/* 0x0370 */ 255, 15,132,249, 0, 0, 0,131, 62, 1, 15,133,230, 0, 0, 0, +/* 0x0380 */ 246, 70, 24, 2, 15,133,220, 0, 0, 0,255, 69,160,131,125,160, +/* 0x0390 */ 1,117, 10,131,125,172, 2, 15,135,201, 0, 0, 0,199, 69,196, +/* 0x03a0 */ 12, 0, 0, 0,255,117,196,141, 69,212, 80,141, 93,196, 83,232, +/* 0x03b0 */ 155,252,255,255,131,109,200, 12,139, 85,168, 3, 86, 8, 3, 85, +/* 0x03c0 */ 192,139, 70, 20, 43, 69,168,137, 69,204,139, 69,168, 3, 70, 8, +/* 0x03d0 */ 137, 69,156, 37,255, 15, 0, 0,137, 69,136, 41,194,137, 85,208, +/* 0x03e0 */ 1, 69,204,255,118, 24, 80, 82,255,117,204,232, 74,254,255,255, +/* 0x03f0 */ 139, 77,136, 1, 77,208,139, 69,212,137, 69,204,139, 69,216,131, +/* 0x0400 */ 192, 12,137, 69,196,141, 93,204, 83,141, 69,196, 80,232,130,252, +/* 0x0410 */ 255,255,199, 69,168, 0, 0, 0, 0,131,196, 36,131,125,164, 0, +/* 0x0420 */ 117, 21,246, 70, 24, 1,116, 15,255,117,192, 86,232, 93,253,255, +/* 0x0430 */ 255,137, 69,164,131,196, 8,139, 77,192, 3, 78, 8,137, 77,152, +/* 0x0440 */ 139, 94, 20,137, 93,128,139, 70, 24,131,224, 7,193,224, 2,186, +/* 0x0450 */ 64, 98, 81,115,136,193,211,234,131,226, 7,139, 93,152,139, 77, +/* 0x0460 */ 128,106,125, 88,205,128,131,198, 32, 79, 15,133, 7,255,255,255, +/* 0x0470 */ 139, 85,192, 3, 85,232,139, 93,180,139, 77,184,106, 91, 88,205, +/* 0x0480 */ 128,139, 69, 12,255,112, 8,255,112, 4,255, 48,255,210,131,196, +/* 0x0490 */ 12,139, 69,164,141,101,244, 91, 94, 95,201,195,137,224,139, 72, +/* 0x04a0 */ 8,131,192, 48, 80, 81,232,252,255,255,255,131,196, 8,137,197, +/* 0x04b0 */ 91, 89, 90,104, 91, 0, 0, 0, 88,255,229,195, 88,255,208, 89, +/* 0x04c0 */ 137,240, 41,200, 90, 41,215, 89,137, 57, 91, 93,195,204,195, 87, +/* 0x04d0 */ 137,240,137,209,243,170, 88,195, 89,137,248, 95,137,242, 94,135, +/* 0x04e0 */ 12, 36, 87,209,233,115, 1,164,209,233,115, 2,102,165,116, 2, +/* 0x04f0 */ 243,165,137,199,137,214, 88, 90,131,236, 12, 82,195, 83,141, 92, +/* 0x0500 */ 36, 8,106, 90, 88,205,128, 61, 0,240,255,255,118, 1,244, 91, +/* 0x0510 */ 195,106, 1,235, 2,106, 91,235, 2,106,125,235, 3,106, 4, 88, +/* 0x0520 */ 205,128,195,131,124, 36, 16, 73,117, 79, 85,137,229, 83, 86, 87, +/* 0x0530 */ 139,117, 8,139, 77, 12,139, 85, 16,141, 76, 14,253,137,243,235, +/* 0x0540 */ 45, 57,206,115, 48, 86, 94,172, 60,128,114, 10, 60,143,119, 6, +/* 0x0550 */ 128,126,254, 15,116, 6, 44,232, 60, 1,119,229, 57,206,115, 21, +/* 0x0560 */ 86,173, 40,208,117,224, 95, 15,200, 41,248, 1,216,171, 57,206, +/* 0x0570 */ 115, 3,172,235,225, 95, 94, 91, 93,195, 85,137,229, 87, 86, 83, +/* 0x0580 */ 232,107, 0, 0, 0, 80,139,117, 8, 15,182, 70, 9,133,192,116, +/* 0x0590 */ 19, 80, 15,182, 70, 10, 80,255, 54,255,117, 12,232,130,255,255, +/* 0x05a0 */ 255,131,196, 16, 88, 91, 94, 95, 93,195,139, 30,131,238,252, 17, +/* 0x05b0 */ 219,138, 22,243,195, 1,219,116,241,243,195,141, 4, 47,131,249, +/* 0x05c0 */ 5,138, 16,118, 30,131,253,252,119, 25,131,233, 4,139, 16,131, +/* 0x05d0 */ 192, 4,131,233, 4,137, 23,141,127, 4,115,241,131,193, 4,138, +/* 0x05e0 */ 16,116, 11, 64,136, 23, 73,138, 16,141,127, 1,117,245,243,195, +/* 0x05f0 */ 139,117, 8,139,125, 12,173,139, 85, 16,137, 2, 82,173,145,173, +/* 0x0600 */ 15,182,208, 1,241, 81, 87, 85, 49,219, 49,201,131,205,255,252, +/* 0x0610 */ 15,182, 86,252, 93, 88, 41,199, 88, 89,137, 57, 41,240,195,128, +/* 0x0620 */ 250, 8, 15,133,199, 0, 0, 0,235, 4, 70,136, 23, 71,138, 22, +/* 0x0630 */ 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22,114,235,106, +/* 0x0640 */ 1, 88,235, 16, 72, 1,219,117, 9,139, 30,131,238,252, 17,219, +/* 0x0650 */ 138, 22, 17,192, 1,219,117, 9,139, 30,131,238,252, 17,219,138, +/* 0x0660 */ 22, 17,192, 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22, +/* 0x0670 */ 115,210,131,232, 3,114, 26,193,224, 8, 15,182,210, 9,208, 70, +/* 0x0680 */ 131,240,255, 15,132,252,255,255,255,209,248,137,197,114, 62,235, +/* 0x0690 */ 13, 1,219,117, 7,139, 30,131,238,252, 17,219,114, 47, 65, 1, +/* 0x06a0 */ 219,117, 7,139, 30,131,238,252, 17,219,114, 33, 1,219,117, 9, +/* 0x06b0 */ 139, 30,131,238,252, 17,219,138, 22, 17,201, 1,219,117, 7,139, +/* 0x06c0 */ 30,131,238,252, 17,219,115,228,131,193, 2,235, 15, 1,219,117, +/* 0x06d0 */ 9,139, 30,131,238,252, 17,219,138, 22, 17,201,129,253, 0,251, +/* 0x06e0 */ 255,255,131,209, 2,232,148, 0, 0, 0,233, 63,255,255,255, 87, +/* 0x06f0 */ 94,128,250, 5, 15,133,186, 0, 0, 0,235, 4, 70,136, 23, 71, +/* 0x0700 */ 138, 22, 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22,114, +/* 0x0710 */ 235,106, 1, 88,235, 16, 72, 1,219,117, 9,139, 30,131,238,252, +/* 0x0720 */ 17,219,138, 22, 17,192, 1,219,117, 9,139, 30,131,238,252, 17, +/* 0x0730 */ 219,138, 22, 17,192, 1,219,117, 9,139, 30,131,238,252, 17,219, +/* 0x0740 */ 138, 22,115,210,131,232, 3,114, 24,193,224, 8, 15,182,210, 9, +/* 0x0750 */ 208, 70,131,240,255, 15,132,252,255,255,255,209,248,137,197,235, +/* 0x0760 */ 13, 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22, 17,201, +/* 0x0770 */ 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22, 17,201,117, +/* 0x0780 */ 32, 65, 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22, 17, +/* 0x0790 */ 201, 1,219,117, 7,139, 30,131,238,252, 17,219,115,228,131,193, +/* 0x07a0 */ 2,129,253, 0,251,255,255,131,209, 1,232,148, 0, 0, 0,233, +/* 0x07b0 */ 76,255,255,255, 87, 94,128,250, 2, 15,133,167, 0, 0, 0,235, +/* 0x07c0 */ 4, 70,136, 23, 71,138, 22, 1,219,117, 9,139, 30,131,238,252, +/* 0x07d0 */ 17,219,138, 22,114,235,106, 1, 88, 1,219,117, 9,139, 30,131, +/* 0x07e0 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 9,139, 30,131,238, +/* 0x07f0 */ 252, 17,219,138, 22,115,226,131,232, 3,114, 20,193,224, 8, 15, +/* 0x0800 */ 182,210, 9,208, 70,131,240,255, 15,132,252,255,255,255,137,197, +/* 0x0810 */ 106, 1, 88, 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22, +/* 0x0820 */ 17,201, 1,219,117, 9,139, 30,131,238,252, 17,219,138, 22, 17, +/* 0x0830 */ 201,117, 33,137,193,131,192, 2, 1,219,117, 9,139, 30,131,238, +/* 0x0840 */ 252, 17,219,138, 22, 17,201, 1,219,117, 7,139, 30,131,238,252, +/* 0x0850 */ 17,219,115,228,129,253, 0,243,255,255, 17,193,232,148, 0, 0, +/* 0x0860 */ 0,233, 95,255,255,255,137,229,141,156, 36, 0, 0, 0, 0, 49, +/* 0x0870 */ 192, 80, 57,220,117,251, 70, 70, 83,104, 0, 0, 0, 0, 87,131, +/* 0x0880 */ 195, 4, 83,104, 0, 0, 0, 0, 86,131,195, 4, 83, 80,199, 3, +/* 0x0890 */ 0, 0, 0, 0,137,229,139, 85, 0,172, 74,136,193, 36, 7,192, +/* 0x08a0 */ 233, 3,187, 0,253,255,255,211,227,141,164, 92,144,241,255,255, +/* 0x08b0 */ 131,228,224,106, 0,106, 0,137,227, 83,131,195, 4,139, 77, 0, +/* 0x08c0 */ 255, 49, 87, 83,131,195, 4,136, 67, 2,172, 74,136,193, 36, 15, +/* 0x08d0 */ 136, 3,192,233, 4,136, 75, 1, 82, 86, 83, 80, 85, 87, 86, 83, +/* 0x08e0 */ 131,236,124,139,148, 36,144, 0, 0, 0,199, 68, 36,116, 0, 0, +/* 0x08f0 */ 0, 0,198, 68, 36,115, 0,139,172, 36,156, 0, 0, 0,141, 66, +/* 0x0900 */ 4,137, 68, 36,120,184, 1, 0, 0, 0, 15,182, 74, 2,137,195, +/* 0x0910 */ 211,227,137,217, 73,137, 76, 36,108, 15,182, 74, 1,211,224, 72, +/* 0x0920 */ 137, 68, 36,104,139,132, 36,168, 0, 0, 0, 15,182, 50,199, 69, +/* 0x0930 */ 0, 0, 0, 0, 0,199, 68, 36, 96, 0, 0, 0, 0,199, 0, 0, +/* 0x0940 */ 0, 0, 0,184, 0, 3, 0, 0,137,116, 36,100,199, 68, 36, 92, +/* 0x0950 */ 1, 0, 0, 0,199, 68, 36, 88, 1, 0, 0, 0,199, 68, 36, 84, +/* 0x0960 */ 1, 0, 0, 0,199, 68, 36, 80, 1, 0, 0, 0, 15,182, 74, 1, +/* 0x0970 */ 1,241,211,224,141,136, 54, 7, 0, 0, 57, 76, 36,116,115, 14, +/* 0x0980 */ 139, 68, 36,120,102,199, 0, 0, 4,131,192, 2,226,246,139,156, +/* 0x0990 */ 36,148, 0, 0, 0, 49,255,199, 68, 36, 72,255,255,255,255,137, +/* 0x09a0 */ 218, 3,148, 36,152, 0, 0, 0,137, 84, 36, 76, 49,210, 59, 92, +/* 0x09b0 */ 36, 76, 15,132,124, 9, 0, 0, 15,182, 3,193,231, 8, 66, 67, +/* 0x09c0 */ 9,199,131,250, 4,126,231,139,140, 36,164, 0, 0, 0, 57, 76, +/* 0x09d0 */ 36,116, 15,131,100, 9, 0, 0,139,116, 36,116, 35,116, 36,108, +/* 0x09e0 */ 139, 68, 36, 96,139, 84, 36,120,193,224, 4,137,116, 36, 68, 1, +/* 0x09f0 */ 240,129,124, 36, 72,255,255,255, 0,141, 44, 66,119, 24, 59, 92, +/* 0x0a00 */ 36, 76, 15,132, 44, 9, 0, 0,193,100, 36, 72, 8, 15,182, 3, +/* 0x0a10 */ 193,231, 8, 67, 9,199,139, 68, 36, 72,102,139, 85, 0,193,232, +/* 0x0a20 */ 11, 15,183,202, 15,175,193, 57,199, 15,131,221, 1, 0, 0,137, +/* 0x0a30 */ 68, 36, 72,184, 0, 8, 0, 0, 41,200,138, 76, 36,100,193,248, +/* 0x0a40 */ 5,190, 1, 0, 0, 0,141, 4, 2, 15,182, 84, 36,115,102,137, +/* 0x0a50 */ 69, 0,139, 68, 36,116, 35, 68, 36,104,139,108, 36,120,211,224, +/* 0x0a60 */ 185, 8, 0, 0, 0, 43, 76, 36,100,211,250, 1,208,105,192, 0, +/* 0x0a70 */ 6, 0, 0,131,124, 36, 96, 6,141,132, 5,108, 14, 0, 0,137, +/* 0x0a80 */ 68, 36, 20, 15,142,202, 0, 0, 0,139, 68, 36,116, 43, 68, 36, +/* 0x0a90 */ 92,139,148, 36,160, 0, 0, 0, 15,182, 4, 2,137, 68, 36, 64, +/* 0x0aa0 */ 209,100, 36, 64,139, 76, 36, 64,141, 20, 54,139,108, 36, 20,129, +/* 0x0ab0 */ 225, 0, 1, 0, 0,129,124, 36, 72,255,255,255, 0,141, 68, 77, +/* 0x0ac0 */ 0,137, 76, 36, 60,141, 44, 16,119, 24, 59, 92, 36, 76, 15,132, +/* 0x0ad0 */ 96, 8, 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, +/* 0x0ae0 */ 9,199,139, 68, 36, 72,102,139,141, 0, 2, 0, 0,193,232, 11, +/* 0x0af0 */ 15,183,241, 15,175,198, 57,199,115, 35,137, 68, 36, 72,184, 0, +/* 0x0b00 */ 8, 0, 0, 41,240,137,214,193,248, 5,131,124, 36, 60, 0,141, +/* 0x0b10 */ 4, 1,102,137,133, 0, 2, 0, 0,116, 34,235, 46, 41, 68, 36, +/* 0x0b20 */ 72, 41,199,137,200,141,114, 1,102,193,232, 5,102, 41,193,131, +/* 0x0b30 */ 124, 36, 60, 0,102,137,141, 0, 2, 0, 0,116, 14,129,254,255, +/* 0x0b40 */ 0, 0, 0, 15,142, 87,255,255,255,235,121,129,254,255, 0, 0, +/* 0x0b50 */ 0,127,113,141, 20, 54,139,108, 36, 20, 1,213,129,124, 36, 72, +/* 0x0b60 */ 255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132,196, 7, 0, 0, +/* 0x0b70 */ 193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, +/* 0x0b80 */ 36, 72,102,139, 77, 0,193,232, 11, 15,183,241, 15,175,198, 57, +/* 0x0b90 */ 199,115, 25,137, 68, 36, 72,184, 0, 8, 0, 0, 41,240,137,214, +/* 0x0ba0 */ 193,248, 5,141, 4, 1,102,137, 69, 0,235,159, 41, 68, 36, 72, +/* 0x0bb0 */ 41,199,137,200,141,114, 1,102,193,232, 5,102, 41,193,102,137, +/* 0x0bc0 */ 77, 0,235,135,139, 84, 36,116,137,240,139,140, 36,160, 0, 0, +/* 0x0bd0 */ 0,136, 68, 36,115,136, 4, 10, 66,131,124, 36, 96, 3,137, 84, +/* 0x0be0 */ 36,116,127, 13,199, 68, 36, 96, 0, 0, 0, 0,233, 27, 7, 0, +/* 0x0bf0 */ 0,131,124, 36, 96, 9,127, 10,131,108, 36, 96, 3,233, 10, 7, +/* 0x0c00 */ 0, 0,131,108, 36, 96, 6,233, 0, 7, 0, 0,139, 76, 36, 72, +/* 0x0c10 */ 41,199,139,116, 36, 96, 41,193,137,208,102,193,232, 5,102, 41, +/* 0x0c20 */ 194,129,249,255,255,255, 0,102,137, 85, 0,139,108, 36,120,141, +/* 0x0c30 */ 116,117, 0,137,116, 36, 56,119, 22, 59, 92, 36, 76, 15,132,241, +/* 0x0c40 */ 6, 0, 0, 15,182, 3,193,231, 8,193,225, 8, 67, 9,199,139, +/* 0x0c50 */ 108, 36, 56,137,200,193,232, 11,102,139,149,128, 1, 0, 0, 15, +/* 0x0c60 */ 183,234, 15,175,197, 57,199,115, 82,137,198,184, 0, 8, 0, 0, +/* 0x0c70 */ 41,232,139,108, 36, 88,193,248, 5,139, 76, 36, 84,141, 4, 2, +/* 0x0c80 */ 139, 84, 36, 56,137, 76, 36, 80,139, 76, 36,120,102,137,130,128, +/* 0x0c90 */ 1, 0, 0,139, 68, 36, 92,137,108, 36, 84,137, 68, 36, 88, 49, +/* 0x0ca0 */ 192,131,124, 36, 96, 6, 15,159,192,129,193,100, 6, 0, 0,141, +/* 0x0cb0 */ 4, 64,137, 68, 36, 96,233,116, 2, 0, 0,137,206, 41,199, 41, +/* 0x0cc0 */ 198,137,208,102,193,232, 5,139, 76, 36, 56,102, 41,194,129,254, +/* 0x0cd0 */ 255,255,255, 0,102,137,145,128, 1, 0, 0,119, 22, 59, 92, 36, +/* 0x0ce0 */ 76, 15,132, 77, 6, 0, 0, 15,182, 3,193,231, 8,193,230, 8, +/* 0x0cf0 */ 67, 9,199,139,108, 36, 56,137,242,193,234, 11,102,139,141,152, +/* 0x0d00 */ 1, 0, 0, 15,183,193, 15,175,208, 57,215, 15,131,227, 0, 0, +/* 0x0d10 */ 0,189, 0, 8, 0, 0,137,214, 41,197,199, 68, 36, 52, 0, 8, +/* 0x0d20 */ 0, 0,137,232,193,248, 5,141, 4, 1,139, 76, 36, 56,102,137, +/* 0x0d30 */ 129,152, 1, 0, 0,139, 68, 36, 96,139, 76, 36, 68,193,224, 5, +/* 0x0d40 */ 3, 68, 36,120,129,250,255,255,255, 0,141, 44, 72,119, 22, 59, +/* 0x0d50 */ 92, 36, 76, 15,132,219, 5, 0, 0, 15,182, 3,193,231, 8,193, +/* 0x0d60 */ 230, 8, 67, 9,199,102,139,149,224, 1, 0, 0,137,240,193,232, +/* 0x0d70 */ 11, 15,183,202, 15,175,193, 57,199,115, 96, 41, 76, 36, 52,193, +/* 0x0d80 */ 124, 36, 52, 5,139,116, 36, 52,137, 68, 36, 72,131,124, 36,116, +/* 0x0d90 */ 0,141, 4, 50,102,137,133,224, 1, 0, 0, 15,132,147, 5, 0, +/* 0x0da0 */ 0, 49,192,131,124, 36, 96, 6,139,172, 36,160, 0, 0, 0,139, +/* 0x0db0 */ 84, 36,116, 15,159,192,141, 68, 0, 9,137, 68, 36, 96,139, 68, +/* 0x0dc0 */ 36,116, 43, 68, 36, 92,138, 68, 5, 0,136, 68, 36,115,136, 4, +/* 0x0dd0 */ 42, 66,137, 84, 36,116,233, 49, 5, 0, 0, 41,198, 41,199,137, +/* 0x0de0 */ 208,102,193,232, 5,102, 41,194,102,137,149,224, 1, 0, 0,233, +/* 0x0df0 */ 31, 1, 0, 0,137,200, 41,214,102,193,232, 5,139,108, 36, 56, +/* 0x0e00 */ 102, 41,193, 41,215,129,254,255,255,255, 0,102,137,141,152, 1, +/* 0x0e10 */ 0, 0,119, 22, 59, 92, 36, 76, 15,132, 22, 5, 0, 0, 15,182, +/* 0x0e20 */ 3,193,231, 8,193,230, 8, 67, 9,199,139, 76, 36, 56,137,240, +/* 0x0e30 */ 193,232, 11,102,139,145,176, 1, 0, 0, 15,183,202, 15,175,193, +/* 0x0e40 */ 57,199,115, 35,137,198,184, 0, 8, 0, 0, 41,200,139,108, 36, +/* 0x0e50 */ 56,193,248, 5,141, 4, 2,102,137,133,176, 1, 0, 0,139, 68, +/* 0x0e60 */ 36, 88,233,160, 0, 0, 0,137,241, 41,199, 41,193,137,208,102, +/* 0x0e70 */ 193,232, 5,102, 41,194,139, 68, 36, 56,129,249,255,255,255, 0, +/* 0x0e80 */ 102,137,144,176, 1, 0, 0,119, 22, 59, 92, 36, 76, 15,132,161, +/* 0x0e90 */ 4, 0, 0, 15,182, 3,193,231, 8,193,225, 8, 67, 9,199,139, +/* 0x0ea0 */ 116, 36, 56,137,200,193,232, 11,102,139,150,200, 1, 0, 0, 15, +/* 0x0eb0 */ 183,234, 15,175,197, 57,199,115, 32,137,198,184, 0, 8, 0, 0, +/* 0x0ec0 */ 41,232,139,108, 36, 56,193,248, 5,141, 4, 2,102,137,133,200, +/* 0x0ed0 */ 1, 0, 0,139, 68, 36, 84,235, 38,137,206, 41,199, 41,198,137, +/* 0x0ee0 */ 208,102,193,232, 5,102, 41,194,139, 68, 36, 56,102,137,144,200, +/* 0x0ef0 */ 1, 0, 0,139, 84, 36, 84,139, 68, 36, 80,137, 84, 36, 80,139, +/* 0x0f00 */ 76, 36, 88,137, 76, 36, 84,139,108, 36, 92,137, 68, 36, 92,137, +/* 0x0f10 */ 108, 36, 88, 49,192,131,124, 36, 96, 6,139, 76, 36,120, 15,159, +/* 0x0f20 */ 192,129,193,104, 10, 0, 0,141, 68, 64, 8,137, 68, 36, 96,129, +/* 0x0f30 */ 254,255,255,255, 0,119, 22, 59, 92, 36, 76, 15,132,243, 3, 0, +/* 0x0f40 */ 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9,199,102,139, 17, +/* 0x0f50 */ 137,240,193,232, 11, 15,183,234, 15,175,197, 57,199,115, 47,137, +/* 0x0f60 */ 68, 36, 72,184, 0, 8, 0, 0, 41,232,193,100, 36, 68, 4,193, +/* 0x0f70 */ 248, 5,199, 68, 36, 44, 0, 0, 0, 0,141, 4, 2,102,137, 1, +/* 0x0f80 */ 139, 68, 36, 68,141, 76, 1, 4,137, 76, 36, 16,235,114, 41,198, +/* 0x0f90 */ 41,199,137,208,102,193,232, 5,102, 41,194,129,254,255,255,255, +/* 0x0fa0 */ 0,102,137, 17,119, 22, 59, 92, 36, 76, 15,132,132, 3, 0, 0, +/* 0x0fb0 */ 15,182, 3,193,231, 8,193,230, 8, 67, 9,199,102,139, 81, 2, +/* 0x0fc0 */ 137,240,193,232, 11, 15,183,234, 15,175,197, 57,199,115, 59,137, +/* 0x0fd0 */ 68, 36, 72,184, 0, 8, 0, 0, 41,232,193,100, 36, 68, 4,193, +/* 0x0fe0 */ 248, 5,199, 68, 36, 44, 8, 0, 0, 0,141, 4, 2,139, 84, 36, +/* 0x0ff0 */ 68,102,137, 65, 2,141,140, 17, 4, 1, 0, 0,137, 76, 36, 16, +/* 0x1000 */ 199, 68, 36, 48, 3, 0, 0, 0,235, 47, 41,198, 41,199,137,208, +/* 0x1010 */ 137,116, 36, 72,102,193,232, 5,199, 68, 36, 44, 16, 0, 0, 0, +/* 0x1020 */ 102, 41,194,199, 68, 36, 48, 8, 0, 0, 0,102,137, 81, 2,129, +/* 0x1030 */ 193, 4, 2, 0, 0,137, 76, 36, 16,139, 76, 36, 48,186, 1, 0, +/* 0x1040 */ 0, 0,137, 76, 36, 40,141, 44, 18,139,116, 36, 16, 1,238,129, +/* 0x1050 */ 124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132,209, +/* 0x1060 */ 2, 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, 9, +/* 0x1070 */ 199,139, 68, 36, 72,102,139, 22,193,232, 11, 15,183,202, 15,175, +/* 0x1080 */ 193, 57,199,115, 24,137, 68, 36, 72,184, 0, 8, 0, 0, 41,200, +/* 0x1090 */ 193,248, 5,141, 4, 2,137,234,102,137, 6,235, 21, 41, 68, 36, +/* 0x10a0 */ 72, 41,199,137,208,102,193,232, 5,102, 41,194,102,137, 22,141, +/* 0x10b0 */ 85, 1,139,116, 36, 40, 78,137,116, 36, 40,117,137,138, 76, 36, +/* 0x10c0 */ 48,184, 1, 0, 0, 0,211,224, 41,194, 3, 84, 36, 44,131,124, +/* 0x10d0 */ 36, 96, 3,137, 84, 36, 12, 15,143,231, 1, 0, 0,131, 68, 36, +/* 0x10e0 */ 96, 7,131,250, 3,137,208,126, 5,184, 3, 0, 0, 0,139,116, +/* 0x10f0 */ 36,120,193,224, 7,199, 68, 36, 36, 6, 0, 0, 0,141,132, 6, +/* 0x1100 */ 96, 3, 0, 0,137, 68, 36, 8,184, 1, 0, 0, 0,141, 44, 0, +/* 0x1110 */ 139,116, 36, 8, 1,238,129,124, 36, 72,255,255,255, 0,119, 24, +/* 0x1120 */ 59, 92, 36, 76, 15,132, 10, 2, 0, 0,193,100, 36, 72, 8, 15, +/* 0x1130 */ 182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72,102,139, 22,193, +/* 0x1140 */ 232, 11, 15,183,202, 15,175,193, 57,199,115, 24,137, 68, 36, 72, +/* 0x1150 */ 184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, 2,102,137, 6, +/* 0x1160 */ 137,232,235, 21, 41, 68, 36, 72, 41,199,137,208,102,193,232, 5, +/* 0x1170 */ 102, 41,194,141, 69, 1,102,137, 22,139,108, 36, 36, 77,137,108, +/* 0x1180 */ 36, 36,117,137,141, 80,192,131,250, 3,137, 20, 36, 15,142, 39, +/* 0x1190 */ 1, 0, 0,137,208,137,214,209,248,131,230, 1,141, 72,255,131, +/* 0x11a0 */ 206, 2,131,250, 13,137, 76, 36, 32,127, 28,139,108, 36,120,211, +/* 0x11b0 */ 230, 1,210,137, 52, 36,141, 68,117, 0, 41,208, 5, 94, 5, 0, +/* 0x11c0 */ 0,137, 68, 36, 4,235, 86,141, 80,251,129,124, 36, 72,255,255, +/* 0x11d0 */ 255, 0,119, 24, 59, 92, 36, 76, 15,132, 86, 1, 0, 0,193,100, +/* 0x11e0 */ 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,209,108, 36, 72, +/* 0x11f0 */ 1,246, 59,124, 36, 72,114, 7, 43,124, 36, 72,131,206, 1, 74, +/* 0x1200 */ 117,200,139, 68, 36,120,193,230, 4,137, 52, 36, 5, 68, 6, 0, +/* 0x1210 */ 0,199, 68, 36, 32, 4, 0, 0, 0,137, 68, 36, 4,199, 68, 36, +/* 0x1220 */ 28, 1, 0, 0, 0,184, 1, 0, 0, 0,139,108, 36, 4, 1,192, +/* 0x1230 */ 137, 68, 36, 24, 1,197,129,124, 36, 72,255,255,255, 0,119, 24, +/* 0x1240 */ 59, 92, 36, 76, 15,132,234, 0, 0, 0,193,100, 36, 72, 8, 15, +/* 0x1250 */ 182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72,102,139, 85, 0, +/* 0x1260 */ 193,232, 11, 15,183,242, 15,175,198, 57,199,115, 27,137, 68, 36, +/* 0x1270 */ 72,184, 0, 8, 0, 0, 41,240,193,248, 5,141, 4, 2,102,137, +/* 0x1280 */ 69, 0,139, 68, 36, 24,235, 31, 41, 68, 36, 72, 41,199,137,208, +/* 0x1290 */ 102,193,232, 5,102, 41,194,139, 68, 36, 24,102,137, 85, 0,139, +/* 0x12a0 */ 84, 36, 28, 64, 9, 20, 36,139, 76, 36, 32,209,100, 36, 28, 73, +/* 0x12b0 */ 137, 76, 36, 32, 15,133,112,255,255,255,139, 52, 36, 70,137,116, +/* 0x12c0 */ 36, 92,116, 89,139, 76, 36, 12,139,108, 36,116,131,193, 2, 57, +/* 0x12d0 */ 108, 36, 92,119, 95,139,132, 36,160, 0, 0, 0,137,234, 43, 68, +/* 0x12e0 */ 36, 92, 3,148, 36,160, 0, 0, 0,141, 52, 40,138, 6, 70,136, +/* 0x12f0 */ 68, 36,115,136, 2, 66,255, 68, 36,116, 73,116, 15,139,172, 36, +/* 0x1300 */ 164, 0, 0, 0, 57,108, 36,116,114,226,235, 17,139,132, 36,164, +/* 0x1310 */ 0, 0, 0, 57, 68, 36,116, 15,130,187,246,255,255,129,124, 36, +/* 0x1320 */ 72,255,255,255, 0,119, 21, 59, 92, 36, 76,184, 1, 0, 0, 0, +/* 0x1330 */ 116, 41,235, 7,184, 1, 0, 0, 0,235, 32, 67, 43,156, 36,148, +/* 0x1340 */ 0, 0, 0, 49,192,139,148, 36,156, 0, 0, 0,139, 76, 36,116, +/* 0x1350 */ 137, 26,139,156, 36,168, 0, 0, 0,137, 11,131,196,124, 91, 94, +/* 0x1360 */ 95, 93, 85, 87, 86, 83,131,236,124,139,148, 36,144, 0, 0, 0, +/* 0x1370 */ 199, 68, 36,116, 0, 0, 0, 0,198, 68, 36,115, 0,139,172, 36, +/* 0x1380 */ 156, 0, 0, 0,141, 66, 4,137, 68, 36,120,184, 1, 0, 0, 0, +/* 0x1390 */ 15,182, 74, 2,137,195,211,227,137,217, 73,137, 76, 36,108, 15, +/* 0x13a0 */ 182, 74, 1,211,224, 72,137, 68, 36,104,139,132, 36,168, 0, 0, +/* 0x13b0 */ 0, 15,182, 50,199, 69, 0, 0, 0, 0, 0,199, 68, 36, 96, 0, +/* 0x13c0 */ 0, 0, 0,199, 0, 0, 0, 0, 0,184, 0, 3, 0, 0,137,116, +/* 0x13d0 */ 36,100,199, 68, 36, 92, 1, 0, 0, 0,199, 68, 36, 88, 1, 0, +/* 0x13e0 */ 0, 0,199, 68, 36, 84, 1, 0, 0, 0,199, 68, 36, 80, 1, 0, +/* 0x13f0 */ 0, 0, 15,182, 74, 1, 1,241,211,224,141,136, 54, 7, 0, 0, +/* 0x1400 */ 57, 76, 36,116,115, 14,139, 68, 36,120,102,199, 0, 0, 4,131, +/* 0x1410 */ 192, 2,226,246,139,156, 36,148, 0, 0, 0, 49,255,199, 68, 36, +/* 0x1420 */ 72,255,255,255,255,137,218, 3,148, 36,152, 0, 0, 0,137, 84, +/* 0x1430 */ 36, 76, 49,210, 59, 92, 36, 76, 15,132,124, 9, 0, 0, 15,182, +/* 0x1440 */ 3,193,231, 8, 66, 67, 9,199,131,250, 4,126,231,139,140, 36, +/* 0x1450 */ 164, 0, 0, 0, 57, 76, 36,116, 15,131,100, 9, 0, 0,139,116, +/* 0x1460 */ 36,116, 35,116, 36,108,139, 68, 36, 96,139, 84, 36,120,193,224, +/* 0x1470 */ 4,137,116, 36, 68, 1,240,129,124, 36, 72,255,255,255, 0,141, +/* 0x1480 */ 44, 66,119, 24, 59, 92, 36, 76, 15,132, 44, 9, 0, 0,193,100, +/* 0x1490 */ 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72, +/* 0x14a0 */ 102,139, 85, 0,193,232, 11, 15,183,202, 15,175,193, 57,199, 15, +/* 0x14b0 */ 131,221, 1, 0, 0,137, 68, 36, 72,184, 0, 8, 0, 0, 41,200, +/* 0x14c0 */ 138, 76, 36,100,193,248, 5,190, 1, 0, 0, 0,141, 4, 2, 15, +/* 0x14d0 */ 182, 84, 36,115,102,137, 69, 0,139, 68, 36,116, 35, 68, 36,104, +/* 0x14e0 */ 139,108, 36,120,211,224,185, 8, 0, 0, 0, 43, 76, 36,100,211, +/* 0x14f0 */ 250, 1,208,105,192, 0, 6, 0, 0,131,124, 36, 96, 6,141,132, +/* 0x1500 */ 5,108, 14, 0, 0,137, 68, 36, 20, 15,142,202, 0, 0, 0,139, +/* 0x1510 */ 68, 36,116, 43, 68, 36, 92,139,148, 36,160, 0, 0, 0, 15,182, +/* 0x1520 */ 4, 2,137, 68, 36, 64,209,100, 36, 64,139, 76, 36, 64,141, 20, +/* 0x1530 */ 54,139,108, 36, 20,129,225, 0, 1, 0, 0,129,124, 36, 72,255, +/* 0x1540 */ 255,255, 0,141, 68, 77, 0,137, 76, 36, 60,141, 44, 16,119, 24, +/* 0x1550 */ 59, 92, 36, 76, 15,132, 96, 8, 0, 0,193,100, 36, 72, 8, 15, +/* 0x1560 */ 182, 3,193,231, 8, 67, 9,199,139, 68, 36, 72,102,139,141, 0, +/* 0x1570 */ 2, 0, 0,193,232, 11, 15,183,241, 15,175,198, 57,199,115, 35, +/* 0x1580 */ 137, 68, 36, 72,184, 0, 8, 0, 0, 41,240,137,214,193,248, 5, +/* 0x1590 */ 131,124, 36, 60, 0,141, 4, 1,102,137,133, 0, 2, 0, 0,116, +/* 0x15a0 */ 34,235, 46, 41, 68, 36, 72, 41,199,137,200,141,114, 1,102,193, +/* 0x15b0 */ 232, 5,102, 41,193,131,124, 36, 60, 0,102,137,141, 0, 2, 0, +/* 0x15c0 */ 0,116, 14,129,254,255, 0, 0, 0, 15,142, 87,255,255,255,235, +/* 0x15d0 */ 121,129,254,255, 0, 0, 0,127,113,141, 20, 54,139,108, 36, 20, +/* 0x15e0 */ 1,213,129,124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, +/* 0x15f0 */ 15,132,196, 7, 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, +/* 0x1600 */ 8, 67, 9,199,139, 68, 36, 72,102,139, 77, 0,193,232, 11, 15, +/* 0x1610 */ 183,241, 15,175,198, 57,199,115, 25,137, 68, 36, 72,184, 0, 8, +/* 0x1620 */ 0, 0, 41,240,137,214,193,248, 5,141, 4, 1,102,137, 69, 0, +/* 0x1630 */ 235,159, 41, 68, 36, 72, 41,199,137,200,141,114, 1,102,193,232, +/* 0x1640 */ 5,102, 41,193,102,137, 77, 0,235,135,139, 84, 36,116,137,240, +/* 0x1650 */ 139,140, 36,160, 0, 0, 0,136, 68, 36,115,136, 4, 10, 66,131, +/* 0x1660 */ 124, 36, 96, 3,137, 84, 36,116,127, 13,199, 68, 36, 96, 0, 0, +/* 0x1670 */ 0, 0,233, 27, 7, 0, 0,131,124, 36, 96, 9,127, 10,131,108, +/* 0x1680 */ 36, 96, 3,233, 10, 7, 0, 0,131,108, 36, 96, 6,233, 0, 7, +/* 0x1690 */ 0, 0,139, 76, 36, 72, 41,199,139,116, 36, 96, 41,193,137,208, +/* 0x16a0 */ 102,193,232, 5,102, 41,194,129,249,255,255,255, 0,102,137, 85, +/* 0x16b0 */ 0,139,108, 36,120,141,116,117, 0,137,116, 36, 56,119, 22, 59, +/* 0x16c0 */ 92, 36, 76, 15,132,241, 6, 0, 0, 15,182, 3,193,231, 8,193, +/* 0x16d0 */ 225, 8, 67, 9,199,139,108, 36, 56,137,200,193,232, 11,102,139, +/* 0x16e0 */ 149,128, 1, 0, 0, 15,183,234, 15,175,197, 57,199,115, 82,137, +/* 0x16f0 */ 198,184, 0, 8, 0, 0, 41,232,139,108, 36, 88,193,248, 5,139, +/* 0x1700 */ 76, 36, 84,141, 4, 2,139, 84, 36, 56,137, 76, 36, 80,139, 76, +/* 0x1710 */ 36,120,102,137,130,128, 1, 0, 0,139, 68, 36, 92,137,108, 36, +/* 0x1720 */ 84,137, 68, 36, 88, 49,192,131,124, 36, 96, 6, 15,159,192,129, +/* 0x1730 */ 193,100, 6, 0, 0,141, 4, 64,137, 68, 36, 96,233,116, 2, 0, +/* 0x1740 */ 0,137,206, 41,199, 41,198,137,208,102,193,232, 5,139, 76, 36, +/* 0x1750 */ 56,102, 41,194,129,254,255,255,255, 0,102,137,145,128, 1, 0, +/* 0x1760 */ 0,119, 22, 59, 92, 36, 76, 15,132, 77, 6, 0, 0, 15,182, 3, +/* 0x1770 */ 193,231, 8,193,230, 8, 67, 9,199,139,108, 36, 56,137,242,193, +/* 0x1780 */ 234, 11,102,139,141,152, 1, 0, 0, 15,183,193, 15,175,208, 57, +/* 0x1790 */ 215, 15,131,227, 0, 0, 0,189, 0, 8, 0, 0,137,214, 41,197, +/* 0x17a0 */ 199, 68, 36, 52, 0, 8, 0, 0,137,232,193,248, 5,141, 4, 1, +/* 0x17b0 */ 139, 76, 36, 56,102,137,129,152, 1, 0, 0,139, 68, 36, 96,139, +/* 0x17c0 */ 76, 36, 68,193,224, 5, 3, 68, 36,120,129,250,255,255,255, 0, +/* 0x17d0 */ 141, 44, 72,119, 22, 59, 92, 36, 76, 15,132,219, 5, 0, 0, 15, +/* 0x17e0 */ 182, 3,193,231, 8,193,230, 8, 67, 9,199,102,139,149,224, 1, +/* 0x17f0 */ 0, 0,137,240,193,232, 11, 15,183,202, 15,175,193, 57,199,115, +/* 0x1800 */ 96, 41, 76, 36, 52,193,124, 36, 52, 5,139,116, 36, 52,137, 68, +/* 0x1810 */ 36, 72,131,124, 36,116, 0,141, 4, 50,102,137,133,224, 1, 0, +/* 0x1820 */ 0, 15,132,147, 5, 0, 0, 49,192,131,124, 36, 96, 6,139,172, +/* 0x1830 */ 36,160, 0, 0, 0,139, 84, 36,116, 15,159,192,141, 68, 0, 9, +/* 0x1840 */ 137, 68, 36, 96,139, 68, 36,116, 43, 68, 36, 92,138, 68, 5, 0, +/* 0x1850 */ 136, 68, 36,115,136, 4, 42, 66,137, 84, 36,116,233, 49, 5, 0, +/* 0x1860 */ 0, 41,198, 41,199,137,208,102,193,232, 5,102, 41,194,102,137, +/* 0x1870 */ 149,224, 1, 0, 0,233, 31, 1, 0, 0,137,200, 41,214,102,193, +/* 0x1880 */ 232, 5,139,108, 36, 56,102, 41,193, 41,215,129,254,255,255,255, +/* 0x1890 */ 0,102,137,141,152, 1, 0, 0,119, 22, 59, 92, 36, 76, 15,132, +/* 0x18a0 */ 22, 5, 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, 9,199, +/* 0x18b0 */ 139, 76, 36, 56,137,240,193,232, 11,102,139,145,176, 1, 0, 0, +/* 0x18c0 */ 15,183,202, 15,175,193, 57,199,115, 35,137,198,184, 0, 8, 0, +/* 0x18d0 */ 0, 41,200,139,108, 36, 56,193,248, 5,141, 4, 2,102,137,133, +/* 0x18e0 */ 176, 1, 0, 0,139, 68, 36, 88,233,160, 0, 0, 0,137,241, 41, +/* 0x18f0 */ 199, 41,193,137,208,102,193,232, 5,102, 41,194,139, 68, 36, 56, +/* 0x1900 */ 129,249,255,255,255, 0,102,137,144,176, 1, 0, 0,119, 22, 59, +/* 0x1910 */ 92, 36, 76, 15,132,161, 4, 0, 0, 15,182, 3,193,231, 8,193, +/* 0x1920 */ 225, 8, 67, 9,199,139,116, 36, 56,137,200,193,232, 11,102,139, +/* 0x1930 */ 150,200, 1, 0, 0, 15,183,234, 15,175,197, 57,199,115, 32,137, +/* 0x1940 */ 198,184, 0, 8, 0, 0, 41,232,139,108, 36, 56,193,248, 5,141, +/* 0x1950 */ 4, 2,102,137,133,200, 1, 0, 0,139, 68, 36, 84,235, 38,137, +/* 0x1960 */ 206, 41,199, 41,198,137,208,102,193,232, 5,102, 41,194,139, 68, +/* 0x1970 */ 36, 56,102,137,144,200, 1, 0, 0,139, 84, 36, 84,139, 68, 36, +/* 0x1980 */ 80,137, 84, 36, 80,139, 76, 36, 88,137, 76, 36, 84,139,108, 36, +/* 0x1990 */ 92,137, 68, 36, 92,137,108, 36, 88, 49,192,131,124, 36, 96, 6, +/* 0x19a0 */ 139, 76, 36,120, 15,159,192,129,193,104, 10, 0, 0,141, 68, 64, +/* 0x19b0 */ 8,137, 68, 36, 96,129,254,255,255,255, 0,119, 22, 59, 92, 36, +/* 0x19c0 */ 76, 15,132,243, 3, 0, 0, 15,182, 3,193,231, 8,193,230, 8, +/* 0x19d0 */ 67, 9,199,102,139, 17,137,240,193,232, 11, 15,183,234, 15,175, +/* 0x19e0 */ 197, 57,199,115, 47,137, 68, 36, 72,184, 0, 8, 0, 0, 41,232, +/* 0x19f0 */ 193,100, 36, 68, 4,193,248, 5,199, 68, 36, 44, 0, 0, 0, 0, +/* 0x1a00 */ 141, 4, 2,102,137, 1,139, 68, 36, 68,141, 76, 1, 4,137, 76, +/* 0x1a10 */ 36, 16,235,114, 41,198, 41,199,137,208,102,193,232, 5,102, 41, +/* 0x1a20 */ 194,129,254,255,255,255, 0,102,137, 17,119, 22, 59, 92, 36, 76, +/* 0x1a30 */ 15,132,132, 3, 0, 0, 15,182, 3,193,231, 8,193,230, 8, 67, +/* 0x1a40 */ 9,199,102,139, 81, 2,137,240,193,232, 11, 15,183,234, 15,175, +/* 0x1a50 */ 197, 57,199,115, 59,137, 68, 36, 72,184, 0, 8, 0, 0, 41,232, +/* 0x1a60 */ 193,100, 36, 68, 4,193,248, 5,199, 68, 36, 44, 8, 0, 0, 0, +/* 0x1a70 */ 141, 4, 2,139, 84, 36, 68,102,137, 65, 2,141,140, 17, 4, 1, +/* 0x1a80 */ 0, 0,137, 76, 36, 16,199, 68, 36, 48, 3, 0, 0, 0,235, 47, +/* 0x1a90 */ 41,198, 41,199,137,208,137,116, 36, 72,102,193,232, 5,199, 68, +/* 0x1aa0 */ 36, 44, 16, 0, 0, 0,102, 41,194,199, 68, 36, 48, 8, 0, 0, +/* 0x1ab0 */ 0,102,137, 81, 2,129,193, 4, 2, 0, 0,137, 76, 36, 16,139, +/* 0x1ac0 */ 76, 36, 48,186, 1, 0, 0, 0,137, 76, 36, 40,141, 44, 18,139, +/* 0x1ad0 */ 116, 36, 16, 1,238,129,124, 36, 72,255,255,255, 0,119, 24, 59, +/* 0x1ae0 */ 92, 36, 76, 15,132,209, 2, 0, 0,193,100, 36, 72, 8, 15,182, +/* 0x1af0 */ 3,193,231, 8, 67, 9,199,139, 68, 36, 72,102,139, 22,193,232, +/* 0x1b00 */ 11, 15,183,202, 15,175,193, 57,199,115, 24,137, 68, 36, 72,184, +/* 0x1b10 */ 0, 8, 0, 0, 41,200,193,248, 5,141, 4, 2,137,234,102,137, +/* 0x1b20 */ 6,235, 21, 41, 68, 36, 72, 41,199,137,208,102,193,232, 5,102, +/* 0x1b30 */ 41,194,102,137, 22,141, 85, 1,139,116, 36, 40, 78,137,116, 36, +/* 0x1b40 */ 40,117,137,138, 76, 36, 48,184, 1, 0, 0, 0,211,224, 41,194, +/* 0x1b50 */ 3, 84, 36, 44,131,124, 36, 96, 3,137, 84, 36, 12, 15,143,231, +/* 0x1b60 */ 1, 0, 0,131, 68, 36, 96, 7,131,250, 3,137,208,126, 5,184, +/* 0x1b70 */ 3, 0, 0, 0,139,116, 36,120,193,224, 7,199, 68, 36, 36, 6, +/* 0x1b80 */ 0, 0, 0,141,132, 6, 96, 3, 0, 0,137, 68, 36, 8,184, 1, +/* 0x1b90 */ 0, 0, 0,141, 44, 0,139,116, 36, 8, 1,238,129,124, 36, 72, +/* 0x1ba0 */ 255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132, 10, 2, 0, 0, +/* 0x1bb0 */ 193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, +/* 0x1bc0 */ 36, 72,102,139, 22,193,232, 11, 15,183,202, 15,175,193, 57,199, +/* 0x1bd0 */ 115, 24,137, 68, 36, 72,184, 0, 8, 0, 0, 41,200,193,248, 5, +/* 0x1be0 */ 141, 4, 2,102,137, 6,137,232,235, 21, 41, 68, 36, 72, 41,199, +/* 0x1bf0 */ 137,208,102,193,232, 5,102, 41,194,141, 69, 1,102,137, 22,139, +/* 0x1c00 */ 108, 36, 36, 77,137,108, 36, 36,117,137,141, 80,192,131,250, 3, +/* 0x1c10 */ 137, 20, 36, 15,142, 39, 1, 0, 0,137,208,137,214,209,248,131, +/* 0x1c20 */ 230, 1,141, 72,255,131,206, 2,131,250, 13,137, 76, 36, 32,127, +/* 0x1c30 */ 28,139,108, 36,120,211,230, 1,210,137, 52, 36,141, 68,117, 0, +/* 0x1c40 */ 41,208, 5, 94, 5, 0, 0,137, 68, 36, 4,235, 86,141, 80,251, +/* 0x1c50 */ 129,124, 36, 72,255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132, +/* 0x1c60 */ 86, 1, 0, 0,193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, +/* 0x1c70 */ 9,199,209,108, 36, 72, 1,246, 59,124, 36, 72,114, 7, 43,124, +/* 0x1c80 */ 36, 72,131,206, 1, 74,117,200,139, 68, 36,120,193,230, 4,137, +/* 0x1c90 */ 52, 36, 5, 68, 6, 0, 0,199, 68, 36, 32, 4, 0, 0, 0,137, +/* 0x1ca0 */ 68, 36, 4,199, 68, 36, 28, 1, 0, 0, 0,184, 1, 0, 0, 0, +/* 0x1cb0 */ 139,108, 36, 4, 1,192,137, 68, 36, 24, 1,197,129,124, 36, 72, +/* 0x1cc0 */ 255,255,255, 0,119, 24, 59, 92, 36, 76, 15,132,234, 0, 0, 0, +/* 0x1cd0 */ 193,100, 36, 72, 8, 15,182, 3,193,231, 8, 67, 9,199,139, 68, +/* 0x1ce0 */ 36, 72,102,139, 85, 0,193,232, 11, 15,183,242, 15,175,198, 57, +/* 0x1cf0 */ 199,115, 27,137, 68, 36, 72,184, 0, 8, 0, 0, 41,240,193,248, +/* 0x1d00 */ 5,141, 4, 2,102,137, 69, 0,139, 68, 36, 24,235, 31, 41, 68, +/* 0x1d10 */ 36, 72, 41,199,137,208,102,193,232, 5,102, 41,194,139, 68, 36, +/* 0x1d20 */ 24,102,137, 85, 0,139, 84, 36, 28, 64, 9, 20, 36,139, 76, 36, +/* 0x1d30 */ 32,209,100, 36, 28, 73,137, 76, 36, 32, 15,133,112,255,255,255, +/* 0x1d40 */ 139, 52, 36, 70,137,116, 36, 92,116, 89,139, 76, 36, 12,139,108, +/* 0x1d50 */ 36,116,131,193, 2, 57,108, 36, 92,119, 95,139,132, 36,160, 0, +/* 0x1d60 */ 0, 0,137,234, 43, 68, 36, 92, 3,148, 36,160, 0, 0, 0,141, +/* 0x1d70 */ 52, 40,138, 6, 70,136, 68, 36,115,136, 2, 66,255, 68, 36,116, +/* 0x1d80 */ 73,116, 15,139,172, 36,164, 0, 0, 0, 57,108, 36,116,114,226, +/* 0x1d90 */ 235, 17,139,132, 36,164, 0, 0, 0, 57, 68, 36,116, 15,130,187, +/* 0x1da0 */ 246,255,255,129,124, 36, 72,255,255,255, 0,119, 21, 59, 92, 36, +/* 0x1db0 */ 76,184, 1, 0, 0, 0,116, 41,235, 7,184, 1, 0, 0, 0,235, +/* 0x1dc0 */ 32, 67, 43,156, 36,148, 0, 0, 0, 49,192,139,148, 36,156, 0, +/* 0x1dd0 */ 0, 0,139, 76, 36,116,137, 26,139,156, 36,168, 0, 0, 0,137, +/* 0x1de0 */ 11,131,196,124, 91, 94, 95, 93, 3,115,252, 3,123,248, 49,192, +/* 0x1df0 */ 141,140, 36, 0,255,255,255,137,236, 80, 57,204,117,251,137,236, +/* 0x1e00 */ 49,201, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, +/* 0x1e10 */ 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101, +/* 0x1e20 */ 108, 83, 79, 95, 77, 65, 73, 78, 0, 46,114,101,108, 83, 79, 95, +/* 0x1e30 */ 72, 69, 65, 68, 0,112,116,114, 95, 78, 69, 88, 84, 0, 83, 79, +/* 0x1e40 */ 95, 84, 65, 73, 76, 0, 69, 88, 80, 95, 72, 69, 65, 68, 0, 69, +/* 0x1e50 */ 88, 80, 95, 84, 65, 73, 76, 0, 46,114,101,108, 78, 82, 86, 50, +/* 0x1e60 */ 69, 0, 46,114,101,108, 78, 82, 86, 50, 68, 0, 46,114,101,108, +/* 0x1e70 */ 78, 82, 86, 50, 66, 0, 46,114,101,108, 76, 90, 77, 65, 95, 68, +/* 0x1e80 */ 69, 67, 48, 48, 0, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 0, +/* 0x1e90 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 0, 76, 90, 77, 65, 95, +/* 0x1ea0 */ 68, 69, 67, 50, 48, 0, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x1eb0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ec0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1ed0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, +/* 0x1ee0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, +/* 0x1ef0 */ 104, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, +/* 0x1f00 */ 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f10 */ 0, 0, 0, 0,220, 36, 0, 0, 64, 0, 0, 0, 22, 0, 0, 0, +/* 0x1f20 */ 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 43, 0, 0, 0, +/* 0x1f30 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 4, 0, 0, +/* 0x1f40 */ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1f50 */ 0, 0, 0, 0, 39, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x1f60 */ 0, 0, 0, 0, 28, 37, 0, 0, 8, 0, 0, 0, 22, 0, 0, 0, +/* 0x1f70 */ 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 51, 0, 0, 0, +/* 0x1f80 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 4, 0, 0, +/* 0x1f90 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1fa0 */ 0, 0, 0, 0, 60, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fb0 */ 0, 0, 0, 0,191, 4, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, +/* 0x1fc0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, +/* 0x1fd0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 5, 0, 0, +/* 0x1fe0 */ 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x1ff0 */ 0, 0, 0, 0, 77, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2000 */ 0, 0, 0, 0, 20, 6, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, +/* 0x2010 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, +/* 0x2020 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, +/* 0x2030 */ 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x2040 */ 0, 0, 0, 0, 86, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x2050 */ 0, 0, 0, 0, 36, 37, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, +/* 0x2060 */ 9, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,100, 0, 0, 0, +/* 0x2070 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 6, 0, 0, +/* 0x2080 */ 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x2090 */ 0, 0, 0, 0, 96, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x20a0 */ 0, 0, 0, 0, 52, 37, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, +/* 0x20b0 */ 11, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,110, 0, 0, 0, +/* 0x20c0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 7, 0, 0, +/* 0x20d0 */ 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x20e0 */ 0, 0, 0, 0,106, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x20f0 */ 0, 0, 0, 0, 68, 37, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, +/* 0x2100 */ 13, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,120, 0, 0, 0, +/* 0x2110 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 8, 0, 0, +/* 0x2120 */ 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x2130 */ 0, 0, 0, 0,116, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, +/* 0x2140 */ 0, 0, 0, 0, 84, 37, 0, 0, 32, 0, 0, 0, 22, 0, 0, 0, +/* 0x2150 */ 15, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,131, 0, 0, 0, +/* 0x2160 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 8, 0, 0, +/* 0x2170 */ 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x2180 */ 0, 0, 0, 0,142, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x2190 */ 0, 0, 0, 0,220, 8, 0, 0,134, 10, 0, 0, 0, 0, 0, 0, +/* 0x21a0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,153, 0, 0, 0, +/* 0x21b0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 19, 0, 0, +/* 0x21c0 */ 134, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x21d0 */ 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, +/* 0x21e0 */ 0, 0, 0, 0,232, 29, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, +/* 0x21f0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, +/* 0x2200 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30, 0, 0, +/* 0x2210 */ 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x2220 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, +/* 0x2230 */ 0, 0, 0, 0,116, 34, 0, 0,224, 1, 0, 0, 23, 0, 0, 0, +/* 0x2240 */ 15, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, +/* 0x2250 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 36, 0, 0, +/* 0x2260 */ 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +/* 0x2270 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2280 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2290 */ 3, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22a0 */ 3, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22b0 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22c0 */ 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22d0 */ 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22e0 */ 3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x22f0 */ 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2300 */ 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2310 */ 3, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2320 */ 3, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2330 */ 3, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2340 */ 3, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2350 */ 3, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2360 */ 3, 0, 20, 0, 1, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, +/* 0x2370 */ 16, 0, 7, 0, 10, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, +/* 0x2380 */ 16, 0, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2390 */ 16, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23a0 */ 16, 0, 0, 0, 51, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, +/* 0x23b0 */ 16, 0, 6, 0, 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, +/* 0x23c0 */ 16, 0, 6, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x23d0 */ 18, 0, 6, 0, 67, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, +/* 0x23e0 */ 16, 0, 6, 0, 73, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, +/* 0x23f0 */ 16, 0, 6, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2400 */ 16, 0, 0, 0, 91, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, +/* 0x2410 */ 16, 0, 6, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x2420 */ 16, 0, 0, 0,110, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, +/* 0x2430 */ 16, 0, 6, 0,115, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, +/* 0x2440 */ 16, 0, 6, 0,124, 0, 0, 0, 77, 2, 0, 0, 27, 2, 0, 0, +/* 0x2450 */ 18, 0, 1, 0, 0,102, 95,101,120,112, 97,110,100, 0,109,117, +/* 0x2460 */ 110,109, 97,112, 0,108,122,109, 97, 95,115,116, 97, 99,107, 95, +/* 0x2470 */ 97,100,106,117,115,116, 0,108,122,109, 97, 95,112,114,111,112, +/* 0x2480 */ 101,114,116,105,101,115, 0,109,101,109, 99,112,121, 0,109,109, +/* 0x2490 */ 97,112, 0,101,111,102, 0,119,114,105,116,101, 0,109,101,109, +/* 0x24a0 */ 115,101,116, 0,108,122,109, 97, 95, 99, 95,108,101,110, 0,109, +/* 0x24b0 */ 121, 95, 98,107,112,116, 0,108,122,109, 97, 95,117, 95,108,101, +/* 0x24c0 */ 110, 0,101,120,105,116, 0,109,112,114,111,116,101, 99,116, 0, +/* 0x24d0 */ 117,112,120, 95,115,111, 95,109, 97,105,110, 0, 8, 0, 0, 0, +/* 0x24e0 */ 2, 25, 0, 0,253, 0, 0, 0, 2, 15, 0, 0,196, 1, 0, 0, +/* 0x24f0 */ 2, 20, 0, 0, 34, 2, 0, 0, 2, 19, 0, 0, 51, 2, 0, 0, +/* 0x2500 */ 2, 20, 0, 0, 62, 2, 0, 0, 2, 19, 0, 0,141, 2, 0, 0, +/* 0x2510 */ 2, 20, 0, 0,156, 2, 0, 0, 2, 19, 0, 0, 11, 0, 0, 0, +/* 0x2520 */ 2, 29, 0, 0,199, 0, 0, 0, 2, 1, 0, 0,102, 0, 0, 0, +/* 0x2530 */ 2, 2, 0, 0,186, 0, 0, 0, 2, 1, 0, 0,102, 0, 0, 0, +/* 0x2540 */ 2, 2, 0, 0,167, 0, 0, 0, 2, 1, 0, 0, 84, 0, 0, 0, +/* 0x2550 */ 2, 2, 0, 0, 5, 0, 0, 0, 1, 17, 0, 0, 20, 0, 0, 0, +/* 0x2560 */ 1, 26, 0, 0, 30, 0, 0, 0, 1, 24, 0, 0, 42, 0, 0, 0, +/* 0x2570 */ 1, 18, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32, +/* 0x2580 */ 101,108,102, 51, 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116, +/* 0x2590 */ 105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, +/* 0x25a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, +/* 0x25b0 */ 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, +/* 0x25c0 */ 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, +/* 0x25d0 */ 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, +/* 0x25e0 */ 83, 79, 95, 77, 65, 73, 78, 32, 32, 32, 32, 32, 32, 32, 48, 52, +/* 0x25f0 */ 54, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, +/* 0x2600 */ 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, +/* 0x2610 */ 49, 32, 83, 79, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 32, +/* 0x2620 */ 48, 50, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 57, 99, 32, +/* 0x2630 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, +/* 0x2640 */ 32, 32, 50, 32,112,116,114, 95, 78, 69, 88, 84, 32, 32, 32, 32, +/* 0x2650 */ 32, 32, 48, 51, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 98, 99, +/* 0x2660 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x2670 */ 10, 32, 32, 51, 32, 83, 79, 95, 84, 65, 73, 76, 32, 32, 32, 32, +/* 0x2680 */ 32, 32, 32, 48, 54, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, +/* 0x2690 */ 98,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x26a0 */ 84, 83, 10, 32, 32, 52, 32, 69, 88, 80, 95, 72, 69, 65, 68, 32, +/* 0x26b0 */ 32, 32, 32, 32, 32, 48,102, 49, 32, 32, 48, 32, 32, 48, 32, 32, +/* 0x26c0 */ 48, 53, 50, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x26d0 */ 69, 78, 84, 83, 10, 32, 32, 53, 32, 69, 88, 80, 95, 84, 65, 73, +/* 0x26e0 */ 76, 32, 32, 32, 32, 32, 32, 48, 98, 32, 32, 48, 32, 32, 48, 32, +/* 0x26f0 */ 32, 48, 54, 49, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x2700 */ 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 78, 82, 86, 50, 69, 32, +/* 0x2710 */ 32, 32, 32, 32, 32, 32, 32, 32, 48,100, 50, 32, 32, 48, 32, 32, +/* 0x2720 */ 48, 32, 32, 48, 54, 49,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x2730 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 78, 82, 86, 50, +/* 0x2740 */ 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 99, 53, 32, 32, 48, +/* 0x2750 */ 32, 32, 48, 32, 32, 48, 54,102, 49, 32, 32, 50, 42, 42, 48, 32, +/* 0x2760 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 78, 82, +/* 0x2770 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 98, 48, 32, +/* 0x2780 */ 32, 48, 32, 32, 48, 32, 32, 48, 55, 98, 54, 32, 32, 50, 42, 42, +/* 0x2790 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, +/* 0x27a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 48, 48, 32, 32, 32, 32, 48, 50, +/* 0x27b0 */ 101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 56, 54, 54, 32, 32, 50, +/* 0x27c0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, +/* 0x27d0 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, +/* 0x27e0 */ 48, 52, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 56, 57, 52, 32, +/* 0x27f0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, +/* 0x2800 */ 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, +/* 0x2810 */ 32, 32, 48, 97, 56, 54, 32, 32, 48, 32, 32, 48, 32, 32, 48, 56, +/* 0x2820 */ 100, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x2830 */ 84, 83, 10, 32, 49, 50, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2840 */ 48, 32, 32, 32, 32, 48, 97, 56, 54, 32, 32, 48, 32, 32, 48, 32, +/* 0x2850 */ 32, 48, 49, 51, 54, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x2860 */ 78, 84, 69, 78, 84, 83, 10, 32, 49, 51, 32, 76, 90, 77, 65, 95, +/* 0x2870 */ 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 49, 97, 32, 32, 48, 32, +/* 0x2880 */ 32, 48, 32, 32, 48, 49,100,101, 56, 32, 32, 50, 42, 42, 48, 32, +/* 0x2890 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, +/* 0x28a0 */ 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x28b0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, 80, 95, 72, 69, 65, +/* 0x28c0 */ 68, 32, 48, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, +/* 0x28d0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 88, +/* 0x28e0 */ 80, 95, 84, 65, 73, 76, 32, 48, 32, 69, 88, 80, 95, 84, 65, 73, +/* 0x28f0 */ 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x2900 */ 100, 32, 32, 83, 79, 95, 77, 65, 73, 78, 32, 48, 32, 83, 79, 95, +/* 0x2910 */ 77, 65, 73, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x2920 */ 32, 32, 32,100, 32, 32, 83, 79, 95, 72, 69, 65, 68, 32, 48, 32, +/* 0x2930 */ 83, 79, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2940 */ 32,108, 32, 32, 32, 32,100, 32, 32,112,116,114, 95, 78, 69, 88, +/* 0x2950 */ 84, 32, 48, 32,112,116,114, 95, 78, 69, 88, 84, 10, 48, 48, 48, +/* 0x2960 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 79, +/* 0x2970 */ 95, 84, 65, 73, 76, 32, 48, 32, 83, 79, 95, 84, 65, 73, 76, 10, +/* 0x2980 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x2990 */ 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69, 10, 48, +/* 0x29a0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x29b0 */ 78, 82, 86, 50, 68, 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, +/* 0x29c0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, +/* 0x29d0 */ 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x29e0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, +/* 0x29f0 */ 77, 65, 95, 68, 69, 67, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, +/* 0x2a00 */ 68, 69, 67, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x2a10 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x2a20 */ 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, +/* 0x2a30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2a40 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, +/* 0x2a50 */ 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2a60 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2a70 */ 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x2a80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x2a90 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, +/* 0x2aa0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x2ab0 */ 53, 55, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, +/* 0x2ac0 */ 69, 65, 68, 32, 48, 32,102, 95,101,120,112, 97,110,100, 10, 48, +/* 0x2ad0 */ 48, 48, 48, 48, 48, 53, 54, 32,103, 32, 32, 32, 32, 32, 32, 32, +/* 0x2ae0 */ 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109,117,110,109, 97,112, +/* 0x2af0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, +/* 0x2b00 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,108,122,109, 97, 95,115, +/* 0x2b10 */ 116, 97, 99,107, 95, 97,100,106,117,115,116, 10, 48, 48, 48, 48, +/* 0x2b20 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, +/* 0x2b30 */ 68, 42, 32, 48, 32,108,122,109, 97, 95,112,114,111,112,101,114, +/* 0x2b40 */ 116,105,101,115, 10, 48, 48, 48, 48, 48, 48, 49, 57, 32,103, 32, +/* 0x2b50 */ 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32, +/* 0x2b60 */ 109,101,109, 99,112,121, 10, 48, 48, 48, 48, 48, 48, 51,101, 32, +/* 0x2b70 */ 103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, +/* 0x2b80 */ 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x2b90 */ 103, 32, 32, 32, 32, 32, 70, 32, 83, 79, 95, 84, 65, 73, 76, 32, +/* 0x2ba0 */ 48, 32,101,111,102, 10, 48, 48, 48, 48, 48, 48, 53,101, 32,103, +/* 0x2bb0 */ 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, +/* 0x2bc0 */ 32,119,114,105,116,101, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, +/* 0x2bd0 */ 103, 32, 32, 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, +/* 0x2be0 */ 48, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2bf0 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, +/* 0x2c00 */ 48, 32,108,122,109, 97, 95, 99, 95,108,101,110, 10, 48, 48, 48, +/* 0x2c10 */ 48, 48, 48, 48,101, 32,103, 32, 32, 32, 32, 32, 32, 32, 83, 79, +/* 0x2c20 */ 95, 84, 65, 73, 76, 32, 48, 32,109,121, 95, 98,107,112,116, 10, +/* 0x2c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2c40 */ 32, 42, 85, 78, 68, 42, 32, 48, 32,108,122,109, 97, 95,117, 95, +/* 0x2c50 */ 108,101,110, 10, 48, 48, 48, 48, 48, 48, 53, 50, 32,103, 32, 32, +/* 0x2c60 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,101, +/* 0x2c70 */ 120,105,116, 10, 48, 48, 48, 48, 48, 48, 53, 97, 32,103, 32, 32, +/* 0x2c80 */ 32, 32, 32, 32, 32, 83, 79, 95, 84, 65, 73, 76, 32, 48, 32,109, +/* 0x2c90 */ 112,114,111,116,101, 99,116, 10, 48, 48, 48, 48, 48, 50, 52,100, +/* 0x2ca0 */ 32,103, 32, 32, 32, 32, 32, 70, 32, 83, 79, 95, 77, 65, 73, 78, +/* 0x2cb0 */ 32, 48, 50, 49, 98, 32,117,112,120, 95,115,111, 95,109, 97,105, +/* 0x2cc0 */ 110, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x2cd0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, 77, 65, +/* 0x2ce0 */ 73, 78, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, +/* 0x2cf0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d00 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, +/* 0x2d10 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, +/* 0x2d20 */ 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 48,102, +/* 0x2d30 */ 100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, +/* 0x2d40 */ 32, 32, 32, 32,102, 95,101,120,112, 97,110,100, 10, 48, 48, 48, +/* 0x2d50 */ 48, 48, 49, 99, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, +/* 0x2d60 */ 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, +/* 0x2d70 */ 48, 48, 50, 50, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, +/* 0x2d80 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109, 99,112,121, 10, 48, +/* 0x2d90 */ 48, 48, 48, 48, 50, 51, 51, 32, 82, 95, 51, 56, 54, 95, 80, 67, +/* 0x2da0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, +/* 0x2db0 */ 48, 48, 48, 48, 50, 51,101, 32, 82, 95, 51, 56, 54, 95, 80, 67, +/* 0x2dc0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109, 99,112,121, +/* 0x2dd0 */ 10, 48, 48, 48, 48, 48, 50, 56,100, 32, 82, 95, 51, 56, 54, 95, +/* 0x2de0 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, +/* 0x2df0 */ 10, 48, 48, 48, 48, 48, 50, 57, 99, 32, 82, 95, 51, 56, 54, 95, +/* 0x2e00 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109, 99, +/* 0x2e10 */ 112,121, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x2e20 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 79, 95, 72, +/* 0x2e30 */ 69, 65, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x2e40 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2e50 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 98, 32, +/* 0x2e60 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, +/* 0x2e70 */ 32, 32,117,112,120, 95,115,111, 95,109, 97,105,110, 10, 10, 82, +/* 0x2e80 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x2e90 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, +/* 0x2ea0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x2eb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x2ec0 */ 48, 48, 48, 48, 48, 48, 99, 55, 32, 82, 95, 51, 56, 54, 95, 80, +/* 0x2ed0 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, +/* 0x2ee0 */ 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 54, 54, 32, 82, 95, 51, +/* 0x2ef0 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x2f00 */ 88, 80, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x2f10 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x2f20 */ 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x2f30 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2f40 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x2f50 */ 98, 97, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, +/* 0x2f60 */ 32, 32, 32, 32, 32, 69, 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, +/* 0x2f70 */ 48, 48, 48, 48, 54, 54, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, +/* 0x2f80 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 88, 80, 95, 84, 65, 73, +/* 0x2f90 */ 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x2fa0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, +/* 0x2fb0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, +/* 0x2fc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x2fd0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 97, 55, 32, 82, 95, 51, +/* 0x2fe0 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, +/* 0x2ff0 */ 88, 80, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 53, 52, +/* 0x3000 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, +/* 0x3010 */ 32, 32, 32, 69, 88, 80, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, +/* 0x3020 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x3030 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 48, 48, 93, +/* 0x3040 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x3050 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x3060 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95, 51, 56, +/* 0x3070 */ 54, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,108,122, +/* 0x3080 */ 109, 97, 95,115,116, 97, 99,107, 95, 97,100,106,117,115,116, 10, +/* 0x3090 */ 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 51, 56, 54, 95, 51, +/* 0x30a0 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,108,122,109, 97, 95, +/* 0x30b0 */ 117, 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, 49,101, 32, 82, +/* 0x30c0 */ 95, 51, 56, 54, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x30d0 */ 32,108,122,109, 97, 95, 99, 95,108,101,110, 10, 48, 48, 48, 48, +/* 0x30e0 */ 48, 48, 50, 97, 32, 82, 95, 51, 56, 54, 95, 51, 50, 32, 32, 32, +/* 0x30f0 */ 32, 32, 32, 32, 32, 32, 32,108,122,109, 97, 95,112,114,111,112, +/* 0x3100 */ 101,114,116,105,101,115, 10 +}; diff --git a/src/stub/src/amd64-expand.S b/src/stub/src/amd64-expand.S index 8c370617..f5b94f04 100644 --- a/src/stub/src/amd64-expand.S +++ b/src/stub/src/amd64-expand.S @@ -73,47 +73,59 @@ NBPW= 8 #define getnextb(reg) getnextbp(reg) // /************************************************************************* -// C-callable decompressor f_expand(src, srclen, dst, &dstlen, method) +// C-callable decompressor f_expand(&b_info, dst, &dstlen) // **************************************************************************/ section EXP_HEAD +f_expand: .globl f_expand // start of code for actual de-compressor push %rbp; mov %rsp,%rbp; push %rbx // MATCH_50 C saved registers // Calling sequence registers -#define src %arg1 -#define srclen %arg2 -#define dst %arg3 -#define dstlen %arg4 -#define meth %arg5d -#define methb %arg5b -#define arg5d r8d +#define fx_src %rdi +#define fx_dst %rsi +#define fx_dstlen %rdx + +sz_unc= 0 +sz_cpr= 4 +b_method= 8 +b_ftid= 9 +b_cto8= 10 +b_extra= 11 +sz_binfo= 12 // If unfilter will be needed, then splice a call to unfilter after de-compress - movl meth,%eax; movzbl %ah,%eax; test %eax,%eax; jz no_unf - push %rax // ftid - movl meth,%eax; shr $16,%eax; push %rax // cto8 and extra - push (dstlen) - push dst - call no_unf - pop %rdi; pop %rsi; pop %rdx; pop %rcx // (*f_unf)(xo->buf, out_len, h.b_cto8, h.b_ftid); -#include "arch/amd64/bxx.S" // actual unfilter code - pop %rbx; pop %rbp - ret + movzbl b_ftid(fx_src),%eax; test %eax,%eax; jz no_unf + movzbl b_cto8(fx_src),%ecx + push %rax; push %ecx; push (fx_dstlen); push fx_dst + call no_unf + // decompress returns here, to fall into unfilter + pop %rdi; pop %rsi; pop %rdx; pop %rcx // (*f_unf)(xo->buf, out_len, h.b_cto8, h.b_ftid); + push %rax // save result from decompress +#include "arch/amd64/bxx.S" // unfilter code; args in registers, fall-through return + pop %rax // restore result from decompress + pop %rbx; pop %rbp + ret no_unf: -/* Working registers */ +/* NRV2 working registers */ #define off %eax /* XXX: 2GB */ #define len %ecx /* XXX: 2GB */ #define lenq %rcx #define bits %ebx +#define methb %dl /* input only */ +#define src %rsi +#define dst %rdi #define displ %ebp #define dispq %rbp - push dstlen // MATCH_51 - add src,srclen; push srclen // MATCH_52 src_EOF - mov src,%rsi // hardware src for movsb, lodsb - push dst // MATCH_53 dst_orig - mov dst,%rdi // hardware dst for movsb + push fx_dstlen // MATCH_51 + movzbl b_method(fx_src),%edx // methb; for choosing decompression method + push fx_src; push fx_dst + pop dst; pop src + mov sz_cpr(src),%eax; add $sz_binfo,src // done with b_info; ready for movsb, lodsb + add src,%rax; push %rax // MATCH_52 src_EOF + push dst // MATCH_53 dst_orig + xor bits,bits // empty; force refill xor len,len // create loop invariant orq $(~0),dispq // -1: initial displacement @@ -147,18 +159,6 @@ copy0: setup: cld - section EXP_TAIL -eof: - pop %rax // MATCH_53 dst_orig - sub %rax,%rdi // dst -= original dst - pop %rax // MATCH_52 src_EOF - pop %rcx // MATCH_51 &dstlen - movl %edi,(%rcx) // actual length used at dst XXX: 4GB - sub %rsi,%rax // src -= eof; // return 0: good; else: bad - - pop %rbx; pop %rbp - ret - #define M_NRV2B_LE32 2 #define M_NRV2D_LE32 5 #define M_NRV2E_LE32 8 @@ -176,14 +176,28 @@ eof: #undef off #undef len +#undef lenq #undef bits #undef displ #undef dispq #undef src #undef dst -#undef meth +#undef methb /* lzma has its own 'section's */ #include "arch/amd64/lzma_d.S" + section EXP_TAIL +eof: + pop %rax // MATCH_53 dst_orig + sub %rax,%rdi // dst -= original dst + pop %rax // MATCH_52 src_EOF + pop %rcx // MATCH_51 &dstlen + movl %edi,(%rcx) // actual length used at dst XXX: 4GB + sub %rsi,%rax // src -= eof; // return 0: good; else: bad + + pop %rbx; pop %rbp + ret + + diff --git a/src/stub/src/amd64-linux.elf-so_entry.S b/src/stub/src/amd64-linux.elf-so_entry.S index 35274d02..d11ddac6 100644 --- a/src/stub/src/amd64-linux.elf-so_entry.S +++ b/src/stub/src/amd64-linux.elf-so_entry.S @@ -81,7 +81,7 @@ M_NRV2E_LE32=8 // .long offset({l_info; p_info; b_info; compressed data}) section ELFMAINX _start: -//// int3 // DEBUG + nop // int3 // DEBUG push %arg3 // MATCH_07 envp (glibc) push %arg2 // MATCH_01 argv push %arg1 // MATCH_00 argc @@ -117,7 +117,7 @@ L20: // Get pages for unfolded code sub %arg6,%arg6 // 0 - pop %rdx // MATCH_08 &gitbit + pop %rdx // MATCH_08 &getbit sub %arg5,%arg5 // 0 movl /*sz_unc*/(%rbx),%arg2l // dstlen push $MAP_PRIVATE|MAP_ANONYMOUS; pop %sys4 @@ -125,7 +125,7 @@ L20: push %rdx // MATCH_15 save &getbit over syscall push $PROT_READ|PROT_WRITE; pop %arg3 subl %edi,%edi // (%arg1)dst = 0; // kernel chooses - push $__NR_mmap; pop %rax; syscall + push $__NR_mmap; pop %rax; syscall; cmp $-4096,%rax; jb 0f; int3; 0: pop %rdx // MATCH_15 &getbit push %rax // MATCH_04 ptr unfolded_code @@ -209,7 +209,7 @@ eof_n2b: push %arg2 // MATCH_12 len unfolded code push %arg1 // MATCH_13 ptr unfolded code push $PROT_EXEC|PROT_READ; pop %arg3 - push $__NR_mprotect; pop %rax; syscall + push $__NR_mprotect; pop %rax; syscall; cmp $-4096,%rax; jb 0f; int3; 0: // %rsp: // MATCH_13 ptr unfolded_code; for escape hatch diff --git a/src/stub/src/amd64-linux.elf-so_fold.S b/src/stub/src/amd64-linux.elf-so_fold.S index 48139d1f..6a999f18 100644 --- a/src/stub/src/amd64-linux.elf-so_fold.S +++ b/src/stub/src/amd64-linux.elf-so_fold.S @@ -24,10 +24,9 @@ NBPW= 8 fold: pop %rbx // MATCH_13 ptr unfolded code pop %rbp // MATCH_12 len unfolded code - lea f_exp(%rip),%arg1 // decompression routine - pop %arg2 // MATCH_14 &so_info - lea 2*NBPW(%rsp),%arg3 // skip MATCH_03, MATCH_02; MATCH_00 &{argc, argv, envp} - call upx_so_main // (&decompress, &so_init, &{argc, argv, envp}); returns &escape_hatch + pop %arg1 // MATCH_14 &so_info + lea 2*NBPW(%rsp),%arg2 // skip MATCH_03, MATCH_02; MATCH_00 &{argc, argv, envp} + call upx_so_main // (&so_info, &{argc, argv, envp}); returns &escape_hatch push %rbp; pop %arg2 // len unfolded code push %rbx; pop %arg1 // ptr unfolded code @@ -43,7 +42,6 @@ fold: // ret // ==> user_DT_INIT section ptr_NEXT -f_exp: // start of code for actual de-compressor // pop %rax; call *%rax // "lea f_exp(%rip)," addressing on x86_64 subsumes the need for code, // but keep the empty section to unify buildLinuxLoader() @@ -71,7 +69,7 @@ eof: // end of a compressed extent // // Subroutines and syscalls needed by upx_so_main // -f_int3: .globl f_int3 +my_bkpt: .globl my_bkpt int3 ret @@ -94,7 +92,8 @@ memcpy: .globl memcpy // void *memcpy(void *dst, void const *src, size_t n) /* 64-bit mode only! */ __NR_read= 0 __NR_write= 1 -__NR_open= 2 +//__NR_open= 2 +__NR_openat= 257 __NR_close= 3 __NR_mmap= 9 @@ -141,20 +140,22 @@ sysgo: # NOTE: kernel demands 4th arg in %sys4, NOT %arg4 pop %r9 pop %r10 #endif //} - syscall # failure return: -0x1000ul < $rax + syscall; cmp $-4096,%rax; jb 0f; int3; 0: ret exit: .globl exit - push $ __NR_exit; jmp sysgo -munmap: .globl munmap - push $ __NR_munmap; jmp sysgo -mprotect: .globl mprotect - push $ __NR_mprotect; jmp sysgo + push $ __NR_exit; 5: jmp 5f +close: .globl close + push $ __NR_close; 5: jmp 5f +openat: .globl openat + push $ __NR_openat; 5: jmp 5f write: .globl write - push $__NR_write - pop %rax - syscall - ret - + push $__NR_write; 5: jmp 5f +read: .globl read + push $ __NR_read; 5: jmp 5f +munmap: .globl munmap + push $ __NR_munmap; 5: jmp 5f +mprotect: .globl mprotect + push $ __NR_mprotect; 5: jmp sysgo // section SO_MAIN inserted here diff --git a/src/stub/src/amd64-linux.elf-so_main.c b/src/stub/src/amd64-linux.elf-so_main.c index 4d8a5d2e..658666fa 100644 --- a/src/stub/src/amd64-linux.elf-so_main.c +++ b/src/stub/src/amd64-linux.elf-so_main.c @@ -103,6 +103,27 @@ void dprint8( #define MAX_ELF_HDR 1024 // Elf64_Ehdr + n*Elf64_Phdr must fit in this +/************************************************************************* +// util +**************************************************************************/ + +#if 0 //{ save space +#define ERR_LAB error: exit(127); +#define err_exit(a) goto error +#else //}{ save debugging time +#define ERR_LAB /*empty*/ +void my_bkpt(void const *, ...); + +static void +err_exit(int a) +{ + (void)a; // debugging convenience + DPRINTF("err_exit %%x\\n", a); + my_bkpt((void const *)(long)a); + exit(127); +} +#endif //} + /************************************************************************* // "file" util **************************************************************************/ @@ -132,43 +153,22 @@ xread(Extent *x, char *buf, size_t count) x->size, x->buf, buf, count); } - -/************************************************************************* -// util -**************************************************************************/ - -#if 0 //{ save space -#define ERR_LAB error: exit(127); -#define err_exit(a) goto error -#else //}{ save debugging time -#define ERR_LAB /*empty*/ -static void -err_exit(int a) -{ - (void)a; // debugging convenience - DPRINTF("err_exit %%x\\n", a); - exit(127); -} -#endif //} - /************************************************************************* // UPX & NRV stuff **************************************************************************/ -typedef int f_expand( - const nrv_byte *, nrv_uint, - nrv_byte *, size_t *, unsigned ); +int f_expand( // .globl in $(ARCH)-linux.elf-so_fold.S + nrv_byte const *binfo, nrv_byte *dst, size_t *dstlen); static void unpackExtent( - Extent *const xi, // input - Extent *const xo, // output - f_expand *const f_exp + Extent *const xi, // input includes struct b_info + Extent *const xo // output ) { while (xo->size) { - DPRINTF("unpackExtent xi=(%%p %%p) xo=(%%p %%p) f_exp=%%p\\n", - xi->size, xi->buf, xo->size, xo->buf, f_exp); + DPRINTF("unpackExtent xi=(%%p %%p) xo=(%%p %%p)\\n", + xi->size, xi->buf, xo->size, xo->buf); struct b_info h; // Note: if h.sz_unc == h.sz_cpr then the block was not // compressible and is stored in its uncompressed form. @@ -199,14 +199,8 @@ ERR_LAB if (h.sz_cpr < h.sz_unc) { // Decompress block size_t out_len = h.sz_unc; // EOF for lzma - int const j = (*f_exp)((unsigned char *)xi->buf, h.sz_cpr, - (unsigned char *)xo->buf, &out_len, -#if defined(__x86_64) //{ - *(int *)(void *)&h.b_method -#elif defined(__powerpc64__) || defined(__aarch64__) //}{ - h.b_method -#endif //} - ); + int const j = f_expand((unsigned char *)xi->buf - sizeof(h), + (unsigned char *)xo->buf, &out_len); if (j != 0 || out_len != (nrv_uint)h.sz_unc) { DPRINTF(" j=%%x out_len=%%x &h=%%p\\n", j, out_len, &h); err_exit(7); @@ -328,17 +322,16 @@ make_hatch_arm64( // Try page fragmentation just beyond .text . ( (hatch = (void *)(~3ul & (3+ phdr->p_memsz + phdr->p_vaddr + reloc))), ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss - && (2*4)<=(frag_mask & -(int)(uint64_t)hatch) ) ) // space left on page - // Try Elf64_Ehdr.e_ident[8..15] . warning: 'const' cast away - || ( (hatch = (void *)(&((Elf64_Ehdr *)(phdr->p_vaddr + reloc))->e_ident[8])), - (phdr->p_offset==0) ) + && (4*4)<=(frag_mask & -(int)(uint64_t)hatch) ) ) // space left on page // Allocate and use a new page. || ( xprot = 1, hatch = mmap(0, 1<<12, PROT_WRITE|PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ) ) { hatch[0] = 0xd4000001; // svc #0 - hatch[1] = 0xd65f03c0; // ret (jmp *lr) + hatch[1] = 0xa9417be2; // ldp x2,lr,[sp,#2*8)] + hatch[2] = 0xa8c207e0; // ldp x0,x1,[sp], 4*8 + hatch[3] = 0xd61f03c0; // br x30 if (xprot) { mprotect(hatch, 2*sizeof(unsigned), PROT_EXEC|PROT_READ); } @@ -351,20 +344,6 @@ make_hatch_arm64( } #endif //} -#if defined(__powerpc64__) || defined(__aarch64__) //{ bzero -static void -upx_bzero(char *p, size_t len) -{ - DPRINTF("bzero %%x %%x\\n", p, len); - if (len) do { - *p++= 0; - } while (--len); -} -#define bzero upx_bzero -#else //}{ -#define bzero(a,b) __builtin_memset(a,0,b) -#endif //} - // The PF_* and PROT_* bits are {1,2,4}; the conversion table fits in 32 bits. #define REP8(x) \ ((x)|((x)<<4)|((x)<<8)|((x)<<12)|((x)<<16)|((x)<<20)|((x)<<24)|((x)<<28)) @@ -379,28 +358,67 @@ upx_bzero(char *p, size_t len) #define nullptr (void *)0 -#if 0 //{ -unsigned long +#if defined(__x86_64) //}{ +#define addr_string(string) ({ \ + char const *str; \ + asm("call 0f; .asciz \"" string "\"; 0: pop %0" \ +/*out*/ : "=r"(str) ); \ + str; \ +}) +#elif defined(__aarch64__) //}{ +#define addr_string(string) ({ \ + char const *str; \ + asm("bl 0f; .string \"" string "\"; .balign 4; 0: mov %0,x30" \ +/*out*/ : "=r"(str) \ +/* in*/ : \ +/*und*/ : "x30"); \ + str; \ +}) +#else //}{ + error; +#endif //} + +#undef PAGE_MASK +static unsigned long get_PAGE_MASK(void) { - int fd = open("/proc/self/auxv", O_RDONLY, 0); + int fd = openat(0, addr_string("/proc/self/auxv"), O_RDONLY, 0); + unsigned long rv = ~0xffful; // default to (PAGE_SIZE == 4KiB) Elf64_auxv_t data[40]; Elf64_auxv_t *end = &data[read(fd, data, sizeof(data)) / sizeof(data[0])]; close(fd); Elf64_auxv_t *ptr; for (ptr = &data[0]; ptr < end ; ++ptr) { if (AT_PAGESZ == ptr->a_type) { - return ~(-1+ ptr->a_un.a_val); + rv = ~(-1+ ptr->a_un.a_val); + break; } } - return 0xfff; + DPRINTF("get_PAGE_MASK= %%p\\n", rv); + return rv; } -#endif //} extern void *memcpy(void *dst, void const *src, size_t n); extern void *memset(void *dst, unsigned val, size_t n); +#ifndef __arm__ //{ +// Segregate large local array, to avoid code bloat due to large displacements. +static void +underlay(unsigned size, char *ptr, unsigned len) // len < PAGE_SIZE +{ + DPRINTF("underlay size=%%u ptr=%%p len=%%u\\n", size, ptr, len); + unsigned saved[4096/sizeof(unsigned)]; + memcpy(saved, ptr, len); + mmap(ptr, size, PROT_WRITE|PROT_READ, + MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + memcpy(ptr, saved, len); +} +#else //}{ +extern void +underlay(unsigned size, char *ptr, unsigned len); +#endif //} + typedef struct { - int argc, dummy; + long argc; char **argv; char **envp; } So_args; @@ -408,9 +426,9 @@ typedef struct { typedef struct { unsigned off_reloc; // distance back to &Elf64_Ehdr unsigned off_user_DT_INIT; - unsigned off_escape; + unsigned off_xct_off; // where un-compressed bytes end [unused?] unsigned off_info; // xct_off: {l_info; p_info; b_info; compressed data) -} So_init; +} So_info; /************************************************************************* // upx_so_main - called by our folded entry code @@ -418,25 +436,34 @@ typedef struct { void * upx_so_main( // returns &escape_hatch - f_expand *const f_exp, - So_init *so_init, + So_info *so_info, So_args *so_args ) { - char *const va_load = (char *)&so_init->off_reloc - - so_init->off_reloc; - size_t const sidelen = sizeof(*so_init) + so_init->off_reloc; + unsigned long const PAGE_MASK = get_PAGE_MASK(); + char *const va_load = (char *)&so_info->off_reloc - so_info->off_reloc; + unsigned const xct_off = so_info->off_xct_off; + Elf64_Addr pfx = xct_off; // might be zeroed later if (n_LOAD <= 2) + + char *const cpr_ptr = so_info->off_info + va_load; + unsigned const cpr_len = (char *)so_info - cpr_ptr; + typedef void (*Dt_init)(int argc, char *argv[], char *envp[]); + Dt_init const dt_init = (Dt_init)(void *)(so_info->off_user_DT_INIT + va_load); + DPRINTF("upx_so_main va_load=%%p cpr_ptr=%%p cpr_len=%%x xct_off=%%x\\n", + va_load, cpr_ptr, cpr_len, xct_off); + // DO NOT USE *so_info AFTER THIS!! It gets overwritten. // Copy compressed data before de-compression overwrites it. - // FIXME: mapping and copying below off_info not needed? - char *const sideaddr = mmap(nullptr, sidelen, PROT_WRITE|PROT_READ, + char *const sideaddr = mmap(nullptr, cpr_len, PROT_WRITE|PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - memcpy(sideaddr, va_load, sidelen); - so_init = (So_init *)(sideaddr - va_load + (char *)so_init); - struct b_info *binfo = (struct b_info *)(so_init->off_info - + sizeof(struct l_info) + sizeof(struct p_info) + sideaddr); - DPRINTF("upx_so_main f_exp=%%p so_init=%%p va_load=%%p sideaddr=%%p b_info=%%p\\n", - f_exp, so_init, va_load, sideaddr, binfo); + DPRINTF("sideaddr=%%p\\n", sideaddr); + memcpy(sideaddr, cpr_ptr, cpr_len); + + // Transition to copied data + struct b_info *binfo = (struct b_info *)(void *)(sideaddr + + sizeof(struct l_info) + sizeof(struct p_info)); + DPRINTF("upx_so_main va_load=%%p sideaddr=%%p b_info=%%p\\n", + va_load, sideaddr, binfo); // All the destination page frames exist or have been reserved, // but the access permissions may be wrong and the data may be compressed. @@ -445,66 +472,76 @@ upx_so_main( // returns &escape_hatch // If so, then mprotect() is not enough: SIGBUS will occur. Thus we // must mmap anonymous pages, except for first PT_LOAD with ELF headers. // So the general strategy (for each PT_LOAD) is: + // Save any contents on low end of destination page (the "prefix" pfx). // mmap(,, PROT_WRITE|PROT_READ, MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - // de-compress from remaining [sideaddr, +sidelen); + // Restore the prefix on the first destination page. + // De-compress from remaining [sideaddr, +sidelen). // mprotect(,, PF_TO_PROT(.p_flags)); - // Get the real Elf64_Ehdr and Elf64_Phdr + // Get the uncompressed Elf64_Ehdr and Elf64_Phdr + // The first b_info is aligned, so direct access to fields is OK. Extent x1 = {binfo->sz_unc, va_load}; // destination mprotect(va_load, binfo->sz_unc, PROT_WRITE|PROT_READ); Extent x0 = {binfo->sz_cpr + sizeof(*binfo), (char *)binfo}; // source - unpackExtent(&x0, &x1, f_exp); // de-compress Elf headers - binfo = (struct b_info *)(sizeof(*binfo) + binfo->sz_cpr + (char *)binfo); - DPRINTF("next binfo@%%p (%%p %%p)\\n", binfo, binfo->sz_unc, binfo->sz_cpr); + unpackExtent(&x0, &x1); // de-compress _Ehdr and _Phdrs; x0.buf is updated + // Count PT_LOAD; n_LOAD < 3 is special (PT_LOAD layout by binutils <= 2.29) unsigned n_phdr; Elf64_Phdr const *phdr; - - // Count PT_LOAD; adjust pfx when n_LOAD < 3 (old segment layout) - n_phdr = ((Elf64_Ehdr *)va_load)->e_phnum; - phdr = (Elf64_Phdr *)(1+ (Elf64_Ehdr *)va_load); + n_phdr = ((Elf64_Ehdr *)(void *)va_load)->e_phnum; + phdr = (Elf64_Phdr *)(1+ (Elf64_Ehdr *)(void *)va_load); unsigned n_LOAD = 0; for (; n_phdr > 0; --n_phdr, ++phdr) { n_LOAD += (PT_LOAD == phdr->p_type); } - n_phdr = ((Elf64_Ehdr *)va_load)->e_phnum; - phdr = (Elf64_Phdr *)(1+ (Elf64_Ehdr *)va_load); - Elf64_Addr pfx = 0; - if (n_LOAD < 3) { // Later, we write into *xct_off in first PT_LOAD. - pfx = so_init->off_info; - } - else { - mprotect(phdr->p_vaddr + va_load, phdr->p_memsz, PF_TO_PROT(phdr->p_flags)); + // binutils <= 2.29 has only 2 PT_LOAD: (r-x) and (rw-), + // and has xct_off in middle of first PT_LOAD. + // binutils >= 2.31 has xct-off at beginning of 2nd PT_LOAD. + if (n_LOAD <= 2) { + pfx = 0; } - // Process each read-only PT_LOAD, except the first (has ELF headers). + // Process each read-only PT_LOAD. // A read+write PT_LOAD might be relocated by rtld before de-compression, // so it cannot be compressed. - unsigned not_first = 0; + struct b_info al_bi; // for aligned data from binfo void *hatch = nullptr; + unsigned not_first = 0; + + n_phdr = ((Elf64_Ehdr *)(void *)va_load)->e_phnum; + phdr = (Elf64_Phdr *)(1+ (Elf64_Ehdr *)(void *)va_load); for (; n_phdr > 0; --n_phdr, ++phdr) if ( phdr->p_type == PT_LOAD && !(phdr->p_flags & PF_W) && (not_first++ || n_LOAD < 3) ) { - DPRINTF("phdr@%%p .p_vaddr=%%p .p_filesz=%%p .p_memsz=%%p n_LOAD=%%p pfx=%%p binfo=%%p\\n", - phdr, phdr->p_vaddr, phdr->p_filesz, phdr->p_memsz, n_LOAD, pfx, binfo); - x1.size = binfo->sz_unc; x1.buf = phdr->p_vaddr + va_load; - Elf64_Addr const pfx_up = PAGE_MASK & (pfx + ~PAGE_MASK); - DPRINTF("pfx_up=%%p mmap(%%p %%p)\\n", pfx_up, x1.buf + pfx_up, phdr->p_memsz - pfx_up); - mmap(x1.buf + pfx_up, phdr->p_memsz - pfx_up, PROT_WRITE|PROT_READ, - MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - x1.buf += pfx; - x0.size = binfo->sz_cpr + sizeof(*binfo); x0.buf = (char *)binfo; - unpackExtent(&x0, &x1, f_exp); // overwrites x0 and x1 - if (binfo->sz_unc < phdr->p_memsz) { // .bss - DPRINTF("bss (%%p +%%p)\\n", - phdr->p_vaddr + va_load + binfo->sz_unc, - phdr->p_memsz - binfo->sz_unc); - memset(phdr->p_vaddr + va_load + binfo->sz_unc, 0, - phdr->p_memsz - binfo->sz_unc); + DPRINTF("phdr@%%p .p_vaddr=%%p .p_filesz=%%p .p_memsz=%%p n_LOAD=%%p binfo=%%p\\n", + phdr, phdr->p_vaddr, phdr->p_filesz, phdr->p_memsz, n_LOAD, x0.buf); + + if (xct_off >= phdr->p_offset) { + pfx = xct_off - phdr->p_offset; } - pfx = 0; + x0.size = sizeof(struct b_info); + xread(&x0, (char *)&al_bi, x0.size); // aligned binfo + x0.buf -= sizeof(al_bi); // back up (the xread() was a peek) + DPRINTF("next1 pfx=%%x binfo@%%p (%%p %%p %%p)\\n", pfx, x0.buf, + al_bi.sz_unc, al_bi.sz_cpr, *(unsigned *)(void *)&al_bi.b_method); + + // Using .p_memsz implicitly handles .bss via MAP_ANONYMOUS. + x1.buf = phdr->p_vaddr + pfx + va_load; + x1.size = phdr->p_memsz - pfx; + pfx = (phdr->p_vaddr + pfx) & ~PAGE_MASK; + x1.buf -= pfx; + x1.size += pfx; + DPRINTF("mmap(%%p %%p) xct_off=%%x pfx=%%x\\n", x1.buf, x1.size, xct_off, pfx); + underlay(x1.size, x1.buf, pfx); + + x1.buf += pfx; + x1.size = al_bi.sz_unc; + x0.size = al_bi.sz_cpr + sizeof(struct b_info); + unpackExtent(&x0, &x1); // updates x0 and x1 + pfx = 0; // consider xct_off at most once + if (!hatch && phdr->p_flags & PF_X) { //#define PAGE_MASK ~0xFFFull #if defined(__x86_64) //{ @@ -515,15 +552,14 @@ upx_so_main( // returns &escape_hatch hatch = make_hatch_arm64(phdr, (Elf64_Addr)va_load, ~PAGE_MASK); #endif //} } - DPRINTF("mprotect(%%p %%p)\\n", phdr->p_vaddr + va_load, phdr->p_memsz); - mprotect(phdr->p_vaddr + va_load, phdr->p_memsz, PF_TO_PROT(phdr->p_flags)); - binfo = (struct b_info *)(sizeof(*binfo) + binfo->sz_cpr + (char *)binfo); - DPRINTF("next binfo@%%p (%%p %%p)\\n", binfo, binfo->sz_unc, binfo->sz_cpr); + DPRINTF("mprotect %%p (%%p %%p)\\n", phdr, phdr->p_vaddr + va_load, phdr->p_memsz); + // Exchange the bits with values 4 (PF_R, PROT_EXEC) and 1 (PF_X, PROT_READ) + // Use table lookup into a PIC-string that pre-computes the result. + mprotect(phdr->p_vaddr + va_load, phdr->p_memsz, + 7& addr_string("@\x04\x02\x06\x01\x05\x03\x07")[phdr->p_flags & (PF_R|PF_W|PF_X)]); } - typedef void (*Dt_init)(int argc, char *argv[], char *envp[]); - Dt_init dt_init = (Dt_init)(so_init->off_user_DT_INIT + va_load); - munmap(sideaddr, sidelen); + munmap(sideaddr, cpr_len); DPRINTF("calling user DT_INIT %%p\\n", dt_init); dt_init(so_args->argc, so_args->argv, so_args->envp); diff --git a/src/stub/src/arch/amd64/nrv2b_d.S b/src/stub/src/arch/amd64/nrv2b_d.S index cb73e4f1..0a2469ba 100644 --- a/src/stub/src/arch/amd64/nrv2b_d.S +++ b/src/stub/src/arch/amd64/nrv2b_d.S @@ -38,7 +38,7 @@ lit_n2b: incq %rsi; movb %dl,(%rdi) incq %rdi top_n2b: - movb (%rsi),%dl # speculate: literal, or bottom 8 bits of offset + movb (%rsi),%dl # prefetch: literal, or bottom 8 bits of offset jnextb1yp lit_n2b lea 1(lenq),off # [len= 0] off= 1 offmore_n2b: diff --git a/src/stub/src/arch/arm/v4a/lzma_d-arm.S b/src/stub/src/arch/arm/v4a/lzma_d-arm.S index ee9ef41d..d8c62bca 100644 --- a/src/stub/src/arch/arm/v4a/lzma_d-arm.S +++ b/src/stub/src/arch/arm/v4a/lzma_d-arm.S @@ -82,25 +82,24 @@ Literal= (RepLenCoder + kNumLenProbs) #define call bl /* subroutine call */ -#define symbol mi -#define mo mi +mi .req r0 + symbol .req r0 + mo .req r0 +p_in .req r1 +t1 .req r2 +t0 .req r3 -#define mi r0 -#define p_in r1 -#define t1 r2 -#define t0 r3 +bit .req r4 +i .req r5 +state .req r6 +Range .req r7 -#define bit r4 -#define i r5 -#define state r6 -#define Range r7 +inPtr .req r8 +outPtr .req r9 +prob .req r10 +p .req r11 -#define inPtr r8 -#define outPtr r9 -#define prob r10 -#define p r11 - -#define Code r12 +Code .req r12 #define nowPos bit /* temporary only */ #define distance bit @@ -511,4 +510,22 @@ rcGetBit: // Out: CC set on mo #undef starp mov pc,t1 + .unreq mi + .unreq symbol + .unreq mo + .unreq p_in + .unreq t1 + .unreq t0 + + .unreq bit + .unreq i + .unreq state + .unreq Range + + .unreq inPtr + .unreq outPtr + .unreq prob + .unreq p + + .unreq Code // vi:ts=8:et diff --git a/src/stub/src/arch/arm/v4a/lzma_d.S b/src/stub/src/arch/arm/v4a/lzma_d.S index 01c04519..b37ef5cb 100644 --- a/src/stub/src/arch/arm/v4a/lzma_d.S +++ b/src/stub/src/arch/arm/v4a/lzma_d.S @@ -34,10 +34,10 @@ section LZMA_ELF00 //decompress: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method) /* Arguments according to calling convention */ -#define src r0 -#define lsrc r1 -#define dst r2 -#define ldst r3 /* Out: actually a reference: &len_dst */ +src .req r0 +lsrc .req r1 +dst .req r2 +ldst .req r3 /* Out: actually a reference: &len_dst */ #define meth [sp,#0] /* as arg5 to f_exp: 32-bit unsigned */ // bkpt // debugging @@ -51,10 +51,10 @@ PUSH { fp,lr} #endif /*}*/ -#define a0 r0 -#define a1 r1 -#define a2 r2 -#define a3 r3 +a0 .req r0 +#define a1 r1 // bug: a1 .req r1 +#define a2 r2 // bug: a2 .req r2 +#define a3 r3 // bug: a3 .req r3 #define a4 [sp,#0*4] /* outp */ #define a5 [sp,#1*4] /* outSize */ #define a6 [sp,#2*4] /* &outSizeProcessed */ @@ -127,7 +127,7 @@ POP {fp,pc} // RETURN! not_lzma: - bkpt // we are lost + b not_lzma // bkpt we are lost 1: // fall through into lzma decoding subroutine diff --git a/src/stub/src/arch/arm/v4a/macros.S b/src/stub/src/arch/arm/v4a/macros.S index 2a66300f..54b043ba 100644 --- a/src/stub/src/arch/arm/v4a/macros.S +++ b/src/stub/src/arch/arm/v4a/macros.S @@ -31,26 +31,38 @@ .arm .macro section name - .section \name + .section \name,"ax" .endm +/* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ +#define PUSH stmdb sp!, +#define POP ldmia sp!, +.macro ADD2 dst,src; add \dst,\dst,\src; .endm +.macro ADD2S dst,src; adds \dst,\dst,\src; .endm +.macro ADC2 dst,src; adc \dst,\dst,\src; .endm +.macro ADC2S dst,src; adcs \dst,\dst,\src; .endm +.macro SUB2 dst,src; sub \dst,\dst,\src; .endm +.macro SUB2S dst,src; subs \dst,\dst,\src; .endm +.macro LDRB3 reg,psrc,incr; ldrb \reg,\psrc,\incr; .endm +.macro STRB3 reg,pdst,incr; strb \reg,\pdst,\incr; .endm + /* The order of #if-#elif matters: ARMEL_EABI4 takes precedence over ARM_OLDABI */ #if defined(ARMEL_DARWIN) /*{*/ __NR_SYSCALL_BASE = 0 -.macro do_sys N +.macro do_sys N // clobbers 'ip' register (r12) mov ip,#\N swi 0x80 // sets Carry iff error orrcs r0,r0,#(1<<31) // force negative on error; FIXME: needed? ret .endm -.macro do_sys7t N - do_sys \N +.macro do_sys7t N // misnamed! + do_sys \N // clobbers ip (r12) .endm #elif defined(ARMEL_EABI4) /*}{*/ __NR_SYSCALL_BASE = 0 -.macro do_sys7t N +.macro do_sys7t N // "7t": clobbers r7 as a temporary mov r7,#\N // syscall number swi 0 .endm @@ -59,12 +71,12 @@ __NR_SYSCALL_BASE = 0 do_sys7t \N mov r7,r12 // restore r7 from ip .endm -.macro do_sys7t2 N +.macro do_sys7t2 N // "7t2": two-byte N; clobbers r7 as a temporary mov r7, #(\N) & 0xff // syscall number orr r7,r7,#(\N) &~0xff // high bits swi 0 .endm -.macro do_sys2 N +.macro do_sys2 N // two-byte N; clobbers 'ip' (r12), saves r7 mov r12,r7 // save r7 in ip do_sys7t2 \N mov r7,r12 // restore r7 from ip diff --git a/src/stub/src/arch/arm/v4a/nrv2b_d8.S b/src/stub/src/arch/arm/v4a/nrv2b_d8.S index 0bc55038..6d900ced 100644 --- a/src/stub/src/arch/arm/v4a/nrv2b_d8.S +++ b/src/stub/src/arch/arm/v4a/nrv2b_d8.S @@ -29,12 +29,12 @@ */ -#define src r0 -#define len r1 -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 +src .req r0 +len .req r1 +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 /* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ #define PUSH stmdb sp!, @@ -133,7 +133,12 @@ copy_n2b: // copy 1+len bytes b top_n2b // exit with -1==len .size ucl_nrv2b_decompress_8, .-ucl_nrv2b_decompress_8 +.unreq src +.unreq len +.unreq dst +.unreq tmp +.unreq bits +.unreq off /* vi:ts=8:et:nowrap */ - diff --git a/src/stub/src/arch/arm/v4a/nrv2d_d8.S b/src/stub/src/arch/arm/v4a/nrv2d_d8.S index 2c2ccf80..a64d71ed 100644 --- a/src/stub/src/arch/arm/v4a/nrv2d_d8.S +++ b/src/stub/src/arch/arm/v4a/nrv2d_d8.S @@ -30,19 +30,19 @@ */ #define SAFE 0 /* 1 for src+dst bounds checking: cost 76 bytes */ -#define src r0 -#define len r1 /* overlaps 'cnt' */ -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 +src .req r0 +len .req r1 /* overlaps 'cnt' */ +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 /* r6 UNUSED in ARM code unless DEBUG mode */ -#define srclim r7 +srclim .req r7 #if 1==SAFE /*{*/ -#define dstlim r12 +#define dstlim r12 /* bug: .req r12 */ #endif /*}*/ -#define cnt r1 /* overlaps 'len' while reading an offset */ +cnt .req r1 /* overlaps 'len' while reading an offset */ /* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ #define PUSH stmdb sp!, @@ -99,7 +99,6 @@ ucl_nrv2d_decompress_8: .globl ucl_nrv2d_decompress_8 // ARM mode #if 1==SAFE /*{*/ bad_dst_n2d: # return value will be 2 -bkpt add src,srclim,#1 bad_src_n2d: # return value will be 1 ADD2(src,#1) @@ -190,7 +189,15 @@ copy_n2d: .size ucl_nrv2d_decompress_8, .-ucl_nrv2d_decompress_8 + .unreq src + .unreq len + .unreq dst + .unreq tmp + .unreq bits + .unreq off + .unreq srclim +// .unreq dstlim + .unreq cnt /* vi:ts=8:et:nowrap */ - diff --git a/src/stub/src/arch/arm/v4a/nrv2e_d8.S b/src/stub/src/arch/arm/v4a/nrv2e_d8.S index 0d734921..23f7fbd2 100644 --- a/src/stub/src/arch/arm/v4a/nrv2e_d8.S +++ b/src/stub/src/arch/arm/v4a/nrv2e_d8.S @@ -30,19 +30,19 @@ */ #define SAFE 0 /* 1 for src+dst bounds checking: cost 76 bytes */ -#define src r0 -#define len r1 /* overlaps 'cnt' */ -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 +src .req r0 +len .req r1 /* overlaps 'cnt' */ +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 /* r6 UNUSED in ARM code unless DEBUG mode */ -#define srclim r7 +srclim .req r7 #if 1==SAFE /*{*/ -#define dstlim r12 +#define dstlim r12 /* bug: .req r12 */ #endif /*}*/ -#define cnt r1 /* overlaps 'len' while reading an offset */ +cnt .req r1 /* overlaps 'len' while reading an offset */ /* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ #define PUSH stmdb sp!, @@ -99,7 +99,6 @@ ucl_nrv2e_decompress_8: .globl ucl_nrv2e_decompress_8 // ARM mode #if 1==SAFE /*{*/ bad_dst_n2e: # return value will be 2 -bkpt add src,srclim,#1 bad_src_n2e: # return value will be 1 ADD2(src,#1) @@ -196,7 +195,15 @@ copy_n2e: .size ucl_nrv2e_decompress_8, .-ucl_nrv2e_decompress_8 + .unreq src + .unreq len + .unreq dst + .unreq tmp + .unreq bits + .unreq off + .unreq srclim +// .unreq dstlim + .unreq cnt /* vi:ts=8:et:nowrap */ - diff --git a/src/stub/src/arch/arm/v4t/nrv2b_d32.S b/src/stub/src/arch/arm/v4t/nrv2b_d32.S index 90dcbaa3..e52caec2 100644 --- a/src/stub/src/arch/arm/v4t/nrv2b_d32.S +++ b/src/stub/src/arch/arm/v4t/nrv2b_d32.S @@ -29,14 +29,6 @@ */ -#define src r0 -#define len r1 -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 -#define g1b r6 -#define wrnk r7 /* 0xd00 M2_MAX_OFFSET before "wrinkle" */ /* r12 ("ip") is assumed to be a scratch register. */ @@ -50,6 +42,14 @@ ucl_nrv2b_decompress_32: .globl ucl_nrv2b_decompress_32 @ ARM mode .type ucl_nrv2b_decompress_32, %function /* error = (*)(char const *src, int len_src, char *dst, int *plen_dst) */ +src .req r0 +len .req r1 +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 +g1b .req r6 +wrnk .req r7 /* 0xd00 M2_MAX_OFFSET before "wrinkle" */ adr r12,1+.thumb_nrv2b_d32 @ load pc-relative address bx r12 @ enter THUMB mode .code 16 @ THUMB mode @@ -126,6 +126,14 @@ get1b: @ Out: Carry= next_bit bx lr .code 16 @ THUMB mode + .unreq src + .unreq len + .unreq dst + .unreq tmp + .unreq bits + .unreq off + .unreq g1b + .unreq wrnk #ifndef PURE_THUMB .size ucl_nrv2b_decompress_32, .-ucl_nrv2b_decompress_32 #endif diff --git a/src/stub/src/arch/arm/v4t/nrv2b_d8.S b/src/stub/src/arch/arm/v4t/nrv2b_d8.S index 382525c5..ecba729b 100644 --- a/src/stub/src/arch/arm/v4t/nrv2b_d8.S +++ b/src/stub/src/arch/arm/v4t/nrv2b_d8.S @@ -29,14 +29,14 @@ */ -#define src r0 -#define len r1 -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 +src .req r0 +len .req r1 +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 /* r6 UNUSED */ -#define wrnk r7 /* 0xd00 M2_MAX_OFFSET before "wrinkle" */ +wrnk .req r7 /* 0xd00 M2_MAX_OFFSET before "wrinkle" */ /* r12 ("ip") is assumed to be a scratch register. */ @@ -123,6 +123,14 @@ copy_n2b: .size ucl_nrv2b_decompress_8, .-ucl_nrv2b_decompress_8 #endif + .unreq src + .unreq len + .unreq dst + .unreq tmp + .unreq bits + .unreq off + .unreq wrnk + /* vi:ts=8:et:nowrap */ diff --git a/src/stub/src/arch/arm/v4t/nrv2e_d32.S b/src/stub/src/arch/arm/v4t/nrv2e_d32.S index 4468d714..ebc38e37 100644 --- a/src/stub/src/arch/arm/v4t/nrv2e_d32.S +++ b/src/stub/src/arch/arm/v4t/nrv2e_d32.S @@ -29,16 +29,16 @@ */ -#define src r0 -#define len r1 /* overlaps 'cnt' */ -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 -#define g32 r6 -#define wrnk r7 /* 0x500 M2_MAX_OFFSET before "wrinkle" */ +src .req r0 +len .req r1 /* overlaps 'cnt' */ +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 +g32 .req r6 +wrnk .req r7 /* 0x500 M2_MAX_OFFSET before "wrinkle" */ -#define cnt r1 /* overlaps 'len' while reading an offset */ +cnt .req r1 /* overlaps 'len' while reading an offset */ #define GETBIT \ add bits,bits; beq 1f; 0: \ @@ -139,6 +139,16 @@ get32: @ In: Carry set (unchanged until final adcs) .size ucl_nrv2e_decompress_32, .-ucl_nrv2e_decompress_32 #endif + .unreq src + .unreq len + .unreq dst + .unreq tmp + .unreq bits + .unreq off + .unreq g32 + .unreq wrnk + .unreq cnt + /* vi:ts=8:et:nowrap */ diff --git a/src/stub/src/arch/arm/v4t/nrv2e_d8.S b/src/stub/src/arch/arm/v4t/nrv2e_d8.S index d65ac813..80a434b7 100644 --- a/src/stub/src/arch/arm/v4t/nrv2e_d8.S +++ b/src/stub/src/arch/arm/v4t/nrv2e_d8.S @@ -30,19 +30,19 @@ */ #define SAFE 0 /* 1 for src+dst bounds checking: cost 40 bytes */ -#define src r0 -#define len r1 /* overlaps 'cnt' */ -#define dst r2 -#define tmp r3 -#define bits r4 -#define off r5 -#define wrnk r6 /* 0x500 M2_MAX_OFFSET before "wrinkle" */ -#define srclim r7 +src .req r0 +len .req r1 /* overlaps 'cnt' */ +dst .req r2 +tmp .req r3 +bits .req r4 +off .req r5 +wrnk .req r6 /* 0x500 M2_MAX_OFFSET before "wrinkle" */ +srclim .req r7 #if 1==SAFE /*{*/ -#define dstlim r12 +dstlim .req r12 #endif /*}*/ -#define cnt r1 /* overlaps 'len' while reading an offset */ +cnt .req r1 /* overlaps 'len' while reading an offset */ #if 1==SAFE /*{*/ #define CHECK_SRC cmp src,srclim; bhs bad_src_n2e @@ -181,6 +181,15 @@ copy_n2e: .size ucl_nrv2e_decompress_8, .-ucl_nrv2e_decompress_8 #endif + .unreq src + .unreq len + .unreq dst + .unreq tmp + .unreq bits + .unreq off + .unreq wrnk + .unreq srclim + /* vi:ts=8:et:nowrap */ diff --git a/src/stub/src/arch/arm/v5a/macros.S b/src/stub/src/arch/arm/v5a/macros.S index b8c01639..0d2c9ea1 100644 --- a/src/stub/src/arch/arm/v5a/macros.S +++ b/src/stub/src/arch/arm/v5a/macros.S @@ -31,19 +31,31 @@ .arm .macro section name - .section \name + .section \name,"ax" .endm +/* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ +#define PUSH stmdb sp!, +#define POP ldmia sp!, +.macro ADD2 dst,src; add \dst,\dst,\src; .endm +.macro ADD2S dst,src; adds \dst,\dst,\src; .endm +.macro ADC2 dst,src; adc \dst,\dst,\src; .endm +.macro ADC2S dst,src; adcs \dst,\dst,\src; .endm +.macro SUB2 dst,src; sub \dst,\dst,\src; .endm +.macro SUB2S dst,src; subs \dst,\dst,\src; .endm +.macro LDRB3 reg,psrc,incr; ldrb \reg,\psrc,\incr; .endm +.macro STRB3 reg,pdst,incr; strb \reg,\pdst,\incr; .endm + /* The order of #if-#elif matters: ARMEL_EABI4 takes precedence over ARM_OLDABI */ #if defined(ARMEL_DARWIN) /*{*/ __NR_SYSCALL_BASE = 0 -.macro do_sys N +.macro do_sys N // clobbers 'ip' register (r12) mov ip,#\N swi 0x80 // sets Carry iff error orrcs r0,r0,#(1<<31) // force negative on error; FIXME: needed? ret .endm -.macro do_sys7t N +.macro do_sys7t N // "7t": clobbers r7 as a temporary do_sys \N .endm diff --git a/src/stub/src/arch/arm64/v8/bxx.S b/src/stub/src/arch/arm64/v8/bxx.S new file mode 100644 index 00000000..e80a1feb --- /dev/null +++ b/src/stub/src/arch/arm64/v8/bxx.S @@ -0,0 +1,70 @@ + +// /************************************************************************* +// inline f_unfilter (dst, len, cto8, fid) FALL_THROUGH return +// **************************************************************************/ + +f_unfilter: // (char *ptr, uint len, uint cto, uint fid) + ptr .req x0 + len .req w1 + cto .req w2 // unused + fid .req w3 + + t1 .req w2 + t2 .req w3 + +#ifndef FILTER_ID /*{*/ +#define FILTER_ID 0x52 /* little-endian */ +#endif /*}*/ + and fid,fid,#0xff + cmp fid,#FILTER_ID // last use of fid + bne unf_done // no-op if not filter 0x52 + + lsr len,len,#2 // word count + cbz ptr,unf_done + cbz len,unf_done + +unf_top: + sub len,len,#1 + lsl t2,len,#2 + ldr t1,[ptr,t2,uxtw] // the 32-bit instruction + +// ubfx dst,src,#pos,#wid // Unsigned BitField Extract + + ubfx t2,t1,#26,#5; cmp t2,#5; bne not_w26 // B, BL +is_w26: + sub t2,t1,len // pos is #0 ==> ubfx for the field is not needed + bfi t1,t2,#0,#26 // re-combine +#if 0 //{ new enhanced needs new filter type! + b unf_str +not_w26: + ubfx t2,t1,#24,#8; cmp t2,#0x54; beq is_w19 // B.cond + ubfx t2,t1,#25,#6; cmp t2,#0x1a; beq is_w19 // CB{z,nz} + cmp t2,#0x1b; bne unf_tst // TB.cond +is_w14: + ubfx t2,t1,#5,#14 // the field + sub t2,t2,len + bfi t1,t2,#5,#14 // re-combine + b unf_str +is_w19: + ubfx t2,t1,#5,#19 // the field + sub t2,t2,len + bfi t1,t2,#5,#19 // re-combine +#endif //} +unf_str: + lsl t2,len,#2 + str t1,[ptr,t2,uxtw] +#if 1 //{ until new filter type +not_w26: +#endif //} +unf_tst: + cmp len,#0 + bne unf_top +unf_done: + + .unreq ptr + .unreq len + .unreq cto + .unreq fid + + .unreq t1 + .unreq t2 diff --git a/src/stub/src/arch/arm64/v8/lzma_d-arm.S b/src/stub/src/arch/arm64/v8/lzma_d-arm.S index 0bd264c0..ae292bf1 100644 --- a/src/stub/src/arch/arm64/v8/lzma_d-arm.S +++ b/src/stub/src/arch/arm64/v8/lzma_d-arm.S @@ -79,41 +79,40 @@ Literal= (RepLenCoder + kNumLenProbs) #define call bl /* subroutine call */ -#define symbol mi -#define mo mi +mi .req w0 + symbol .req w0 + mo .req w0 +p_in .req x1 +t1 .req w2 +t1x .req x2 +t0 .req w3 +t0x .req x3 -#define mi w0 -#define p_in x1 -#define t1 w2 -#define t1x x2 -#define t0 w3 -#define t0x x3 +bitw .req w4 +bitx .req x4 +i .req w5 +ix .req x5 +state .req w6 +Range .req w7 -#define bit w4 -#define bitx x4 -#define i w5 -#define ix x5 -#define state w6 -#define Range w7 +inPtr .req x8 +outPtr .req x9 +prob .req x10 +p .req x11 -#define inPtr x8 -#define outPtr x9 -#define prob x10 -#define p x11 +Code .req w12 +inLim .req x13 +outLim .req x14 -#define Code w12 -#define inLim x13 -#define outLim x14 +rep0 .req w15 -#define rep0 w15 +t2x .req x17 -#define t2x x17 - -#define nowPos bit /* temporary only */ +#define nowPos bitw /* temporary only */ #define nowPosx bitx /* temporary only */ -#define distance bit -#define numDirectBits bit -#define hibit bit +#define distance bitw +#define numDirectBits bitw +#define hibit bitw #define matchB i #define probLen ix #define probLit ix @@ -252,12 +251,13 @@ L205: L210: // symbol === mi === mo lsl matchB,matchB,#1 add p_in,prob,#0x100<<1 - and bit,matchB,#0x100 - uxtw t0x,bit + and bitw,matchB,#0x100 + uxtw t0x,bitw add p_in,p_in,t0x,lsl #1 call rcGetBit_mi and t0,symbol,#1 - cmp t0,bit,lsr #8; bne L243 // break + lsr t1,bitw,#8 + cmp t0,t1; bne L243 // break cmp symbol,#0x100; blo L210 b L245 L240: // symbol === mi === mo @@ -520,9 +520,33 @@ rcGB1: // Code >= bound #undef y0tmp #undef bound #undef starp -#undef t1x -#undef t1 -#undef t0x -#undef t0 + .unreq mi + .unreq symbol + .unreq mo + .unreq p_in + .unreq t1 + .unreq t1x + .unreq t0 + .unreq t0x + + .unreq bitw + .unreq bitx + .unreq i + .unreq ix + .unreq state + .unreq Range + + .unreq inPtr + .unreq outPtr + .unreq prob + .unreq p + + .unreq Code + .unreq inLim + .unreq outLim + + .unreq rep0 + + .unreq t2x // vi:ts=8:et diff --git a/src/stub/src/arch/arm64/v8/lzma_d.S b/src/stub/src/arch/arm64/v8/lzma_d.S index 747b6eff..0ab0d834 100644 --- a/src/stub/src/arch/arm64/v8/lzma_d.S +++ b/src/stub/src/arch/arm64/v8/lzma_d.S @@ -30,6 +30,8 @@ */ #include "macros.S" +lr .req x30 +fp .req x29 #define section .section NBPW= 8 @@ -37,20 +39,19 @@ NBPW= 8 section LZMA_ELF00 //decompress: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method) /* Arguments according to calling convention */ -src .req x0 -#define lsrc w1 -dst .req x2 -#define ldst x3 /* Out: actually a reference: &len_dst */ -#define meth w4 +src .req x0 +lsrc .req w1 +dst .req x2 +ldst .req x3 /* Out: actually a reference: &len_dst */ +meth .req w4 #define M_LZMA 14 cmp meth,#M_LZMA; bne not_lzma -#define t0 w7 -#define t1 w8 -#define t1x x8 +t0 .req w7 +t1 .req w8 +t1x .req x8 -fp .req x29 PUSH4(x2,x3, fp,lr) // dst,ldst, fp,lr mov fp,sp @@ -72,13 +73,13 @@ fp .req x29 cmp x4,t1x blo 1b -#define a0 x0 /* &CLzmaDecoderState */ -#define a1 x1 /* inp */ -#define a2 w2 /* inSize */ -#define a3 x3 /* &inSizeProcessed */ -#define a4 x4 /* outp */ -#define a5 w5 /* outSize */ -#define a6 x6 /* &outSizeProcessed */ +a0 .req x0 /* &CLzmaDecoderState */ +a1 .req x1 /* inp */ +a2 .req w2 /* inSize */ +a3 .req x3 /* &inSizeProcessed */ +a4 .req x4 /* outp */ +a5 .req w5 /* outSize */ +a6 .req x6 /* &outSizeProcessed */ //The target is: //LzmaDecode( // from lzmaSDK/C/7zip/Compress/LZMA_C/LzmaDecode.h // a0= &CLzmaDecoderState, @@ -114,7 +115,7 @@ eof_lzma: add x1,x1,x0 // last cache_lzma: - clear_cache // x0= lo; x1= hi; uses x2-x4 + sync_cache // x0= lo; x1= hi; uses x2-x4 mov x0,x5 // result value ret @@ -127,15 +128,22 @@ cache_lzma: #undef ldst #undef meth -#undef a0 -#undef a1 -#undef a2 -#undef a3 -#undef a4 -#undef a5 -#undef a6 - ClangLzmaDecode: // entry to C-lang LzmaDecode in next section + .unreq src + .unreq lsrc + .unreq dst + .unreq ldst + .unreq meth + .unreq t0 + .unreq t1 + .unreq t1x + .unreq a0 + .unreq a1 + .unreq a2 + .unreq a3 + .unreq a4 + .unreq a5 + .unreq a6 section LZMA_DEC20 #include "lzma_d_cf.S" diff --git a/src/stub/src/arch/arm64/v8/macros.S b/src/stub/src/arch/arm64/v8/macros.S index 08eecaca..891b0dcf 100644 --- a/src/stub/src/arch/arm64/v8/macros.S +++ b/src/stub/src/arch/arm64/v8/macros.S @@ -29,9 +29,10 @@ #ifndef __MACROS_S__ // { #define __MACROS_S__ 1 - .altmacro lr .req x30 fp .req x29 +NBPW= 8 + .altmacro // ARM64 (AARCH64) REQUIRES 16-BYTE ALIGNED STACK POINTER (SP) // Therefore PUSH of an odd number of registers, inserts an 8-byte hole. @@ -61,11 +62,11 @@ fp .req x29 // orrcs r0,r0,#(1<<31) // force negative on error; FIXME: needed? .endm -.macro clear_cache // In: x0= lo; x1= hi; uses x2,x3,x4 +.macro sync_cache // In: x0= lo; x1= hi; uses x2,x3,x4 mrs x3, ctr_el0 tbnz w3, #28, 1f // not needed - ubfx x2, x3, #16, #4 - mov x4, -4 // word mask (why not 8?) + ubfx x2, x3, #16, #4 // -2+ log2(dline_size) + mov x4, #-4 // mask starts at 2**2 lsl x4, x4, x2 // Dline_mask and x2, x0, x4 // round down cmp x2, x1 @@ -76,11 +77,11 @@ fp .req x29 cmp x1, x2 bhi 0b 1: - dsb ish + dsb ish // Data Sync Barrier, Inner SHarable Read+write tbnz w3, #29, 3f // not needed - and x3, x3, #0xf - mov x2, -4 // word mask (why not 8?) + and x3, x3, #0xf // -2+ log2(iline_size) + mov x2, #-4 // mask starts at 2**2 lsl x2, x2, x3 // Iline_mask and x0, x0, x2 // round down cmp x1, x0 @@ -92,7 +93,7 @@ fp .req x29 bhi 2b 3: dsb ish - isb + isb // Instruction Sync Barrier .endm #endif //} diff --git a/src/stub/src/arch/arm64/v8/nrv2b_d32.S b/src/stub/src/arch/arm64/v8/nrv2b_d32.S index 008b4002..42a7167c 100644 --- a/src/stub/src/arch/arm64/v8/nrv2b_d32.S +++ b/src/stub/src/arch/arm64/v8/nrv2b_d32.S @@ -31,16 +31,6 @@ #include "macros.S" -#define lr x30 -#define ip0 x16 - -#define src x0 -#define len w1 -#define dst x2 -#define dstw w2 -#define tmp w3 -#define bits w4 -#define off w5 /* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ #define ADD2( dst,src) add dst,dst,src @@ -61,6 +51,19 @@ #define jnextb1 GETBIT; bcs ucl_nrv2b_decompress_32: .globl ucl_nrv2b_decompress_32 // ARM mode +lr .req x30 +ip0 .req x16 + +src .req x0 +len .req w1 +dst .req x2 +dstw .req w2 +tmp .req w3 +bits .req w4 +off .req w5 +#ifndef NO_METHOD_CHECK + cmp methb,#M_NRV2B_LE32; bne not_n2b +#endif .type ucl_nrv2b_decompress_32, %function /* error = (*)(char const *src, uint32_t len_src, char *dst, uint32_t *plen_dst) */ add x1,src,len,uxtw // x1= eof_src; @@ -79,7 +82,9 @@ eof_n2b: mov x0,x3 // orig_dst add x1,x3,dst // orig_dst + dst_len cache_n2b: - clear_cache // x0= lo; x1= hi; uses x2-x4 +#ifndef NO_SYNC_CACHE + sync_cache // x0= lo; x1= hi; uses x2-x4 +#endif mov x0,x5 // result value ret @@ -125,6 +130,20 @@ copy_n2b: // copy 1+len bytes STRB3(tmp,[dst],#1); bhs copy_n2b b top_n2b // exit with -1==len +#ifndef NO_METHOD_CHECK +not_n2b: + # fall into 'eof' +#endif + .unreq lr + .unreq ip0 + + .unreq src + .unreq len + .unreq dst + .unreq dstw + .unreq tmp + .unreq bits + .unreq off .size ucl_nrv2b_decompress_32, .-ucl_nrv2b_decompress_32 /* vi:ts=8:et:nowrap diff --git a/src/stub/src/arch/arm64/v8/nrv2d_d32.S b/src/stub/src/arch/arm64/v8/nrv2d_d32.S index a5328803..8292880f 100644 --- a/src/stub/src/arch/arm64/v8/nrv2d_d32.S +++ b/src/stub/src/arch/arm64/v8/nrv2d_d32.S @@ -32,20 +32,19 @@ #define SAFE 0 /* 1 for src+dst bounds checking: cost 76 bytes */ -#define lr x30 +lr .req x30 -#define src x0 -#define len w1 /* overlaps 'cnt' */ -#define dst x2 -#define dstw w2 -#define tmp w3 -#define tmpx x3 -#define bits w4 -#define off w5 +src .req x0 +len .req w1 /* overlaps 'cnt' */ +dst .req x2 +dstw .req w2 +tmp .req w3 +bits .req w4 +off .req w5 /* r6 UNUSED in ARM code unless DEBUG mode */ -#define srclim x7 +srclim .req x7 #if 1==SAFE /*{*/ -#define dstlim x12 /* FIXME */ +dstlim .req x12 /* FIXME */ #endif /*}*/ #define cnt w1 /* overlaps 'len' while reading an offset */ @@ -87,6 +86,9 @@ ucl_nrv2d_decompress_32: .globl ucl_nrv2d_decompress_32 // ARM mode .type ucl_nrv2d_decompress_32, %function +#ifndef NO_METHOD_CHECK + cmp methb,#M_NRV2D_LE32; bne not_n2d +#endif /* error = (*)(char const *src, int len_src, char *dst, int *plen_dst) Actual decompressed length is stored through plen_dst. For SAFE mode: at call, *plen_dst must be allowed length of output buffer. @@ -119,7 +121,9 @@ eof_n2d: mov x0,x3 // orig_dst add x1,x3,dst // orig_dst + dst_len cache_n2d: - clear_cache // x0= lo; x1= hi; uses x2-x4 +#ifndef NO_SYNC_CACHE + sync_cache // x0= lo; x1= hi; uses x2-x4 +#endif mov x0,x5 // result value POP1(lr) @@ -185,7 +189,23 @@ copy_n2d: SUB2S(len,#1); bne copy_n2d b top_n2d +#ifndef NO_METHOD_CHECK +not_n2d: + # fall into 'eof' +#endif .size ucl_nrv2d_decompress_32, .-ucl_nrv2d_decompress_32 + .unreq lr + .unreq src + .unreq len + .unreq dst + .unreq dstw + .unreq tmp + .unreq bits + .unreq off + .unreq srclim +#if 1==SAFE //{ + .unreq dstlim +#endif //} /* vi:ts=8:et:nowrap diff --git a/src/stub/src/arch/arm64/v8/nrv2e_d32.S b/src/stub/src/arch/arm64/v8/nrv2e_d32.S index bc4bd0e1..27eefae7 100644 --- a/src/stub/src/arch/arm64/v8/nrv2e_d32.S +++ b/src/stub/src/arch/arm64/v8/nrv2e_d32.S @@ -32,20 +32,20 @@ #define SAFE 0 /* 1 for src+dst bounds checking: cost 76 bytes */ -#define lr x30 +lr .req x30 -#define src x0 -#define len w1 /* overlaps 'cnt' */ -#define dst x2 -#define dstw w2 -#define tmp w3 -#define tmpx x3 -#define bits w4 -#define off w5 +src .req x0 +len .req w1 /* overlaps 'cnt' */ +dst .req x2 +dstw .req w2 +#define tmpw w3 /*bug: .req w3 */ +#define tmpx x3 /*bug: .req x3 */ +bits .req w4 +off .req w5 /* r6 UNUSED in ARM code unless DEBUG mode */ -#define srclim x7 +srclim .req x7 #if 1==SAFE /*{*/ -#define dstlim x12 +dstlim .req x12 #endif /*}*/ #define cnt w1 /* overlaps 'len' while reading an offset */ @@ -71,7 +71,7 @@ #if 0 /*{ DEBUG only: check newly-decompressed against original dst */ #define CHECK_BYTE \ ldrb w6,[dst]; \ - cmp w6,tmp; beq 0f; brk #0; 0: + cmp w6,tmpw; beq 0f; brk #0; 0: #else /*}{*/ #define CHECK_BYTE /*empty*/ #endif /*}*/ @@ -86,6 +86,9 @@ ucl_nrv2e_decompress_32: .globl ucl_nrv2e_decompress_32 // ARM mode .type ucl_nrv2e_decompress_32, %function +#ifndef NO_METHOD_CHECK + cmp methb,#M_NRV2E_LE32; bne not_n2e +#endif /* error = (*)(char const *src, uint32_t len_src, char *dst, uint32_t *plen_dst) Actual decompressed length is stored through plen_dst. For SAFE mode: at call, *plen_dst must be allowed length of output buffer. @@ -95,8 +98,8 @@ ucl_nrv2e_decompress_32: .globl ucl_nrv2e_decompress_32 // ARM mode #define sp_DST0 0 /* stack offset of original dst */ add srclim,src,len,uxtw // srclim= eof_src; #if 1==SAFE /*{*/ - ldr tmp,[r3] // len_dst - add dstlim,tmp,dst + ldr tmpw,[r3] // len_dst + add dstlim,tmpw,dst #endif /*}*/ mov off,#-1 // off= -1 initial condition mov bits,#1<<31 // refill next time @@ -118,7 +121,9 @@ eof_n2e: mov x0,x3 // orig_dst add x1,x3,dst // orig_dst + dst_len cache_n2e: - clear_cache // x0= lo; x1= hi; uses x2-x4 +#ifndef NO_SYNC_CACHE + sync_cache // x0= lo; x1= hi; uses x2-x4 +#endif mov x0,x5 // result value POP1(lr) @@ -132,9 +137,9 @@ get32_n2e: // In: Carry set [from adding 0x80000000 (1<<31) to itself] ret lit_n2e: - CHECK_SRC; LDRB3(tmp,[src],#1) + CHECK_SRC; LDRB3(tmpw,[src],#1) CHECK_BYTE - CHECK_DST; STRB3(tmp,[dst],#1) + CHECK_DST; STRB3(tmpw,[dst],#1) top_n2e: jnextb1 lit_n2e mov cnt,#1; b getoff_n2e @@ -146,11 +151,11 @@ getoff_n2e: getnextb(cnt) jnextb0 off_n2e - subs tmp,cnt,#3 // set Carry + subs tmpw,cnt,#3 // set Carry mov len,#0 // Carry unaffected blo offprev_n2e // cnt was 2; tests Carry only CHECK_SRC; LDRB3(off,[src],#1) // low 7+1 bits - orr off,off,tmp,lsl #8 + orr off,off,tmpw,lsl #8 mvn off,off; cbz off,eof_n2e // off= ~off tst off,#1; asr off,off,#1; bne lenlast_n2e b lenmore_n2e @@ -174,23 +179,40 @@ gotlen_n2e: // 'cmn': add the inputs, set condition codes, discard the sum cinc len,len,cc // too far away, so minimum match length is 3 near_n2e: #if 1==SAFE /*{*/ - ldr tmp,[sp,#sp_DST0] - SUB2( tmp,dst) - SUB2S(tmp,off); bhi bad_dst_n2e // reaching back too far + ldr tmpw,[sp,#sp_DST0] + SUB2( tmpw,dst) + SUB2S(tmpw,off); bhi bad_dst_n2e // reaching back too far - add tmp,dst,cnt - cmp tmp,dstlim; bhi bad_dst_n2e // too much output + add tmpw,dst,cnt + cmp tmpw,dstlim; bhi bad_dst_n2e // too much output #endif /*}*/ add tmpx,dst,len,uxtw - ldrb tmp,[tmpx,#-1] // force cacheline allocate + ldrb tmpw,[tmpx,#-1] // force cacheline allocate copy_n2e: - ldrb tmp,[dst,off,sxtw] + ldrb tmpw,[dst,off,sxtw] CHECK_BYTE - STRB3(tmp,[dst],#1) + STRB3(tmpw,[dst],#1) SUB2S(len,#1); bne copy_n2e b top_n2e +#ifndef NO_METHOD_CHECK +not_n2e: + # fall into 'eof' +#endif .size ucl_nrv2e_decompress_32, .-ucl_nrv2e_decompress_32 + .unreq lr + .unreq src + .unreq len + .unreq dst + .unreq dstw +#undef tmpw // .unreq tmpw +#undef tmpx // .unreq tmpx + .unreq bits + .unreq off + .unreq srclim +#if 1==SAFE //{ + .unreq dstlim +#endif //} /* vi:ts=8:et:nowrap diff --git a/src/stub/src/arch/i386/nrv2b_d32-easy.S b/src/stub/src/arch/i386/nrv2b_d32-easy.S index f9b49e22..f1492ca6 100644 --- a/src/stub/src/arch/i386/nrv2b_d32-easy.S +++ b/src/stub/src/arch/i386/nrv2b_d32-easy.S @@ -38,7 +38,7 @@ lit_n2b: incl %esi; movb %dl,(%edi) incl %edi top_n2b: - movb (%esi),%dl # speculate: literal, or bottom 8 bits of offset + movb (%esi),%dl # prefetch: literal, or bottom 8 bits of offset jnextb1yp lit_n2b push $1; pop off offmore_n2b: diff --git a/src/stub/src/arm.v4a-expand.S b/src/stub/src/arm.v4a-expand.S new file mode 100644 index 00000000..f6e6ea26 --- /dev/null +++ b/src/stub/src/arm.v4a-expand.S @@ -0,0 +1,191 @@ +/* +; arm.v4a-expand.S -- decompressors for arm.v4a +; +; This file is part of the UPX executable compressor. +; +; Copyright (C) 1996-2021 Markus Franz Xaver Johannes Oberhumer +; Copyright (C) 1996-2021 Laszlo Molnar +; Copyright (C) 2000-2021 John F. Reiser +; All Rights Reserved. +; +; UPX and the UCL library are free software; you can redistribute them +; and/or modify them 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; see the file COPYING. +; If not, write to the Free Software Foundation, Inc., +; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +; +; Markus F.X.J. Oberhumer Laszlo Molnar +; +; +; John F. Reiser +; +; +*/ + +NBPW= 4 +// .arch armv6 +// .syntax unified +#include "arch/arm/v4a/macros.S" + + .arm + +.macro push reg; str \reg,[sp,#-NBPW]!; .endm +.macro pop reg; ldr \reg,[sp],#NBPW; .endm +.macro call subr; bl \subr; .endm + + section EXP_HEAD + +sz_unc= 0 *NBPW +sz_cpr= 1 *NBPW +method= 2 *NBPW +sz_binfo= 3 *NBPW + +f_unfilter: @ on stack: (char *ptr, uint len, uint cto, uint fid) // not callable externally! + ptr .req r0 + len .req r1 + cto .req r2 @ unused + fid .req r3 + + t1 .req r2 + t2 .req r3 + +#ifndef FILTER_ID /*{*/ +#define FILTER_ID 0x50 /* little-endian */ +#endif /*}*/ + and fid,fid,#0xff + cmp fid,#FILTER_ID @ last use of fid + movne pc,lr @ no-op if not filter 0x50 + + movs len,len,lsr #2 @ word count + cmpne ptr,#0 + moveq pc,lr @ no-op if either len or ptr is 0 +top_unf: + sub len,len,#1 + ldr t1,[ptr,len,lsl #2] + and t2,t1,#0x0f<<24 + cmp t2, #0x0b<<24; bne tst_unf @ not 'bl' subroutine call + and t2,t1,#0xff<<24 @ all the non-displacement bits + sub t1,t1,len @ convert to word-relative displacement + bic t1,t1,#0xff<<24 @ restrict to displacement field + orr t1,t1,t2 @ re-combine + str t1,[ptr,len,lsl #2] +tst_unf: + cmp len,#0 + bne top_unf + ret + + .unreq ptr + .unreq len + .unreq cto + .unreq fid + + .unreq t1 + .unreq t2 + +get4: // un-aligned fetch (little endian) + mov r1,r0 + ldrb r0,[r1],#1 + ldrb r2,[r1],#1; orr r0,r0,r2,lsl #8 + ldrb r2,[r1],#1; orr r0,r0,r2,lsl #16 + ldrb r2,[r1],#1; orr r0,r0,r2,lsl #24 + ret + +// int f_expand(nrv_byte const *src, nrv_byte *dst, size_t *dstlen) +// Includes unfilter and cache flush. +// Returns 0 on success. +// *dstlen returns actual length +// *src includes 3-word b_info (sz_unc, sz_cpr, {method, filter, cto8, extra}) +// src might not be 4-byte aligned. +// C-callable, so must save+restore r4,r5,r6,r7 +// Calling sequence registers +#define xsrc r0 +#define xsrclen r1 +#define xdst r2 +#define xdstlen r3 + +#define arg1 r0 +#define arg2 r1 +#define arg3 r2 +#define arg4 r3 +#define arg5 r4 + +f_expand: .globl f_expand // start of code for actual de-compressor + stmdb sp!,{r0,r1,r2,r3,r4,r5,r6,r7,lr} // all registers + + ldrb arg5,[xsrc,#method] + mov r5,r0 // copy + ldr xdstlen,[sp,#2*NBPW] // arg4 + add r0,r5,#sz_cpr; call get4; mov xsrclen,r0 // arg2 + ldr xdst,[sp,#1*NBPW] // arg3 + add xsrc,r5,#sz_binfo // arg1 + call decompress + + ldr arg4,[sp] // src + ldrb arg3,[arg4,#2+ method] // cto8 + ldrb arg4,[arg4,#1+ method] // ftid + tst arg4,arg4; beq no_filt + ldr arg1,[sp,#1*NBPW] // dst + ldr arg2,[sp,#2*NBPW] // &dstlen + ldr arg2,[arg2] // dstlen + call f_unfilter +no_filt: + + ldr arg2,[sp,#2*NBPW] // &dstlen + ldr arg1,[sp,#1*NBPW] // dst + ldr arg2,[arg2] // dstlen + add arg2,arg2,arg1 // &dst[dstlen] + call __clear_cache + + mov r0,#0; str r0,[sp] // success return from f_expand FIXME + ldmia sp!,{r0,r1,r2,r3,r4,r5,r6,r7,pc} // end f_expand + +decompress: // sections NRV2B, etc, follow + + section EXP_TAIL + src .req r0 + dst .req r2 + tmp .req r3 + .type eof,function + .globl eof +eof: // end of a compressed extent + POP {tmp} // &input_eof + mov r0,src; SUB2 r0,tmp // src -= eof; // return 0: good; else: bad + POP {tmp} // original dst + POP {r1}; SUB2 dst,tmp // dst -= original dst + POP {tmp}; str dst,[tmp] // actual length used at dst XXX: 4GB + ret + + .unreq src + .unreq dst + .unreq tmp + +#define M_NRV2B_LE32 2 +#define M_NRV2B_8 3 +#define M_NRV2D_LE32 5 +#define M_NRV2D_8 6 +#define M_NRV2E_LE32 8 +#define M_NRV2E_8 9 +#define M_CL1B_LE32 11 +#define M_LZMA 14 + + section NRV2E +#include "arch/arm/v4a/nrv2e_d8.S" + + section NRV2D +#include "arch/arm/v4a/nrv2d_d8.S" + + section NRV2B +#include "arch/arm/v4a/nrv2b_d8.S" + +/* lzma has its own 'section's */ +#include "arch/arm/v4a/lzma_d.S" + diff --git a/src/stub/src/arm.v4a-linux.elf-entry.S b/src/stub/src/arm.v4a-linux.elf-entry.S index a1bac7cc..c4968feb 100644 --- a/src/stub/src/arm.v4a-linux.elf-entry.S +++ b/src/stub/src/arm.v4a-linux.elf-entry.S @@ -133,7 +133,7 @@ unfold: // in: r3= mflg; r6= elfaddr; lr= &O_BINFO mov r5,#0 @ offset mov r4,#-1 @ fd @r3= mflg @ MAP_PRIVATE|MAP_ANONYMOUS or MAP_PRIVANON - mov r2,#PROT_READ|PROT_WRITE + mov r2,#PROT_READ|PROT_WRITE|PROT_EXEC ldr r1,[r6,#sz_unc] mov r0,#0 @ kernel chooses addr str r1,[sp,#F_LENU] @ length to munmap diff --git a/src/stub/src/arm.v4a-linux.elf-fold.S b/src/stub/src/arm.v4a-linux.elf-fold.S index 42d9b005..06001d06 100644 --- a/src/stub/src/arm.v4a-linux.elf-fold.S +++ b/src/stub/src/arm.v4a-linux.elf-fold.S @@ -247,7 +247,7 @@ sweep: mov r7,#0 mov r12,#0 #endif /*}*/ - ldr pc,[r2,#4 -2*4] @ Elf32_auxv_t[AT_NULL@.a_type].a_val + mov pc,lr proc_self_exe: .ascii "/proc/self/exe" @ no terminator @@ -450,6 +450,7 @@ mmap_privanon: .globl mmap_privanon #if 1|DEBUG /*{*/ +__udivsi3: .globl __udivsi3 div10: .globl div10 mov ip,r0 @ extra copy used at end sub r1,r1,r1 @ hi diff --git a/src/stub/src/arm.v4a-linux.elf-fold.lds b/src/stub/src/arm.v4a-linux.elf-fold.lds index eafe2b1e..0ff156b9 100644 --- a/src/stub/src/arm.v4a-linux.elf-fold.lds +++ b/src/stub/src/arm.v4a-linux.elf-fold.lds @@ -28,7 +28,7 @@ */ -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /*ENTRY(_start)*/ PHDRS diff --git a/src/stub/src/arm.v4a-linux.elf-so_entry.S b/src/stub/src/arm.v4a-linux.elf-so_entry.S new file mode 100644 index 00000000..f9651328 --- /dev/null +++ b/src/stub/src/arm.v4a-linux.elf-so_entry.S @@ -0,0 +1,202 @@ +/* arm.v4a-linux.elf-so_entry.S -- Linux DT_INIT & decompressor (Elf shared lib) +* +* This file is part of the UPX executable compressor. +* +* Copyright (C) 1996-2021 Markus Franz Xaver Johannes Oberhumer +* Copyright (C) 1996-2021 Laszlo Molnar +* Copyright (C) 2000-2023 John F. Reiser +* All Rights Reserved. +* +* UPX and the UCL library are free software; you can redistribute them +* and/or modify them 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; see the file COPYING. +* If not, write to the Free Software Foundation, Inc., +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +* Markus F.X.J. Oberhumer Laszlo Molnar +* +* +* John F. Reiser +* +*/ + +NBPW= 4 +//#define ARM_OLDABI 1 +#define ARMEL_EABI4 1 +#include "arch/arm/v5a/macros.S" +#define DEBUG 0 + +#define bkpt .long 0xe7f001f0 /* reserved instr; Linux GNU eabi breakpoint */ +#define bkpt_th .short 0xde01 /* reserved instr; Linux GNU eabi breakpoint */ +// As of 2023-02-04, "gcc (Debian 10.2.1-6) 10.2.1 20210110" assembles 0xbe10 for: +// asm("bkpt #0x10"); +// and a RaspberryPi v2 (32-bit only) running Linux executes as an infinite loop +// with kernel message spewing: +// Unhandled prefetch abort: breakpoint debug exception (0x002) +// That's running with "uname -a" that says +// Linux 5.10.0-20-armmp #1 SMP Debian 5.10.158-2 (2022-12-13) armv7l GNU/Linux + +sz_Elf32_Ehdr = 13*NBPW +sz_Elf32_Phdr = 8*NBPW + +sz_b_info= 12 + sz_unc= 0 + sz_cpr= 4 + b_method= 8 +sz_l_info= 12 +sz_p_info= 12 + +PROT_READ= 1 +PROT_WRITE= 2 +PROT_EXEC= 4 + +MAP_PRIVATE= 2 +MAP_FIXED= 0x10 +MAP_ANONYMOUS= 0x20 + +PAGE_SHIFT= 12 +PAGE_MASK= (~0<>12) src for f_exp // FIXME: not true? +//SO_INFO: +// .long offset(.) // detect relocation +// .long offset(user DT_INIT) +// .long offset(xct_off) // lowest executable instr +// .long offset(dst for f_exp) + + //.arch armv7-a + //.syntax unified + .thumb + .thumb_func + .type _start,%function + .balign 4 +_start: .globl _start // in Thumb mode (via PackLinuxElf32::pack3) + bx pc; nop // but switch to ARM until debugged + .arm +#if 1|DEBUG //{ + nop // bkpt // for debugging +#else //}{ + nop +#endif //} + // argc,argv,envp, r3 convenience, r4-r7 callee-saved, lr ret_addr + stmfd sp!,{r0,r1,r2, r3, r4,r5,r6,r7, lr} + + sub sp,sp,#2*NBPW // space for ADRU, LENU +F_ADRU= 0 * NBPW +F_LENU= 1 * NBPW +F_ARGC= 2 * NBPW + + call4 L70 +L70_ret: +foldi .req lr // &fold_info + mov arg6,#0 // cleanliness + mvn arg5,#~-1 // fd= -1 + mov arg4,#MAP_PRIVATE|MAP_ANONYMOUS // modes + mov arg3,#PROT_READ|PROT_WRITE // prot + ldr arg2,[foldi, #sz_unc] // dstlen + str arg2,[sp, #F_LENU] + mov arg1,#0 // addr (kernel chooses) + PUSH {foldi} // defend against lr clobbered by syscall + do_sys7t __NR_mmap64; cmn r0,#4096; bcc 0f; bkpt; 0: + POP {foldi} + str r0,[sp, #F_ADRU] + + add arg4,sp,#F_LENU // &dstlen + mov arg3,r0 // dst + ldr arg2,[foldi, #sz_cpr] // srclen + add arg1,foldi,#sz_b_info // src + call4 f_decompress // includes cache flush + + ldr arg1,[sp, #F_ADRU] + ldr arg2,[sp, #F_LENU] + mov arg3,#PROT_EXEC|PROT_READ + do_sys7t __NR_mprotect + + adr r0,_start -4 *NBPW // &SO_INFO + add r1,sp,#F_ARGC + ldr pc,[sp, #F_ADRU] // invoke folded code + +f_decompress: +#define LINUX_ARM_CACHEFLUSH 1 +#include "arch/arm/v4a/nrv2b_d8.S" + +//%esp: +// MATCH_04 ptr unfolded_code +// MATCH_10 len unfolded_code +// MATCH_00 argc +// MATCH_01 argv +// MATCH_07 envp + +// IDENTSTR goes here + + section ELFMAINZ +L70: + call4 L70_ret +fold_info: +// b_info (sz_unc, sz_cpr, method) of folded code (C-language, etc.) + +/* vim:set ts=8 sw=8 et: */ diff --git a/src/stub/src/arm.v4a-linux.elf-so_fold.S b/src/stub/src/arm.v4a-linux.elf-so_fold.S new file mode 100644 index 00000000..55cdaa41 --- /dev/null +++ b/src/stub/src/arm.v4a-linux.elf-so_fold.S @@ -0,0 +1,388 @@ +@ arm-linux.elf-so_fold.S -- linkage to C code to process Elf shared library +@ +@ This file is part of the UPX executable compressor. +@ +@ Copyright (C) 2000-2023 John F. Reiser +@ All Rights Reserved. +@ +@ UPX and the UCL library are free software; you can redistribute them +@ and/or modify them 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; see the file COPYING. +@ If not, write to the Free Software Foundation, Inc., +@ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +@ +@ Markus F.X.J. Oberhumer Laszlo Molnar +@ +@ +@ John F. Reiser +@ +@ + +#define ARM_OLDABI 1 +#include "arch/arm/v4a/macros.S" +#define bkpt .long 0xe7f001f0 /* reserved instr "udf #0x10"; Linux GNU eabi breakpoint */ +NBPW= 4 + +sz_Elf32_Ehdr = 13*4 +sz_Elf32_Phdr = 8*4 +p_vaddr= 4+4 +sz_l_info = 12 +sz_p_info = 12 +sz_b_info = 12 + sz_unc= 0 + sz_cpr= 4 + b_method= 8 + +MAP_ANONYMOUS= 0x20 +MAP_PRIVATE= 0x02 +MAP_FIXED= 0x10 + +PROT_READ= 0x1 +PROT_WRITE= 0x2 +PROT_EXEC= 0x4 + +PF_X= (1 << 0) /* Segment is executable */ +PF_W= (1 << 1) /* Segment is writable */ +PF_R= (1 << 2) /* Segment is readable */ + +O_RDONLY= 0 + +PAGE_SHIFT= 12 +PAGE_SIZE = -(~0< +; +; John F. Reiser +; +; +*/ + +NBPW= 8 +#include "arch/arm64/v8/macros.S" + +.macro call subr; bl \subr; .endm + + section EXP_HEAD + +sz_unc= 0 +sz_cpr= 4 +b_method= 8 +b_ftid= 9 +b_cto8= 10 +b_extra= 11 +sz_binfo= 12 + +f_expand: .globl f_expand // f_expand(b_info *, dst, &dstlen) +// Supervisor for de-compression, un-filter, and sync_cache +// Input to supervisor: +fx_src .req x0 +fx_dst .req x1 +fx_dstlen .req x2 + PUSH4(fx_src,fx_dst,fx_dstlen,lr) // params to unfilter and sync_cache + +// Input to de-compressor: +xsrc .req x0 +xsrclen .req w1 +xdst .req x2 +xdstlen .req x3 +methb .req w4 + ldrb methb,[fx_src,#b_method] + mov xdstlen,fx_dstlen // arg4 + mov xdst,fx_dst // arg3 + ldr xsrclen,[xsrc,#sz_cpr] // arg2 + add xsrc,fx_src,#sz_binfo // arg1 + call decompress + mov x3,x0 // save retval + + POP4(x2,x0,x1,lr) // fx_src,fx_dst,fx_dstlen,lr + ldr x1,[x1] // actual length used by decompressor + PUSH3(x0,x1,x3) // params for sync_cache + ldrb w3,[x2,#b_ftid] + ldrb w2,[x2,#b_cto8] + cbz w3,no_unf +#include "arch/arm64/v8/bxx.S" // unfilter code; args in registers, fall-through return +no_unf: + + POP2(x0,x1) // dst, len + add x1,x1,x0 // lo, hi + sync_cache // in macros.S + POP1(x0) // retval from decompress + ret + .unreq fx_src + .unreq fx_dst + .unreq fx_dstlen + .unreq xsrc + .unreq xsrclen + .unreq xdst + .unreq xdstlen + .unreq methb + +decompress: // (src *, cpr_len, dst *, &dstlen); +// sections NRV2B, etc, inserted here by addLoader() from ::buildLinuxLoader() + + section EXP_TAIL + src .req x0 + dst .req x2 + .type eof,function + .globl eof +eof: // end of a compressed extent; need sync_cache + ldr x3,[sp],#NBPW // &input_eof + sub x3,x0,x3 // src -= eof; // return 0: good; else: bad + ldr x0,[sp],#NBPW // original dst + ldr x1,[sp],#NBPW; sub x1,x2,x1 // dst -= original dst + ldr x3,[sp],#NBPW; str dst,[x3] // actual length used at dst XXX: 4GB + ret + .unreq src + .unreq dst + +#define M_NRV2B_LE32 2 +#define M_NRV2B_8 3 +#define M_NRV2D_LE32 5 +#define M_NRV2D_8 6 +#define M_NRV2E_LE32 8 +#define M_NRV2E_8 9 +#define M_CL1B_LE32 11 +#define M_LZMA 14 + +// FIXME: will need extra parameter for multi-method decompression +#define NO_METHOD_CHECK 1 + + section NRV2E +#include "arch/arm64/v8/nrv2e_d32.S" + + section NRV2D +#include "arch/arm64/v8/nrv2d_d32.S" + + section NRV2B +#include "arch/arm64/v8/nrv2b_d32.S" + +/* lzma has its own 'section's */ +#include "arch/arm64/v8/lzma_d.S" + diff --git a/src/stub/src/arm64-linux.elf-entry.S b/src/stub/src/arm64-linux.elf-entry.S index 2169f4fd..5b697d33 100644 --- a/src/stub/src/arm64-linux.elf-entry.S +++ b/src/stub/src/arm64-linux.elf-entry.S @@ -118,12 +118,6 @@ xFOLD .req x20 // http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf // x18 is CLOBBERED: "The platform register" -wmeth .req w4 -xmeth .req x4 -ldst .req x3 - dst .req x2 -lsrc .req w1 - src .req x0 #define call bl #define callr blr @@ -148,6 +142,9 @@ f_decompress: section NRV_TAIL // empty +// FIXME +#define NO_METHOD_CHECK 1 + section NRV2E #include "arch/arm64/v8/nrv2e_d32.S" @@ -185,6 +182,12 @@ mmap: do_sys __NR_mmap ret +src .req x0 +lsrc .req w1 +dst .req x2 +ldst .req x3 +xmeth .req x4 +wmeth .req w4 unfold: mov xFOLD,lr // Reserve enough space to decompress the folded code of the stub @@ -232,6 +235,13 @@ unfold: add x0,xADRM,#4*4 // jmp over get_page_mask() jr x0 + .unreq src + .unreq lsrc + .unreq dst + .unreq ldst + .unreq xmeth + .unreq wmeth + #if DEBUG //{ TRACE_BUFLEN=1024 trace: // preserves condition code (thank you, CBNZ) [if write() does!] diff --git a/src/stub/src/arm64-linux.elf-fold.S b/src/stub/src/arm64-linux.elf-fold.S index 69a9be41..de20739d 100644 --- a/src/stub/src/arm64-linux.elf-fold.S +++ b/src/stub/src/arm64-linux.elf-fold.S @@ -1,4 +1,4 @@ -// aarch64-linux.elf-fold.S -- linkage to C code to process Elf binary +// arm64-linux.elf-fold.S -- linkage to C code to process Elf binary // // This file is part of the UPX executable compressor. // diff --git a/src/stub/src/arm64-linux.elf-so_entry.S b/src/stub/src/arm64-linux.elf-so_entry.S new file mode 100644 index 00000000..3a81780d --- /dev/null +++ b/src/stub/src/arm64-linux.elf-so_entry.S @@ -0,0 +1,149 @@ +/* arm64-linux.elf-so_entry.S -- Linux DT_INIT & decompressor (Elf shared lib) +* +* This file is part of the UPX executable compressor. +* +* Copyright (C) 1996-2021 Markus Franz Xaver Johannes Oberhumer +* Copyright (C) 1996-2021 Laszlo Molnar +* Copyright (C) 2000-2023 John F. Reiser +* All Rights Reserved. +* +* UPX and the UCL library are free software; you can redistribute them +* and/or modify them 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; see the file COPYING. +* If not, write to the Free Software Foundation, Inc., +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +* Markus F.X.J. Oberhumer Laszlo Molnar +* +* +* John F. Reiser +* +*/ + +NBPW= 8 +#include "arch/arm64/v8/macros.S" +lr .req x30 + +#define DEBUG 0 + +sz_Elf64_Ehdr = 8*NBPW +sz_Elf64_Phdr = 7*NBPW + +sz_b_info= 12 + sz_unc= 0 + sz_cpr= 4 + b_method= 8 +sz_l_info= 12 +sz_p_info= 12 + +PROT_READ= 1 +PROT_WRITE= 2 +PROT_EXEC= 4 + +MAP_PRIVATE= 2 +MAP_FIXED= 0x10 +MAP_ANONYMOUS= 0x20 + +PAGE_SHIFT= 12 +PAGE_MASK= (~0<>12) src for f_exp FIXME: really? +//SO_INFO: +// .word offset(.) // detect relocation +// .word offset(user DT_INIT) +// .word offset(escape_hatch) // override with round_up(2, PT_LOAD[0]{.p_memsz + .p_vaddr}) +// .word offset(dst for f_exp) + + .balign 4 +_start: .globl _start + nop // DEBUG + PUSH4 (x0,x1,x2,lr) // MATCH_00 + + sub sp,sp,#2*NBPW // space for ADRU, LENU +F_ADRU= 0 * NBPW +F_LENU= 1 * NBPW +F_ARGC= 2 * NBPW + + call L70 +L70ret: +foldi .req lr // &fold_info + mov arg6,#0 // cleanliness + mov arg5w,#-1 // fd + mov arg4w,#MAP_PRIVATE|MAP_ANONYMOUS // modes + mov arg3w,#PROT_READ|PROT_WRITE // prot + ldr arg2w,[foldi, #sz_unc] // dstlen + str arg2,[sp, #F_LENU] + mov arg1,#0 // addr (kernel chooses) + do_sys __NR_mmap; cmn x0,#4096; bcc 0f; bkpt; 0: + str x0,[sp, #F_ADRU] + + add arg4,sp,#F_LENU // &dstlen + mov arg3,x0 // dst + ldr arg2w,[foldi, #sz_cpr] // srclen + add arg1,foldi,#sz_b_info // src + call f_decompress // includes cache flush + + ldp arg1,arg2,[sp, #F_ADRU] // and F_LENU + mov arg3w,#PROT_EXEC|PROT_READ + do_sys __NR_mprotect + + adr x0,_start - 4*4 // &SO_INFO + add x1,sp,#F_ARGC + ldr x2,[sp, #F_ADRU] // invoke folded code + br x2 +//%esp: +// MATCH_04 ptr unfolded_code +// MATCH_10 len unfolded_code +// MATCH_00 argc,argv,envp,lr(_start) + +f_decompress: +#define NO_METHOD_CHECK 1 +#undef NO_SYNC_CACHE +off .req w5 +#include "arch/arm64/v8/nrv2b_d32.S" + +// IDENTSTR goes here + + section ELFMAINZ +L70: +lr .req x30 + blr lr // lr= &fold_info +fold_info: +// b_info (sz_unc, sz_cpr, method) of folded code (C-language, etc.) + +/* vim:set ts=8 sw=8 et: */ diff --git a/src/stub/src/arm64-linux.elf-so_fold.S b/src/stub/src/arm64-linux.elf-so_fold.S new file mode 100644 index 00000000..db8c903c --- /dev/null +++ b/src/stub/src/arm64-linux.elf-so_fold.S @@ -0,0 +1,214 @@ +// arm64-linux.elf-so_fold.S -- linkage to C code to process Elf shared library +// +// This file is part of the UPX executable compressor. +// +// Copyright (C) 2000-2023 John F. Reiser +// All Rights Reserved. +// +// UPX and the UCL library are free software; you can redistribute them +// and/or modify them 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; see the file COPYING. +// If not, write to the Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// Markus F.X.J. Oberhumer Laszlo Molnar +// +// +// John F. Reiser +// +// + +#include "arch/arm64/v8/macros.S" +NBPW= 8 +#define bkpt brk #0 + +sz_Elf64_Ehdr = 8*4 +sz_Elf64_Phdr = 7*4 +p_vaddr= 4+4 +sz_l_info = 12 +sz_p_info = 12 +sz_b_info = 12 + sz_unc= 0 + sz_cpr= 4 + b_method= 8 + +MAP_ANONYMOUS= 0x20 +MAP_PRIVATE= 0x02 +MAP_FIXED= 0x10 + +PROT_READ= 0x1 +PROT_WRITE= 0x2 + +O_RDONLY= 0 + +PAGE_SHIFT= 12 +PAGE_SIZE = -(~0<' instruction word - bic tmp,tmp,#0xff<<24 // displacment field - add rdx,rdx,tmpx + ldr w3,[x3,#-4] // 'bl ' instruction word + bic w3,w3,#0xff<<24 // displacment field + add rdx,rdx,x3 ret /*__XTHEENDX__*/ diff --git a/src/stub/src/arm64-sync-cache-range.S b/src/stub/src/arm64-sync-cache-range.S new file mode 100644 index 00000000..a1797de2 --- /dev/null +++ b/src/stub/src/arm64-sync-cache-range.S @@ -0,0 +1,33 @@ + +CTR_IDC_SHIFT= 28 +CTR_DIC_SHIFT= 29 + +sync_cache_range: // (void *lo, void *const hi) + mrs x3,ctr_el0 + tbnz w3,#CTR_IDC_SHIFT,dc_not_dirty + ubfx x2,x3,#16,#4 // -2+ log2(dline_size) + mov x4,#-4; lsl x4,x4,x2 // sz_dline mask + and x2,x4,x0 // round down to dc line + cmp x2,x1; b.hs dc_done +dc_loop: + dc cvau,x2 // sync dline + sub x2,x2,x4 // next dline + cmp x2,x1; b.lo dc_loop +dc_done: +dc_not_dirty: + dsb ish // why here if dc not dirty? + + tbnz w3,#CTR_DIC_SHIFT,ic_not_dirty + and x3,x3,#0xf // -2+ log2(iline_size) + mov x4,#-4; lsl x4,x4,x3 // sz_iline mask + and x0,x4,x0 // round down to ic line + cmp x0,x1; b.hs ic_done +ic_loop: + ic ivau,x0 // sync iline + sub x0,x0,x4 // next iline + cmp x0,x1; b.lo ic_loop +ic_done: + dsb ish +ic_not_dirty: + isb + diff --git a/src/stub/src/arm64-win64.pe.S b/src/stub/src/arm64-win64.pe.S index 237009b0..d74f4feb 100644 --- a/src/stub/src/arm64-win64.pe.S +++ b/src/stub/src/arm64-win64.pe.S @@ -37,7 +37,21 @@ section NRV_HEAD // empty ??? +#define M_NRV2B_LE32 2 +#define M_NRV2D_LE32 5 +#define M_NRV2E_LE32 8 +#define M_CL1B_LE32 11 +#define M_LZMA 14 +#define xsrc x0 +#define xsrclen w1 +#define xdst x2 +#define xdstlen x3 +#define methb w4 + +#define NO_METHOD_CHECK 1 + +off .req w5 section NRV2B #include "arch/arm64/v8/nrv2b_d32.S" diff --git a/src/stub/src/i386-expand.S b/src/stub/src/i386-expand.S new file mode 100644 index 00000000..3ed7ec18 --- /dev/null +++ b/src/stub/src/i386-expand.S @@ -0,0 +1,205 @@ +/* +; i386-expand.S -- decompressors for i386 +; +; This file is part of the UPX executable compressor. +; +; Copyright (C) 1996-2021 Markus Franz Xaver Johannes Oberhumer +; Copyright (C) 1996-2021 Laszlo Molnar +; Copyright (C) 2000-2021 John F. Reiser +; All Rights Reserved. +; +; UPX and the UCL library are free software; you can redistribute them +; and/or modify them 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; see the file COPYING. +; If not, write to the Free Software Foundation, Inc., +; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +; +; Markus F.X.J. Oberhumer Laszlo Molnar +; +; +; John F. Reiser +; +; +*/ + +#define section .section + +NBPW= 4 + +/* AMD64 branch prediction is much worse if there are more than 3 branches + per 16-byte block. The jnextb would suffer unless inlined. getnextb is OK + using closed subroutine to save space, and should be OK on cycles because + CALL+RET should be predicted. getnextb could partially expand, using closed + subroutine only for refill. +*/ +/* jump on next bit {0,1} with prediction {y==>likely, n==>unlikely} */ +/* Prediction omitted for now. */ +/* On refill: prefetch next byte, for latency reduction on literals and offsets. */ +#define jnextb0np jnextb0yp +#define jnextb0yp GETBITp; jnc +#define jnextb1np jnextb1yp +#define jnextb1yp GETBITp; jc +#define GETBITp \ + addl bits,bits; jnz 0f; \ + movl (%esi),bits; sub $-4,%esi; \ + adcl bits,bits; movb (%esi),%dl; \ +0: +/* Same, but without prefetch (not useful for length of match.) */ +#define jnextb0n jnextb0y +#define jnextb0y GETBIT; jnc +#define jnextb1n jnextb1y +#define jnextb1y GETBIT; jc +#define GETBIT \ + addl bits,bits; jnz 0f; \ + movl (%esi),bits; sub $-4,%esi; \ + adcl bits,bits; \ +0: + +/* rotate next bit into bottom bit of reg */ +#define getnextbp(reg) GETBITp; adcl reg,reg +#define getnextb(reg) getnextbp(reg) + +sz_unc= 0*4 // offsets in struct b_info +sz_cpr= 1*4 +method= 2*4 +sz_binfo= 3*4 + + section EXP_HEAD + +f_unfilter: // (*f_unf)(xo->buf, out_len, h.b_cto8, h.b_ftid); +#include "arch/i386/bxx.S" + +// int f_expand(nrv_byte const *src, nrv_byte *dst, size_t *dstlen) // C-callable +// Includes unfilter and cache flush. +// Returns 0 on success. +// *dstlen returns actual length +// *src includes 3-word b_info (sz_unc, sz_cpr, {method, filter, cto8, extra}) +// src might not be 4-byte aligned. +// C-callable, so must save+restore %ebx,%esi,%edi,%ebp + +/* Working registers for NRV2B/NRV2D/NRV2E (i386) */ +#define off %eax /* XXX: 2GB */ +#define len %ecx /* XXX: 2GB */ +#define lenq %ecx +#define bits %ebx +#define src %esi +#define dst %edi +#define disp %ebp +#define displ %ebp +#define dispq %ebp + +f_expand: .globl f_expand // start of code for actual de-compressor + push %ebp; mov %esp,%ebp + push %edi; push %esi; push %ebx // MATCH_29 +#define fx_src 2*NBPW(%ebp) +#define fx_dst 3*NBPW(%ebp) +#define fx_dstlen 4*NBPW(%ebp) + call decompress + push %eax // MATCH_30 result of decompression: 0=>success + + mov fx_src,src + movzbl 1+ method(src),%eax; test %eax,%eax; je no_unf; push %eax // ftid + movzbl 2+ method(src),%eax; push %eax // cto8 + push /*sz_unc*/(src) + push fx_dst + call f_unfilter; add $4*NBPW,%esp + +no_unf: // i386 cache is coherent I+D, so no __clear_cache + pop %eax // MATCH_30 + pop %ebx; pop %esi; pop %edi; pop %ebp // MATCH_29 + ret + +// common subroutines for NRV2B,NRV2D,NRV2E +refill: + movl (%esi),bits; sub $-4,%esi // next 32 bits; set Carry + adcl bits,bits // LSB= 1 (CarryIn); CarryOut= next bit + movb (%esi),%dl // pre-fetch: literal, or bottom 8 bits of offset + rep; ret +getbit: + addl bits,bits; jz refill // Carry= next bit + rep; ret + +copy: // In: len, %edi, dispq; Out: 0==len, %edi, dispq; trashes %eax, %edx + lea (%edi,dispq),%eax; cmpl $5,len // <=3 is forced + movb (%eax),%dl; jbe copy1 // <=5 for better branch predict + cmpl $-4,displ; ja copy1 // 4-byte chunks would overlap + subl $4,len // adjust for termination cases +copy4: + movl (%eax),%edx; add $4, %eax; subl $4,len + movl %edx,(%edi); lea 4(%edi),%edi; jnc copy4 + addl $4,len; movb (%eax),%dl; jz copy0 +copy1: + inc %eax; movb %dl,(%edi); dec len + movb (%eax),%dl + lea 1(%edi),%edi; jnz copy1 +copy0: + rep; ret + +decompress: // sections NRV2B, etc, are inserted here + mov fx_src,src + mov fx_dst,dst + lodsl // %eax= sz_unc; [lodsl ==> %eax= *src++;] + mov fx_dstlen,%edx; mov %eax,(%edx); push %edx // MATCH_51 *eof_dst = dstlen + lodsl; xchg %eax,%ecx // %ecx= sz_cpr(src) + lodsl; movzbl %al,%edx // method + add src,%ecx; push %ecx // MATCH_52 eof_src + push dst // MATCH_53 dst_orig + push %ebp // MATCH_54 sanity +// initialize NRV2 working registers + xor bits,bits // empty; force refill + xor len,len // create loop invariant + or $(~0),disp // -1: initial displacement + cld + movzbl -NBPW(src),%edx // method +#define methb %dl + + section EXP_TAIL +eof: // decompressors jump here when done + pop %ebp // MATCH_54 + pop %eax // MATCH_53 dst_orig + sub %eax,%edi // dst -= original dst + pop %eax // MATCH_52 src_EOF + pop %ecx // MATCH_51 &dstlen + movl %edi,(%ecx) // actual length used at dst XXX: 4GB + sub %esi,%eax // src -= eof; // return 0: good; else: bad + ret // back into f_expand, with sane %ebp + +#define M_NRV2B_LE32 2 +#define M_NRV2D_LE32 5 +#define M_NRV2E_LE32 8 +#define M_CL1B_LE32 11 +#define M_LZMA 14 + + section NRV2E +#include "arch/i386/nrv2e_d32-easy.S" + + section NRV2D +#include "arch/i386/nrv2d_d32-easy.S" + + section NRV2B +#include "arch/i386/nrv2b_d32-easy.S" + +#undef off +#undef len +#undef bits +#undef displ +#undef dispq + +#undef src +#undef dst +#undef meth + +// lzma code is written in intel syntax! +///* lzma has its own 'section's */ + .intel_syntax noprefix +#include "arch/i386/lzma_d.S" + diff --git a/src/stub/src/i386-linux.elf-main.c b/src/stub/src/i386-linux.elf-main.c index ae42e74f..4532a0ed 100644 --- a/src/stub/src/i386-linux.elf-main.c +++ b/src/stub/src/i386-linux.elf-main.c @@ -440,7 +440,8 @@ make_hatch_arm( || ( (hatch = (void *)(&((Elf32_Ehdr *)phdr->p_vaddr + reloc)->e_ident[8])), (phdr->p_offset==0) ) // Allocate and use a new page. - || ( xprot = 1, hatch = mmap(0, PAGE_SIZE, PROT_WRITE|PROT_READ, + // Linux on ARM wants PROT_EXEC or else __clear_cache does not work? + || ( xprot = 1, hatch = mmap(0, PAGE_SIZE, PROT_EXEC|PROT_WRITE|PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ) ) { hatch[0] = sys_munmap; // syscall __NR_unmap @@ -741,8 +742,17 @@ do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, Extent *const xi, # define LEN_OVER 0 #endif /*}*/ + DPRINTF(" prot=%%x\n", +#if defined(__arm__) //{ + ((PF_X & phdr->p_flags) ? PROT_EXEC : 0) | +#endif //} + PROT_WRITE | PROT_READ); + if (xi) { // compresed source: mprotect(,,prot) later if (addr != mmap_privanon(addr, LEN_OVER + mlen, +#if defined(__arm__) //{ + ((PF_X & phdr->p_flags) ? PROT_EXEC : 0) | +#endif //} PROT_WRITE | PROT_READ, MAP_FIXED) ) err_exit(6); unpackExtent(xi, &xo, (f_expand *)fdi, @@ -927,9 +937,9 @@ void *upx_main( xj.buf = CONST_CAST(char *, bi); xj.size = sizeof(*bi) + bi->sz_cpr; #endif //} - DPRINTF("upx_main av=%%p szc=%%x f_exp=%%p f_unf=%%p " + DPRINTF("upx_main@%%p av=%%p szc=%%x f_exp=%%p f_unf=%%p " " xo=%%p(%%x %%p) xi=%%p(%%x %%p) elfaddr=%%x\\n", - av, sz_compressed, f_exp, f_unf, &xo, xo.size, xo.buf, + upx_main, av, sz_compressed, f_exp, f_unf, &xo, xo.size, xo.buf, &xi, xi.size, xi.buf, elfaddr); #if defined(__mips__) //{ diff --git a/src/stub/src/i386-linux.elf-so_entry.S b/src/stub/src/i386-linux.elf-so_entry.S new file mode 100644 index 00000000..2d6f88e3 --- /dev/null +++ b/src/stub/src/i386-linux.elf-so_entry.S @@ -0,0 +1,227 @@ +/* i386-linux.elf-so_entry.S -- Linux DT_INIT & decompressor (Elf shared lib) +* +* This file is part of the UPX executable compressor. +* +* Copyright (C) 1996-2021 Markus Franz Xaver Johannes Oberhumer +* Copyright (C) 1996-2021 Laszlo Molnar +* Copyright (C) 2000-2023 John F. Reiser +* All Rights Reserved. +* +* UPX and the UCL library are free software; you can redistribute them +* and/or modify them 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; see the file COPYING. +* If not, write to the Free Software Foundation, Inc., +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +* Markus F.X.J. Oberhumer Laszlo Molnar +* +* +* John F. Reiser +* +*/ + +//#include "arch/amd64/macros.S" +//#include "arch/amd64/regs.h" +#define section .section + +NBPW= 4 + +sz_b_info= 12 + sz_unc= 0 + sz_cpr= 4 + b_method= 8 + +PROT_READ= 1 +PROT_WRITE= 2 +PROT_EXEC= 4 + +MAP_PRIVATE= 2 +MAP_FIXED= 0x10 +MAP_ANONYMOUS= 0x20 + +__NR_mmap= 90 +__NR_mprotect=125 +__NR_munmap= 91 + +__NR_write= 4 +__NR_exit= 1 + +PAGE_SHIFT= 12 +PAGE_MASK= (~0< "jmp top_n2b" +lit_n2b: + movsb // *dst++ = *src++; +top_n2b: + jnextb1 lit_n2b + lea 1(len),off # [len= 0] off= 1 +offmore_n2b: + getnextb(off) + jnextb0 offmore_n2b + + sub $ 3,off; jc len_n2b # use previous offset + shl $ 8,off; lodsb # off is %eax, so 'lodsb' is "off |= *src++;" + xor $~0,off; jz eof_n2b + mov off,disp # XXX: 2GB +len_n2b: + lea 1(len),off # [len= 0] off= 1 + getnextb(len); getnextb(len) # two bits; cc set on result + jnz gotlen_n2b # raw 1,2,3 ==> 2,3,4 + mov off,len # len= 1, the msb + add $3-1,off # raw 2.. ==> 5.. +lenmore_n2b: + getnextb(len) + jnextb0 lenmore_n2b +gotlen_n2b: + cmp $-0xd00,disp # XXX: 2GB + adc off,len # len += off + (disp < -0xd00) + push %esi // MATCH_06 + lea (%edi,disp),%esi + rep; movsb + pop %esi // MATCH_06 + jmp top_n2b + +eof_n2b: + pop %ecx // MATCH_05 &input_eof + cmp %ecx,%esi; je 0f; hlt; 0: // test for ending in correct place + + pop %ebx // MATCH_04 arg1 ptr unfolded_code + pop %ecx // MATCH_10 arg2 len unfoded_code + push %ecx // MATCH_12 len unfolded code + push %ebx // MATCH_13 ptr unfolded code + push $PROT_EXEC|PROT_READ; pop %edx // arg3 + push $__NR_mprotect; pop %eax; int $0x80 + +// %esp: +// MATCH_13 ptr unfolded_code; for escape hatch +// MATCH_12 len unfolded code; for escape hatch +// MATCH_14 &so_info +// MATCH_03 pusha regs {%edi,%esi,%ebp,%esp,%ebx,%edx,%ecx,%eax} +// ret_addr +// MATCH_00 argc +// MATCH_01 argv +// MATCH_07 envp + + pop %eax; push %eax // MATCH_13 ptr unfolded code + jmp *%eax // enter C code + +old_mmap: // oldmmap: ebx -> 6 arguments; remove arguments on return + lea 4(%esp),%ebx + push $__NR_mmap; pop %eax; int $0x80 + cmp $PAGE_MASK,%eax; jb 0f; hlt; 0: + ret $6*4 + +// IDENTSTR goes here + + section ELFMAINZ +L70: + pop %edx // &getbit (also L70ret) + call L20 // MATCH_09 push $&fold_info +fold_info: +// b_info (sz_unc, sz_cpr, method) of folded code (C-language, etc.) + +/* vim:set ts=8 sw=8 et: */ diff --git a/src/stub/src/i386-linux.elf-so_fold.S b/src/stub/src/i386-linux.elf-so_fold.S new file mode 100644 index 00000000..9e66bd61 --- /dev/null +++ b/src/stub/src/i386-linux.elf-so_fold.S @@ -0,0 +1,169 @@ +#define section .section +NBPW= 4 + +#ifndef DEBUG //{ +#define DEBUG 0 +#endif //} + +// %esp: +// MATCH_13 ptr unfolded_code; for escape hatch +// MATCH_12 len unfolded code; for escape hatch +// MATCH_14 &so_info: +// .long offset(.) // detect relocation +// .long offset(user DT_INIT) +// .long offset(escape_hatch) +// .long offset({l_info; p_info; b_info; compressed data}) +// MATCH_03 pusha regs {%edi,%esi,%ebp,%esp,%ebx,%edx,%ecx,%eax} +// ret_addr +// MATCH_00 argc +// MATCH_01 argv +// MATCH_07 envp + + section SO_HEAD +fold: + mov %esp,%eax + mov 2*NBPW(%eax),%ecx // &so_info + add $(3+8+1)*NBPW,%eax; push %eax // &{argc,argv,envp} + push %ecx // &so_info + call upx_so_main // (&so_info, &{argc, argv, envp}); returns &escape_hatch + add $2*NBPW,%esp // remove args + mov %eax,%ebp // save &escape_hatch + + pop %ebx // MATCH_13 ptr unfolded code + pop %ecx // MATCH_12 len unfolded code + pop %edx // MATCH_14 discard &so_info + push $__NR_munmap; pop %eax + jmp *%ebp // goto &escape_hatch + + ret // MATCH_30 ==>escape_hatch: + // syscall + // pop %ebx + // pop %ebp + // ??? + +L10: + section ptr_NEXT + pop %eax; call *%eax +f_exp: // start of code for actual de-compressor +// "lea f_exp(%eip)," addressing on x86_64 subsumes the need for code, +// but keep the empty section to unify buildLinuxLoader() + +// De-compressor sections inserted here: +// section NRV_HEAD +// section NRV2B +// section NRV2D +// section NRV2E +// section NRV_TAIL +// section LZMA_* +// section ZSTD future + + section SO_TAIL + .type eof,@function + .globl eof +eof: // end of a compressed extent + pop %ecx // &input_eof + mov %esi,%eax; sub %ecx,%eax // src -= eof; // return 0: good; else: bad + pop %edx; sub %edx,%edi // dst -= original dst + pop %ecx; movl %edi,(%ecx) // actual length used at dst XXX: 4GB + pop %ebx; pop %ebp + ret + +// +// Subroutines and syscalls needed by upx_so_main +// +my_bkpt: .globl my_bkpt + int3 + ret + +memset: .globl memset // void *memset(void *s, int c, size_t n); + push %edi // result = dst + mov %esi,%eax // c + mov %edx,%ecx // n + rep; stosb + pop %eax // result + ret + +memcpy: .globl memcpy // void (memcpy(void *dst, void const *src, size_t len) + pop %ecx // ret_addr + mov %edi,%eax; pop %edi // dst + mov %esi,%edx; pop %esi // src + xchg (%esp),%ecx // len + push %edi // save eventual return value in slot for original src + shr %ecx; jnc 0f; movsb; 0: + shr %ecx; jnc 0f; movsw; 0: + jz 0f; rep; movsl; 0: + mov %eax,%edi // restore saved register + mov %edx,%esi // restore saved register + pop %eax // retval (original dst, saved in slot for original src) + pop %edx // %edx= ret_addr (saved in slot for original len) + sub $3*NBPW,%esp // space for dst,src,len + push %edx // ret_addr + ret + +/* 32-bit mode only! */ +__NR_read= 3 +__NR_write= 4 +__NR_open= 5 +__NR_close= 6 + +__NR_mmap= 90 +__NR_mprotect=125 +__NR_munmap= 91 +__NR_mremap= 163 + +__NR_brk= 45 + +__NR_exit= 1 +__NR_readlink= 85 + + +#if 0 //{ unused +mremap: .globl mremap + push $ __NR_mremap; 5: jmp sys_4args +#endif //} + +mmap: .globl mmap // oldmmap: %ebx -> 6 word parameters + push %ebx // save C-lang register + lea 2*NBPW(%esp),%ebx + push $ __NR_mmap; pop %eax + int $0x80; cmp $-0x1000,%eax; jna 0f; hlt; 0: + pop %ebx // restore + ret + +#if DEBUG //{ + push %sys4 // %e10 + push %e9 + push %e8 + push %ecx; mov %ecx,%arg6 + push %edx; mov %edx,%arg5 + push %esi; mov %esi,%arg4 + push %edi; mov %edi,%arg3 + push %eax; mov %eax,%arg2 + call 0f; .asciz "syscall %p(%p %p %p %p %p %p %p)\n"; +0: pop %arg1 + call dprint8 + pop %eax + pop %edi + pop %esi + pop %edx + pop %ecx + pop %e8 + pop %e9 + pop %e10 +#endif //} + +exit: .globl exit + push $ __NR_exit; jmp 5f +munmap: .globl munmap + push $ __NR_munmap; 5: jmp 5f +mprotect: .globl mprotect + push $ __NR_mprotect; 5: jmp sysgo +write: .globl write + push $__NR_write + pop %eax +sysgo: + int $0x80 + ret + + +// section SO_MAIN inserted here diff --git a/src/stub/src/i386-linux.elf-so_fold.lds b/src/stub/src/i386-linux.elf-so_fold.lds new file mode 100644 index 00000000..7576b8f6 --- /dev/null +++ b/src/stub/src/i386-linux.elf-so_fold.lds @@ -0,0 +1,6 @@ +OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") +OUTPUT_ARCH(i386) +SECTIONS +{ + . = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */ +} diff --git a/src/stub/src/i386-linux.elf-so_main.c b/src/stub/src/i386-linux.elf-so_main.c new file mode 100644 index 00000000..5a30e065 --- /dev/null +++ b/src/stub/src/i386-linux.elf-so_main.c @@ -0,0 +1,752 @@ +/* i386-linux.elf-so_main.c -- stub loader for compressed shared library + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2021 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2021 Laszlo Molnar + Copyright (C) 2000-2023 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them 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; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + + John F. Reiser + + */ + + +#include "include/linux.h" + +extern void my_bkpt(void const *arg1, ...); + +#define DEBUG 0 + +void *mmap(void *, size_t, int, int, int, off_t); +#if defined(__i386__) || defined(__mips__) || defined(__powerpc__) //{ +# define mmap_privanon(addr,len,prot,flgs) mmap((addr),(len),(prot), \ + MAP_PRIVATE|MAP_ANONYMOUS|(flgs),-1,0) +#else //}{ + void *mmap_privanon(void *, size_t, int, int); +#endif //} +ssize_t write(int, void const *, size_t); + + +/************************************************************************* +// configuration section +**************************************************************************/ + +// In order to make it much easier to move this code at runtime and execute +// it at an address different from it load address: there must be no +// static data, and no string constants. + +#if !DEBUG //{ +#define DPRINTF(fmt, args...) /*empty*/ +#else //}{ +// DPRINTF is defined as an expression using "({ ... })" +// so that DPRINTF can be invoked inside an expression, +// and then followed by a comma to ignore the return value. +// The only complication is that percent and backslash +// must be doubled in the format string, because the format +// string is processd twice: once at compile-time by 'asm' +// to produce the assembled value, and once at runtime to use it. +#if defined(__powerpc__) //{ +#define DPRINTF(fmt, args...) ({ \ + char const *r_fmt; \ + asm("bl 0f; .string \"" fmt "\"; .balign 4; 0: mflr %0" \ +/*out*/ : "=r"(r_fmt) \ +/* in*/ : \ +/*und*/ : "lr"); \ + dprintf(r_fmt, args); \ +}) +#elif defined(__x86_64) || defined(__i386__) //}{ +#define DPRINTF(fmt, args...) ({ \ + char const *r_fmt; \ + asm("call 0f; .asciz \"" fmt "\"; 0: pop %0" \ +/*out*/ : "=r"(r_fmt) ); \ + dprintf(r_fmt, args); \ +}) +#elif defined(__arm__) /*}{*/ +#define DPRINTF(fmt, args...) ({ \ + char const *r_fmt; \ + asm("mov %0,pc; b 0f; \ + .asciz \"" fmt "\"; .balign 4; \ + 0: " \ +/*out*/ : "=r"(r_fmt) ); \ + dprintf(r_fmt, args); \ +}) +#elif defined(__mips__) /*}{*/ +#define DPRINTF(fmt, args...) ({ \ + char const *r_fmt; \ + asm(".set noreorder; bal L%=j; move %0,$31; .set reorder; \ + .asciz \"" fmt "\"; .balign 4; \ + L%=j: " \ +/*out*/ : "=r"(r_fmt) \ +/* in*/ : \ +/*und*/ : "ra"); \ + dprintf(r_fmt, args); \ +}) +#endif //} + +static int dprintf(char const *fmt, ...); // forward +#endif //} + +#ifdef __arm__ /*{*/ +extern unsigned div10(unsigned); +#endif /*}*/ + +#if DEBUG //{ +void dprint8( + char const *fmt, + void *a, void *b, void *c, void *d, + void *e, void *f, void *g, void *h +) +{ + dprintf(fmt, a, b, c, d, e, f, g, h); +} +#endif //} + +// In order to make it much easier to move this code at runtime and execute +// it at an address different from it load address: there must be no +// static data, and no string constants. + +#define MAX_ELF_HDR 512 // Elf32_Ehdr + n*Elf32_Phdr must fit in this + + +/************************************************************************* +// util +**************************************************************************/ + +#if 0 //{ save space +#define ERR_LAB error: exit(127); +#define err_exit(a) goto error +#else //}{ save debugging time +#define ERR_LAB /*empty*/ +void my_bkpt(void const *, ...); + +static void +err_exit(int a) +{ + (void)a; // debugging convenience + DPRINTF("err_exit %%x\\n", a); + my_bkpt((void const *)a); + exit(127); +} +#endif //} + +/************************************************************************* +// "file" util +**************************************************************************/ + +typedef struct { + size_t size; // must be first to match size[0] uncompressed size + char *buf; +} Extent; + + +static void +xread(Extent *x, char *buf, size_t count) +{ + DPRINTF("xread x.size=%%x x.buf=%%p buf=%%p count=%%x\\n", + x->size, x->buf, buf, count); + char *p=x->buf, *q=buf; + size_t j; + if (x->size < count) { + err_exit(8); + } + for (j = count; 0!=j--; ++p, ++q) { + *q = *p; + } + x->buf += count; + x->size -= count; + DPRINTF("yread x.size=%%x x.buf=%%p buf=%%p count=%%x\\n", + x->size, x->buf, buf, count); +} + + +/************************************************************************* +// UPX & NRV stuff +**************************************************************************/ + +int f_expand( // .globl in $(ARCH)-linux.elf-so_fold.S + nrv_byte const *binfo, nrv_byte *dst, size_t *dstlen); + +static void +unpackExtent( + Extent *const xi, // input includes struct b_info + Extent *const xo // output +) +{ + while (xo->size) { + DPRINTF("unpackExtent xi=(%%p %%p) xo=(%%p %%p) f_expand=%%p\\n", + xi->size, xi->buf, xo->size, xo->buf, f_expand); + struct b_info h; + // Note: if h.sz_unc == h.sz_cpr then the block was not + // compressible and is stored in its uncompressed form. + + // Read and check block sizes. + xread(xi, (char *)&h, sizeof(h)); + DPRINTF("h.sz_unc=%%x h.sz_cpr=%%x h.b_method=%%x\\n", + h.sz_unc, h.sz_cpr, h.b_method); + if (h.sz_unc == 0) { // uncompressed size 0 -> EOF + if (h.sz_cpr != UPX_MAGIC_LE32) // h.sz_cpr must be h->magic + err_exit(2); + if (xi->size != 0) // all bytes must be written + err_exit(3); + break; + } + if (h.sz_cpr <= 0) { + err_exit(4); +ERR_LAB + } + if (h.sz_cpr > h.sz_unc + || h.sz_unc > xo->size ) { + err_exit(5); + } + // Now we have: + // assert(h.sz_cpr <= h.sz_unc); + // assert(h.sz_unc > 0 && h.sz_unc <= blocksize); + // assert(h.sz_cpr > 0 && h.sz_cpr <= blocksize); + + if (h.sz_cpr < h.sz_unc) { // Decompress block + size_t out_len = h.sz_unc; // EOF for lzma + int const j = f_expand((unsigned char *)xi->buf - sizeof(h), + (unsigned char *)xo->buf, &out_len); + if (j != 0 || out_len != (nrv_uint)h.sz_unc) { + DPRINTF(" j=%%x out_len=%%x &h=%%p\\n", j, out_len, &h); + err_exit(7); + } + xi->buf += h.sz_cpr; + xi->size -= h.sz_cpr; + } + else { // copy literal block + DPRINTF(" copy %%p %%p %%p\\n", xi->buf, xo->buf, h.sz_cpr); + xread(xi, xo->buf, h.sz_cpr); + } + xo->buf += h.sz_unc; + xo->size -= h.sz_unc; + } +} + +#if defined(__i386__) /*{*/ +// Create (or find) an escape hatch to use when munmapping ourselves the stub. +// Called by do_xmap to create it; remembered in AT_NULL.d_val +static void * +make_hatch_i386(Elf32_Phdr const *const phdr, ptrdiff_t reloc) +{ + unsigned xprot = 0; + unsigned *hatch = 0; + DPRINTF("make_hatch %%p %%x %%x\\n",phdr,reloc,0); + if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { + // The format of the 'if' is + // if ( ( (hatch = loc1), test_loc1 ) + // || ( (hatch = loc2), test_loc2 ) ) { + // action + // } + // which uses the comma to save bytes when test_locj involves locj + // and the action is the same when either test succeeds. + + if ( + // Try page fragmentation just beyond .text . + ( (hatch = (void *)(phdr->p_memsz + phdr->p_vaddr + reloc)), + ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss + && 4<=(~PAGE_MASK & -(int)hatch) ) ) // space left on page + // Try Elf32_Ehdr.e_ident[12..15] . warning: 'const' cast away + || ( (hatch = (void *)(&((Elf32_Ehdr *)phdr->p_vaddr + reloc)->e_ident[12])), + (phdr->p_offset==0) ) + // Allocate and use a new page. + || ( xprot = 1, hatch = mmap(0, PAGE_SIZE, PROT_WRITE|PROT_READ, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ) + ) { + // Omitting 'const' saves repeated literal in gcc. + unsigned /*const*/ escape = 0xc36180cd; // "int $0x80; popa; ret" + // Don't store into read-only page if value is already there. + if (* (volatile unsigned*) hatch != escape) { + * hatch = escape; + } + if (xprot) { + mprotect(hatch, 1*sizeof(unsigned), PROT_EXEC|PROT_READ); + } + DPRINTF(" hatch at %%p\\n", hatch); + } + else { + hatch = 0; + } + } + return hatch; +} +#elif defined(__arm__) /*}{*/ +extern unsigned get_sys_munmap(void); + +static void * +make_hatch_arm( + Elf32_Phdr const *const phdr, + ptrdiff_t reloc +) +{ + unsigned const sys_munmap = get_sys_munmap(); + unsigned xprot = 0; + unsigned *hatch = 0; + DPRINTF("make_hatch %%p %%x %%x\\n",phdr,reloc,sys_munmap); + if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { + // The format of the 'if' is + // if ( ( (hatch = loc1), test_loc1 ) + // || ( (hatch = loc2), test_loc2 ) ) { + // action + // } + // which uses the comma to save bytes when test_locj involves locj + // and the action is the same when either test succeeds. + + if ( + // Try page fragmentation just beyond .text . + ( (hatch = (void *)(~3u & (3+ phdr->p_memsz + phdr->p_vaddr + reloc))), + ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss + && (2*4)<=(~PAGE_MASK & -(int)hatch) ) ) // space left on page + // Try Elf32_Ehdr.e_ident[8..15] . warning: 'const' cast away + || ( (hatch = (void *)(&((Elf32_Ehdr *)phdr->p_vaddr + reloc)->e_ident[8])), + (phdr->p_offset==0) ) + // Allocate and use a new page. + // Linux on ARM wants PROT_EXEC or else __clear_cache does not work? + || ( xprot = 1, hatch = mmap(0, PAGE_SIZE, PROT_EXEC|PROT_WRITE|PROT_READ, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ) + ) { + hatch[0] = sys_munmap; // syscall __NR_unmap + hatch[1] = 0xe8bd80ff; // ldmia sp!,{r0,r1,r2,r3,r4,r5,r6,r7,pc} + __clear_cache(&hatch[0], &hatch[2]); // ? needed before mprotect() + if (xprot) { + mprotect(hatch, 2*sizeof(unsigned), PROT_EXEC|PROT_READ); + } + } + else { + hatch = 0; + } + } + return hatch; +} +#elif defined(__mips__) /*}{*/ +static void * +make_hatch_mips( + Elf32_Phdr const *const phdr, + ptrdiff_t reloc, + unsigned const frag_mask) +{ + unsigned xprot = 0; + unsigned *hatch = 0; + DPRINTF("make_hatch %%p %%x %%x\\n",phdr,reloc,frag_mask); + if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { + if ( + // Try page fragmentation just beyond .text . + ( (hatch = (void *)(phdr->p_memsz + phdr->p_vaddr + reloc)), + ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss + && (3*4)<=(frag_mask & -(int)hatch) ) ) // space left on page + // Allocate and use a new page. + || ( xprot = 1, hatch = mmap(0, PAGE_SIZE, PROT_WRITE|PROT_READ, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ) + ) { + hatch[0]= 0x0000000c; // syscall +#define RS(r) ((037&(r))<<21) +#define JR 010 + hatch[1] = RS(30)|JR; // jr $30 # s8 + hatch[2] = 0x00000000; // nop + if (xprot) { + mprotect(hatch, 3*sizeof(unsigned), PROT_EXEC|PROT_READ); + } + } + else { + hatch = 0; + } + } + return hatch; +} +#elif defined(__powerpc__) /*}{*/ +static void * +make_hatch_ppc32( + Elf32_Phdr const *const phdr, + ptrdiff_t reloc, + unsigned const frag_mask) +{ + unsigned xprot = 0; + unsigned *hatch = 0; + DPRINTF("make_hatch %%p %%x %%x\\n",phdr,reloc,frag_mask); + if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { + if ( + // Try page fragmentation just beyond .text . + ( (hatch = (void *)(phdr->p_memsz + phdr->p_vaddr + reloc)), + ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss + && (2*4)<=(frag_mask & -(int)hatch) ) ) // space left on page + // Try Elf32_Ehdr.e_ident[8..15] . warning: 'const' cast away + || ( (hatch = (void *)(&((Elf32_Ehdr *)phdr->p_vaddr + reloc)->e_ident[8])), + (phdr->p_offset==0) ) + // Allocate and use a new page. + || ( xprot = 1, hatch = mmap(0, PAGE_SIZE, PROT_WRITE|PROT_READ, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) ) + ) { + hatch[0] = 0x44000002; // sc + hatch[1] = 0x4e800020; // blr + if (xprot) { + mprotect(hatch, 2*sizeof(unsigned), PROT_EXEC|PROT_READ); + } + } + else { + hatch = 0; + } + } + return hatch; +} +#endif /*}*/ + +#define bzero(a,b) __builtin_memset(a,0,b) + +// The PF_* and PROT_* bits are {1,2,4}; the conversion table fits in 32 bits. +#define REP8(x) \ + ((x)|((x)<<4)|((x)<<8)|((x)<<12)|((x)<<16)|((x)<<20)|((x)<<24)|((x)<<28)) +#define EXP8(y) \ + ((1&(y)) ? 0xf0f0f0f0 : (2&(y)) ? 0xff00ff00 : (4&(y)) ? 0xffff0000 : 0) +#define PF_TO_PROT(pf) \ + ((PROT_READ|PROT_WRITE|PROT_EXEC) & ( \ + ( (REP8(PROT_EXEC ) & EXP8(PF_X)) \ + |(REP8(PROT_READ ) & EXP8(PF_R)) \ + |(REP8(PROT_WRITE) & EXP8(PF_W)) \ + ) >> ((pf & (PF_R|PF_W|PF_X))<<2) )) + +#define nullptr (void *)0 + +#if 0 //{ +unsigned long +get_PAGE_MASK(void) // the mask which KEEPS the page address +{ + int fd = open("/proc/self/auxv", O_RDONLY, 0); + Elf32_auxv_t data[40]; + Elf32_auxv_t *end = &data[read(fd, data, sizeof(data)) / sizeof(data[0])]; + close(fd); + Elf32_auxv_t *ptr; for (ptr = &data[0]; ptr < end ; ++ptr) { + if (AT_PAGESZ == ptr->a_type) { + return ~(-1+ ptr->a_un.a_val); + } + } + return ~0xfff; +} +#endif //} + +extern void *memcpy(void *dst, void const *src, size_t n); +extern void *memset(void *dst, unsigned val, size_t n); + +#ifndef __arm__ //{ +// Segregate large local array, to avoid code bloat due to large displacements. +static void +underlay(unsigned size, char *ptr, unsigned len, unsigned p_flags) // len < PAGE_SIZE +{ + (void)p_flags; // for Linux ARM only + unsigned saved[-PAGE_MASK/sizeof(unsigned)]; + memcpy(saved, ptr, len); + mmap(ptr, size, PROT_WRITE|PROT_READ, + MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + memcpy(ptr, saved, len); +} +#else //}{ +extern void +underlay(unsigned size, char *ptr, unsigned len, unsigned p_flags); +#endif //} + +typedef struct { + int argc; + char **argv; + char **envp; +} So_args; + +typedef struct { + unsigned off_reloc; // distance back to &Elf32_Ehdr + unsigned off_user_DT_INIT; + unsigned off_xct_off; // where un-compressed bytes end [unused?] + unsigned off_info; // xct_off: {l_info; p_info; b_info; compressed data) +} So_info; + +/************************************************************************* +// upx_so_main - called by our folded entry code +**************************************************************************/ + +void * +upx_so_main( // returns &escape_hatch + So_info *so_info, + So_args *so_args +) +{ + char *const va_load = (char *)&so_info->off_reloc - so_info->off_reloc; + So_info so_infc; // So_info Copy + memcpy(&so_infc, so_info, sizeof(so_infc)); // before de-compression overwrites + unsigned const xct_off = so_infc.off_xct_off; + (void)xct_off; // use even if not DEBUG + + char *const cpr_ptr = so_infc.off_info + va_load; + unsigned const cpr_len = (char *)so_info - cpr_ptr; + DPRINTF("upx_so_main@%%p va_load=%%p cpr_ptr=%%p cpr_len=%%x xct_off=%%x\\n", + upx_so_main, va_load, cpr_ptr, cpr_len, xct_off); + + // Copy compressed data before de-compression overwrites it. + char *const sideaddr = mmap(nullptr, cpr_len, PROT_WRITE|PROT_READ, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + DPRINTF("sideaddr=%%p\\n", sideaddr); + memcpy(sideaddr, cpr_ptr, cpr_len); + + // Transition to copied data + struct b_info *binfo = (struct b_info *)(void *)(sideaddr + + sizeof(struct l_info) + sizeof(struct p_info)); + DPRINTF("upx_so_main va_load=%%p sideaddr=%%p b_info=%%p\\n", + va_load, sideaddr, binfo); + + // All the destination page frames exist or have been reserved, + // but the access permissions may be wrong and the data may be compressed. + // Also, rtld maps the convex hull of all PT_LOAD but assumes that the + // file supports those pages, even though the pages might lie beyond EOF. + // If so, then mprotect() is not enough: SIGBUS will occur. Thus we + // must mmap anonymous pages, except for first PT_LOAD with ELF headers. + // So the general strategy (for each PT_LOAD) is: + // Save any contents on low end of destination page (the "prefix" pfx). + // mmap(,, PROT_WRITE|PROT_READ, MAP_FIXED|MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + // Restore the prefix on the first destination page. + // De-compress from remaining [sideaddr, +sidelen). + // mprotect(,, PF_TO_PROT(.p_flags)); + + // Get the uncompressed Elf32_Ehdr and Elf32_Phdr + // The first b_info is aligned, so direct access of fields is OK. + Extent x1 = {binfo->sz_unc, va_load}; // destination + mprotect(va_load, binfo->sz_unc, PROT_WRITE|PROT_READ); + Extent x0 = {binfo->sz_cpr + sizeof(*binfo), (char *)binfo}; // source + unpackExtent(&x0, &x1); // de-compress Elf headers; x0.buf is updated + + // Count PT_LOAD; n_LOAD < 3 is special (old binutils PT_LOAD layout) + unsigned n_phdr; + Elf32_Phdr const *phdr; + n_phdr = ((Elf32_Ehdr *)(void *)va_load)->e_phnum; + phdr = (Elf32_Phdr *)(1+ (Elf32_Ehdr *)(void *)va_load); + unsigned n_LOAD = 0; + for (; n_phdr > 0; --n_phdr, ++phdr) { + n_LOAD += (PT_LOAD == phdr->p_type); + } + // Old-style binutils with only 2 PT_LOAD: (r-x) and (rw-) + // has xct_off in middle of first PT_LOAD. + // New-style binutils has xct-off at beginning of 2nd PT_LOAD. + Elf32_Addr pfx = (n_LOAD <= 2) ? so_infc.off_xct_off : 0; + + // Process each read-only PT_LOAD. + // A read+write PT_LOAD might be relocated by rtld before de-compression, + // so it cannot be compressed. + struct b_info al_bi; // for aligned data from binfo + void *hatch = nullptr; + unsigned not_first = 0; + + n_phdr = ((Elf32_Ehdr *)(void *)va_load)->e_phnum; + phdr = (Elf32_Phdr *)(1+ (Elf32_Ehdr *)(void *)va_load); + for (; n_phdr > 0; --n_phdr, ++phdr) + if ( phdr->p_type == PT_LOAD + && !(phdr->p_flags & PF_W) + && (not_first++ || n_LOAD < 3) + ) { + DPRINTF("phdr@%%p .p_vaddr=%%p .p_filesz=%%p .p_memsz=%%p n_LOAD=%%p binfo=%%p\\n", + phdr, phdr->p_vaddr, phdr->p_filesz, phdr->p_memsz, n_LOAD, x0.buf); + + x0.size = sizeof(struct b_info); + xread(&x0, (char *)&al_bi, x0.size); // aligned binfo + x0.buf -= sizeof(al_bi); // back up (the xread() was a peek) + DPRINTF("next1 pfx=%%x binfo@%%p (%%p %%p %%p)\\n", pfx, x0.buf, + al_bi.sz_unc, al_bi.sz_cpr, *(unsigned *)(void *)&al_bi.b_method); + + // Using .p_memsz implicitly handles .bss via MAP_ANONYMOUS. + x1.buf = phdr->p_vaddr + pfx + va_load; + x1.size = phdr->p_memsz - pfx; + pfx = (phdr->p_vaddr + pfx) & ~PAGE_MASK; + x1.buf -= pfx; + x1.size += pfx; + DPRINTF("mmap(%%p %%p) xct_off=%%x pfx=%%x\\n", x1.buf, x1.size, xct_off, pfx); + underlay(x1.size, x1.buf, pfx, phdr->p_flags); + + x1.buf += pfx; + x1.size = al_bi.sz_unc; + x0.size = al_bi.sz_cpr + sizeof(struct b_info); + unpackExtent(&x0, &x1); // updates x0 and x1 + pfx = 0; // consider xct_off at most once + + if (!hatch && phdr->p_flags & PF_X) { +//#define PAGE_MASK ~0xFFFull +#if defined(__arm__) //{ + hatch = make_hatch_arm(phdr, (Elf32_Addr)va_load); +#elif defined(__powerpc__) //}{ + hatch = make_hatch_ppc(phdr, (Elf32_Addr)va_load, ~PAGE_MASK); +#elif defined(__i386__) //}{ + hatch = make_hatch_i386(phdr, (Elf32_Addr)va_load); +#endif //} + } + DPRINTF("mprotect %%p (%%p %%p)\\n", phdr, phdr->p_vaddr + va_load, phdr->p_memsz); + mprotect(phdr->p_vaddr + va_load, phdr->p_memsz, PF_TO_PROT(phdr->p_flags)); + } + + typedef void (*Dt_init)(int argc, char *argv[], char *envp[]); + Dt_init dt_init = (Dt_init)(void *)(so_infc.off_user_DT_INIT + va_load); + munmap(sideaddr, cpr_len); + DPRINTF("calling user DT_INIT %%p\\n", dt_init); + dt_init(so_args->argc, so_args->argv, so_args->envp); + + DPRINTF("returning hatch=%%p\\n", hatch); + return hatch; +} + +#if DEBUG //{ + +#if defined(__powerpc64__) //{ +#define __NR_write 4 + +typedef unsigned long size_t; + +#if 0 //{ +static int +write(int fd, char const *ptr, size_t len) +{ + register int sys asm("r0") = __NR_write; + register int a0 asm("r3") = fd; + register void const *a1 asm("r4") = ptr; + register size_t const a2 asm("r5") = len; + __asm__ __volatile__("sc" + : "=r"(a0) + : "r"(sys), "r"(a0), "r"(a1), "r"(a2) + : "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13" + ); + return a0; +} +#else //}{ +ssize_t +write(int fd, void const *ptr, size_t len) +{ + register int sys asm("r0") = __NR_write; + register int a0 asm("r3") = fd; + register void const *a1 asm("r4") = ptr; + register size_t a2 asm("r5") = len; + __asm__ __volatile__("sc" + : "+r"(sys), "+r"(a0), "+r"(a1), "+r"(a2) + : + : "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13" + ); + return a0; +} +#endif //} +#endif //} + +static int +unsimal(unsigned x, char *ptr, int n) +{ + unsigned m = 10; + while (10 <= (x / m)) m *= 10; + while (10 <= x) { + unsigned d = x / m; + x -= m * d; + m /= 10; + ptr[n++] = '0' + d; + } + ptr[n++] = '0' + x; + return n; +} + +static int +decimal(int x, char *ptr, int n) +{ + if (x < 0) { + ptr[n++] = '-'; + } + return unsimal(-x, ptr, n); +} + +static int +heximal(unsigned long x, char *ptr, int n) +{ + unsigned j = -1+ 2*sizeof(unsigned long); + unsigned long m = 0xful << (4 * j); + for (; j; --j, m >>= 4) { // omit leading 0 digits + if (m & x) break; + } + for (; m; --j, m >>= 4) { + unsigned d = 0xf & (x >> (4 * j)); + ptr[n++] = ((10<=d) ? ('a' - 10) : '0') + d; + } + return n; +} + +#define va_arg __builtin_va_arg +#define va_end __builtin_va_end +#define va_list __builtin_va_list +#define va_start __builtin_va_start + +static int +dprintf(char const *fmt, ...) +{ + int n= 0; + char const *literal = 0; // NULL + char buf[24]; // ~0ull == 18446744073709551615 ==> 20 chars + va_list va; va_start(va, fmt); + for (;;) { + char c = *fmt++; + if (!c) { // end of fmt + if (literal) { + goto finish; + } + break; // goto done + } + if ('%'!=c) { + if (!literal) { + literal = fmt; // 1 beyond start of literal + } + continue; + } + // '%' == c + if (literal) { +finish: + n += write(2, -1+ literal, fmt - literal); + literal = 0; // NULL + if (!c) { // fmt already ended + break; // goto done + } + } + switch (c= *fmt++) { // deficiency: does not handle _long_ + default: { // un-implemented conversion + n+= write(2, -1+ fmt, 1); + } break; + case 0: { // fmt ends with "%\0" ==> ignore + goto done; + } break; + case 'u': { + n+= write(2, buf, unsimal((unsigned)(unsigned long)va_arg(va, void *), buf, 0)); + } break; + case 'd': { + n+= write(2, buf, decimal((int)(unsigned long)va_arg(va, void *), buf, 0)); + } break; + case 'p': { + buf[0] = '0'; + buf[1] = 'x'; + n+= write(2, buf, heximal((unsigned long)va_arg(va, void *), buf, 2)); + } break; + case 'x': { + buf[0] = '0'; + buf[1] = 'x'; + n+= write(2, buf, heximal((unsigned)(unsigned long)va_arg(va, void *), buf, 2)); + } break; + } // 'switch' + } +done: + va_end(va); + return n; + } +#endif //} + +/* vim:set ts=4 sw=4 et: */ diff --git a/src/stub/src/include/linux.h b/src/stub/src/include/linux.h index d5ee3470..aadebdd7 100644 --- a/src/stub/src/include/linux.h +++ b/src/stub/src/include/linux.h @@ -546,6 +546,7 @@ void *mmap(void *, size_t, int, int, int, off_t); int munmap(void *, size_t); int mprotect(void const *, size_t, int); int open(char const *, unsigned, unsigned); +int openat(int fd, char const *, unsigned, unsigned); ssize_t read(int, void *, size_t); ssize_t write(int, void const *, size_t); diff --git a/src/stub/tmp/amd64-linux.elf-fold.map b/src/stub/tmp/amd64-linux.elf-fold.map index 625b439b..72cede38 100644 --- a/src/stub/tmp/amd64-linux.elf-fold.map +++ b/src/stub/tmp/amd64-linux.elf-fold.map @@ -32,42 +32,37 @@ Linker script and memory map 0x0000000000100948 . = ALIGN (0x1) 0x0000000000100948 __start_EXP_HEAD = . -EXP_HEAD 0x0000000000100948 0xd5 - EXP_HEAD 0x0000000000100948 0xd5 tmp/amd64-expand.o - 0x0000000000100a1d __stop_EXP_HEAD = . - 0x0000000000100a1d . = ALIGN (0x1) - 0x0000000000100a1d __start_EXP_TAIL = . +EXP_HEAD 0x0000000000100948 0xdc + EXP_HEAD 0x0000000000100948 0xdc tmp/amd64-expand.o + 0x0000000000100948 f_expand + 0x0000000000100a24 __stop_EXP_HEAD = . + 0x0000000000100a24 . = ALIGN (0x1) + 0x0000000000100a24 __start_NRV2E = . -EXP_TAIL 0x0000000000100a1d 0xe - EXP_TAIL 0x0000000000100a1d 0xe tmp/amd64-expand.o - 0x0000000000100a2b __stop_EXP_TAIL = . - 0x0000000000100a2b . = ALIGN (0x1) - 0x0000000000100a2b __start_NRV2E = . +NRV2E 0x0000000000100a24 0xe5 + NRV2E 0x0000000000100a24 0xe5 tmp/amd64-expand.o + 0x0000000000100b09 __stop_NRV2E = . + 0x0000000000100b09 . = ALIGN (0x1) + 0x0000000000100b09 __start_NRV2D = . -NRV2E 0x0000000000100a2b 0xe6 - NRV2E 0x0000000000100a2b 0xe6 tmp/amd64-expand.o - 0x0000000000100b11 __stop_NRV2E = . - 0x0000000000100b11 . = ALIGN (0x1) - 0x0000000000100b11 __start_NRV2D = . +NRV2D 0x0000000000100b09 0xd7 + NRV2D 0x0000000000100b09 0xd7 tmp/amd64-expand.o + 0x0000000000100be0 __stop_NRV2D = . + 0x0000000000100be0 . = ALIGN (0x1) + 0x0000000000100be0 __start_NRV2B = . -NRV2D 0x0000000000100b11 0xd8 - NRV2D 0x0000000000100b11 0xd8 tmp/amd64-expand.o - 0x0000000000100be9 __stop_NRV2D = . - 0x0000000000100be9 . = ALIGN (0x1) - 0x0000000000100be9 __start_NRV2B = . - -NRV2B 0x0000000000100be9 0xc2 - NRV2B 0x0000000000100be9 0xc2 tmp/amd64-expand.o - 0x0000000000100cab __stop_NRV2B = . +NRV2B 0x0000000000100be0 0xc1 + NRV2B 0x0000000000100be0 0xc1 tmp/amd64-expand.o + 0x0000000000100ca1 __stop_NRV2B = . .data -.bss 0x0000000000100cac 0x0 - .bss 0x0000000000100cac 0x0 tmp/amd64-linux.elf-fold.o - .bss 0x0000000000100cac 0x0 tmp/amd64-linux.elf-main.o - .bss 0x0000000000100cac 0x0 tmp/amd64-expand.o +.bss 0x0000000000100ca4 0x0 + .bss 0x0000000000100ca4 0x0 tmp/amd64-linux.elf-fold.o + .bss 0x0000000000100ca4 0x0 tmp/amd64-linux.elf-main.o + .bss 0x0000000000100ca4 0x0 tmp/amd64-expand.o -.rela.dyn 0x0000000000100cb0 0x0 +.rela.dyn 0x0000000000100ca8 0x0 .rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-main.o @@ -97,3 +92,9 @@ LZMA_DEC20 0x0000000000000000 0x9f7 LZMA_DEC30 0x0000000000000000 0x18 LZMA_DEC30 0x0000000000000000 0x18 tmp/amd64-expand.o 0x0000000000000018 __stop_LZMA_DEC30 = . + 0x0000000000000018 . = ALIGN (0x1) + 0x0000000000000018 __start_EXP_TAIL = . + +EXP_TAIL 0x0000000000000000 0xe + EXP_TAIL 0x0000000000000000 0xe tmp/amd64-expand.o + 0x000000000000000e __stop_EXP_TAIL = . diff --git a/src/stub/tmp/amd64-linux.elf-so_entry.bin.dump b/src/stub/tmp/amd64-linux.elf-so_entry.bin.dump index c34de300..f7c2dc7e 100644 --- a/src/stub/tmp/amd64-linux.elf-so_entry.bin.dump +++ b/src/stub/tmp/amd64-linux.elf-so_entry.bin.dump @@ -2,8 +2,8 @@ file format elf64-x86-64 Sections: Idx Name Size VMA LMA File off Algn Flags - 0 ELFMAINX 0b4 0 0 040 2**0 CONTENTS - 1 ELFMAINZ 05 0 0 0f4 2**0 CONTENTS + 0 ELFMAINX 0c7 0 0 040 2**0 CONTENTS + 1 ELFMAINZ 05 0 0 0107 2**0 CONTENTS SYMBOL TABLE: 0000000000000000 l d ELFMAINX 0 ELFMAINX 0000000000000000 l ELFMAINX 0 _start @@ -11,8 +11,8 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE -0000000000000006 R_X86_64_PC32 ELFMAINZ+0xfffffffffffffffc +0000000000000007 R_X86_64_PC32 ELFMAINZ+0xfffffffffffffffc RELOCATION RECORDS FOR [ELFMAINZ]: OFFSET TYPE VALUE -0000000000000001 R_X86_64_PC32 ELFMAINX+0x0000000000000015 +0000000000000001 R_X86_64_PC32 ELFMAINX+0x0000000000000016 diff --git a/src/stub/tmp/amd64-linux.elf-so_fold.bin.dump b/src/stub/tmp/amd64-linux.elf-so_fold.bin.dump index 4e7fb053..25dd6a96 100644 --- a/src/stub/tmp/amd64-linux.elf-so_fold.bin.dump +++ b/src/stub/tmp/amd64-linux.elf-so_fold.bin.dump @@ -2,79 +2,87 @@ file format elf64-x86-64 Sections: Idx Name Size VMA LMA File off Algn Flags - 0 SO_MAIN 04f4 0 0 040 2**4 CONTENTS - 1 EXP_HEAD 0d5 0 0 0534 2**0 CONTENTS - 2 EXP_TAIL 0e 0 0 0609 2**0 CONTENTS - 3 NRV2E 0e6 0 0 0617 2**0 CONTENTS - 4 NRV2D 0d8 0 0 06fd 2**0 CONTENTS - 5 NRV2B 0c2 0 0 07d5 2**0 CONTENTS - 6 SO_HEAD 022 0 0 0897 2**0 CONTENTS - 7 ptr_NEXT 0 0 0 08b9 2**0 CONTENTS - 8 SO_TAIL 04c 0 0 08b9 2**0 CONTENTS - 9 LZMA_ELF00 064 0 0 0905 2**0 CONTENTS - 10 LZMA_DEC10 09f7 0 0 0969 2**0 CONTENTS - 11 LZMA_DEC20 09f7 0 0 01360 2**0 CONTENTS - 12 LZMA_DEC30 018 0 0 01d57 2**0 CONTENTS + 0 SO_MAIN 0627 0 0 040 2**4 CONTENTS + 1 EXP_HEAD 0dc 0 0 0667 2**0 CONTENTS + 2 NRV2E 0e5 0 0 0743 2**0 CONTENTS + 3 NRV2D 0d7 0 0 0828 2**0 CONTENTS + 4 NRV2B 0c1 0 0 08ff 2**0 CONTENTS + 5 SO_HEAD 01b 0 0 09c0 2**0 CONTENTS + 6 ptr_NEXT 0 0 0 09db 2**0 CONTENTS + 7 SO_TAIL 062 0 0 09db 2**0 CONTENTS + 8 LZMA_ELF00 064 0 0 0a3d 2**0 CONTENTS + 9 LZMA_DEC10 09f7 0 0 0aa1 2**0 CONTENTS + 10 LZMA_DEC20 09f7 0 0 01498 2**0 CONTENTS + 11 LZMA_DEC30 018 0 0 01e8f 2**0 CONTENTS + 12 EXP_TAIL 0e 0 0 01ea7 2**0 CONTENTS SYMBOL TABLE: 0000000000000000 l d EXP_HEAD 0 EXP_HEAD -0000000000000000 l d EXP_TAIL 0 EXP_TAIL -0000000000000000 l d ptr_NEXT 0 ptr_NEXT 0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30 +0000000000000000 l d EXP_TAIL 0 EXP_TAIL 0000000000000000 l d SO_MAIN 0 SO_MAIN 0000000000000000 l d NRV2E 0 NRV2E 0000000000000000 l d NRV2D 0 NRV2D 0000000000000000 l d NRV2B 0 NRV2B 0000000000000000 l d SO_HEAD 0 SO_HEAD +0000000000000000 l d ptr_NEXT 0 ptr_NEXT 0000000000000000 l d SO_TAIL 0 SO_TAIL 0000000000000000 l d LZMA_ELF00 0 LZMA_ELF00 0000000000000000 l d LZMA_DEC10 0 LZMA_DEC10 0000000000000000 l d LZMA_DEC20 0 LZMA_DEC20 -000000000000003e g SO_TAIL 0 munmap +0000000000000000 g EXP_HEAD 0 f_expand +000000000000005a g SO_TAIL 0 munmap 000000000000001c g SO_TAIL 0 memcpy 0000000000000031 g SO_TAIL 0 O_BINFO 0000000000000031 g SO_TAIL 0 mmap 0000000000000000 g F SO_TAIL 0 eof -0000000000000011 g SO_TAIL 0 f_int3 -0000000000000046 g SO_TAIL 0 write +0000000000000052 g SO_TAIL 0 write +0000000000000056 g SO_TAIL 0 read 0000000000000013 g SO_TAIL 0 memset -000000000000003a g SO_TAIL 0 exit -0000000000000042 g SO_TAIL 0 mprotect -0000000000000222 g F SO_MAIN 02d2 upx_so_main +0000000000000011 g SO_TAIL 0 my_bkpt +0000000000000043 g SO_TAIL 0 exit +000000000000004b g SO_TAIL 0 openat +000000000000005e g SO_TAIL 0 mprotect +0000000000000047 g SO_TAIL 0 close +000000000000036b g F SO_MAIN 02bc upx_so_main RELOCATION RECORDS FOR [SO_MAIN]: OFFSET TYPE VALUE -0000000000000013 R_X86_64_PLT32 exit+0xfffffffffffffffc -000000000000004c R_X86_64_PLT32 exit+0xfffffffffffffffc -00000000000001db R_X86_64_PLT32 mmap+0xfffffffffffffffc -0000000000000205 R_X86_64_PLT32 mprotect+0xfffffffffffffffc -000000000000026d R_X86_64_PLT32 mmap+0xfffffffffffffffc -0000000000000282 R_X86_64_PLT32 memcpy+0xfffffffffffffffc -00000000000002c4 R_X86_64_PLT32 mprotect+0xfffffffffffffffc -000000000000036c R_X86_64_PLT32 mprotect+0xfffffffffffffffc -00000000000003fa R_X86_64_PLT32 mmap+0xfffffffffffffffc -0000000000000450 R_X86_64_PLT32 memset+0xfffffffffffffffc -000000000000049f R_X86_64_PLT32 mprotect+0xfffffffffffffffc -00000000000004cb R_X86_64_PLT32 munmap+0xfffffffffffffffc +000000000000000d R_X86_64_PLT32 my_bkpt+0xfffffffffffffffc +0000000000000017 R_X86_64_PLT32 exit+0xfffffffffffffffc +000000000000002e R_X86_64_PLT32 exit+0xfffffffffffffffc +000000000000010e R_X86_64_PLT32 f_expand+0xfffffffffffffffc +00000000000001e0 R_X86_64_PLT32 mmap+0xfffffffffffffffc +000000000000020a R_X86_64_PLT32 mprotect+0xfffffffffffffffc +0000000000000268 R_X86_64_PLT32 openat+0xfffffffffffffffc +0000000000000283 R_X86_64_PLT32 read+0xfffffffffffffffc +0000000000000291 R_X86_64_PLT32 close+0xfffffffffffffffc +0000000000000310 R_X86_64_PLT32 memcpy+0xfffffffffffffffc +0000000000000331 R_X86_64_PLT32 mmap+0xfffffffffffffffc +000000000000033f R_X86_64_PLT32 memcpy+0xfffffffffffffffc +00000000000003de R_X86_64_PLT32 mmap+0xfffffffffffffffc +00000000000003ef R_X86_64_PLT32 memcpy+0xfffffffffffffffc +000000000000041c R_X86_64_PLT32 mprotect+0xfffffffffffffffc +00000000000005df R_X86_64_PLT32 mprotect+0xfffffffffffffffc +00000000000005f8 R_X86_64_PLT32 munmap+0xfffffffffffffffc RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE -00000000000000db R_X86_64_PC32 EXP_HEAD+0x0000000000000094 -0000000000000072 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc +00000000000000da R_X86_64_PC32 EXP_HEAD+0x000000000000009b +0000000000000071 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc RELOCATION RECORDS FOR [NRV2D]: OFFSET TYPE VALUE -00000000000000cd R_X86_64_PC32 EXP_HEAD+0x0000000000000094 -0000000000000072 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc +00000000000000cc R_X86_64_PC32 EXP_HEAD+0x000000000000009b +0000000000000071 R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc RELOCATION RECORDS FOR [NRV2B]: OFFSET TYPE VALUE -00000000000000b7 R_X86_64_PC32 EXP_HEAD+0x0000000000000094 -000000000000005e R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc +00000000000000b6 R_X86_64_PC32 EXP_HEAD+0x000000000000009b +000000000000005d R_X86_64_PC32 EXP_TAIL+0xfffffffffffffffc RELOCATION RECORDS FOR [SO_HEAD]: OFFSET TYPE VALUE -0000000000000005 R_X86_64_PC32 ptr_NEXT+0xfffffffffffffffc -0000000000000010 R_X86_64_PC32 upx_so_main+0xfffffffffffffffc +0000000000000009 R_X86_64_PC32 upx_so_main+0xfffffffffffffffc RELOCATION RECORDS FOR [LZMA_ELF00]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v4a-linux.elf-entry.bin.dump b/src/stub/tmp/arm.v4a-linux.elf-entry.bin.dump index 042fb882..917942c5 100644 --- a/src/stub/tmp/arm.v4a-linux.elf-entry.bin.dump +++ b/src/stub/tmp/arm.v4a-linux.elf-entry.bin.dump @@ -113,6 +113,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +000000a8 R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v4a-linux.elf-fold.map b/src/stub/tmp/arm.v4a-linux.elf-fold.map index a23df928..667a350f 100644 --- a/src/stub/tmp/arm.v4a-linux.elf-fold.map +++ b/src/stub/tmp/arm.v4a-linux.elf-fold.map @@ -6,41 +6,41 @@ Name Origin Length Attributes Linker script and memory map -TARGET(elf32-littlearm) - 0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc) + 0x0000000000008040 . = ((0x8000 + SIZEOF_HEADERS) + 0xc) -.text 0x0000000000008080 0xaa8 +.text 0x0000000000008040 0xab0 *(.text) - .text 0x0000000000008080 0x30c tmp/arm.v4a-linux.elf-fold.o - 0x00000000000082dc munmap - 0x0000000000008310 get_sys_munmap - 0x00000000000082c4 getpid - 0x00000000000082d4 readlink - 0x00000000000082f8 mmap - 0x00000000000082ec __clear_cache - 0x0000000000008318 mmap_privanon - 0x00000000000082a4 write - 0x000000000000829c read - 0x00000000000082bc unlink - 0x0000000000008290 my_bkpt - 0x0000000000008298 exit - 0x00000000000082cc brk - 0x00000000000082ac open - 0x0000000000008330 div10 - 0x00000000000082e4 mprotect - 0x00000000000082b4 close - .text 0x000000000000838c 0x79c tmp/arm.v4a-linux.elf-main.o - 0x00000000000083ac get_page_mask - 0x00000000000089f4 upx_main + .text 0x0000000000008040 0x30c tmp/arm.v4a-linux.elf-fold.o + 0x0000000000008250 my_bkpt + 0x0000000000008258 exit + 0x000000000000825c read + 0x0000000000008264 write + 0x000000000000826c open + 0x0000000000008274 close + 0x000000000000827c unlink + 0x0000000000008284 getpid + 0x000000000000828c brk + 0x0000000000008294 readlink + 0x000000000000829c munmap + 0x00000000000082a4 mprotect + 0x00000000000082ac __clear_cache + 0x00000000000082b8 mmap + 0x00000000000082d0 get_sys_munmap + 0x00000000000082d8 mmap_privanon + 0x00000000000082f0 __udivsi3 + 0x00000000000082f0 div10 + .text 0x000000000000834c 0x7a4 tmp/arm.v4a-linux.elf-main.o + 0x000000000000836c get_page_mask + 0x00000000000089bc upx_main *(.data) - .data 0x0000000000008b28 0x0 tmp/arm.v4a-linux.elf-fold.o - .data 0x0000000000008b28 0x0 tmp/arm.v4a-linux.elf-main.o + .data 0x0000000000008af0 0x0 tmp/arm.v4a-linux.elf-fold.o + .data 0x0000000000008af0 0x0 tmp/arm.v4a-linux.elf-main.o .data - -.bss 0x0000000000008b28 0x0 - .bss 0x0000000000008b28 0x0 tmp/arm.v4a-linux.elf-fold.o - .bss 0x0000000000008b28 0x0 tmp/arm.v4a-linux.elf-main.o LOAD tmp/arm.v4a-linux.elf-fold.o LOAD tmp/arm.v4a-linux.elf-main.o OUTPUT(tmp/arm.v4a-linux.elf-fold.bin elf32-littlearm) + +.bss 0x0000000000000000 0x0 + .bss 0x0000000000000000 0x0 tmp/arm.v4a-linux.elf-fold.o + .bss 0x0000000000000000 0x0 tmp/arm.v4a-linux.elf-main.o diff --git a/src/stub/tmp/arm.v4a-wince.pe.bin.dump b/src/stub/tmp/arm.v4a-wince.pe.bin.dump deleted file mode 100644 index 8deaf434..00000000 --- a/src/stub/tmp/arm.v4a-wince.pe.bin.dump +++ /dev/null @@ -1,272 +0,0 @@ -file format elf32-littlearm - -Sections: -Idx Name Size VMA LMA File off Algn Flags - 0 DllStart 08 0 0 034 2**0 CONTENTS - 1 ExeStart 054 0 0 03c 2**0 CONTENTS - 2 ProcessEnd 04 0 0 090 2**0 CONTENTS - 3 Unfilter_0x50 04c 0 0 094 2**0 CONTENTS - 4 Relocs 060 0 0 0e0 2**0 CONTENTS - 5 Imports 0bc 0 0 0140 2**0 CONTENTS - 6 UPX1HEAD 020 0 0 01fc 2**0 CONTENTS - 7 .ucl_nrv2e_decompress_8 0114 0 0 021c 2**0 CONTENTS - 8 Call2E 04 0 0 0330 2**0 CONTENTS - 9 .ucl_nrv2d_decompress_8 0100 0 0 0334 2**0 CONTENTS - 10 Call2D 04 0 0 0434 2**0 CONTENTS - 11 .ucl_nrv2b_decompress_8 0c4 0 0 0438 2**0 CONTENTS - 12 Call2B 04 0 0 04fc 2**0 CONTENTS - 13 CallLZMA 054 0 0 0500 2**0 CONTENTS - 14 LZMA_DECODE 0 0 0 0554 2**0 CONTENTS - 15 LZMA_DEC10 0938 0 0 0554 2**0 CONTENTS -SYMBOL TABLE: -00000000 l d ExeStart 0 ExeStart -00000000 l d Unfilter_0x50 0 Unfilter_0x50 -00000000 l d Relocs 0 Relocs -00000000 l d Imports 0 Imports -00000000 l d .ucl_nrv2e_decompress_8 0 .ucl_nrv2e_decompress_8 -00000000 l d .ucl_nrv2d_decompress_8 0 .ucl_nrv2d_decompress_8 -00000000 l d .ucl_nrv2b_decompress_8 0 .ucl_nrv2b_decompress_8 -00000000 l d CallLZMA 0 CallLZMA -00000000 l d LZMA_DECODE 0 LZMA_DECODE -00000000 l d LZMA_DEC10 0 LZMA_DEC10 -00000000 l d DllStart 0 DllStart -00000000 l d ProcessEnd 0 ProcessEnd -00000000 l d UPX1HEAD 0 UPX1HEAD -00000000 l d Call2E 0 Call2E -00000000 l d Call2D 0 Call2D -00000000 l d Call2B 0 Call2B -0000002c g ExeStart 0 SRC0 -00000034 g ExeStart 0 DST0 -0000003c g ExeStart 0 IATT -0000004c g ExeStart 0 ENTR -00000044 g Unfilter_0x50 0 FIBS -00000048 g Unfilter_0x50 0 FIBE -0000005c g Relocs 0 BREL -000000b0 g Imports 0 BIMP -000000b4 g Imports 0 ONAM -00000000 *UND* 0 start_of_compressed -00000000 *UND* 0 compressed_length -00000000 *UND* 0 start_of_uncompressed -00000000 *UND* 0 uncompressed_length -00000000 *UND* 0 original_entry -00000000 *UND* 0 filter_buffer_start -00000000 *UND* 0 filter_buffer_end -00000000 *UND* 0 start_of_relocs -00000000 *UND* 0 start_of_imports -00000000 *UND* 0 start_of_dll_names -00000000 g F .ucl_nrv2e_decompress_8 0114 ucl_nrv2e_decompress_8 -00000000 g F .ucl_nrv2d_decompress_8 0100 ucl_nrv2d_decompress_8 -00000000 g F .ucl_nrv2b_decompress_8 0c4 ucl_nrv2b_decompress_8 -00000000 *UND* 0 lzma_u_len -00000000 *UND* 0 lzma_stack_adjust -00000000 *UND* 0 lzma_c_len -00000000 *UND* 0 lzma_properties - -RELOCATION RECORDS FOR [DllStart]: -OFFSET TYPE VALUE -00000004 R_ARM_PC24 ExeStart - -RELOCATION RECORDS FOR [ExeStart]: -OFFSET TYPE VALUE -00000014 R_ARM_PC24 ExeStart -0000001c R_ARM_PC24 ExeStart -0000002c R_ARM_ABS32 start_of_compressed -00000030 R_ARM_ABS32 compressed_length -00000034 R_ARM_ABS32 start_of_uncompressed -00000038 R_ARM_ABS32 uncompressed_length -0000004c R_ARM_ABS32 original_entry - -RELOCATION RECORDS FOR [Unfilter_0x50]: -OFFSET TYPE VALUE -00000010 R_ARM_PC24 Unfilter_0x50 -00000020 R_ARM_PC24 Unfilter_0x50 -00000040 R_ARM_PC24 Unfilter_0x50 -00000044 R_ARM_ABS32 filter_buffer_start -00000048 R_ARM_ABS32 filter_buffer_end - -RELOCATION RECORDS FOR [Relocs]: -OFFSET TYPE VALUE -00000010 R_ARM_PC24 Relocs -00000058 R_ARM_PC24 Relocs -0000005c R_ARM_ABS32 start_of_relocs - -RELOCATION RECORDS FOR [Imports]: -OFFSET TYPE VALUE -0000000c R_ARM_PC24 Imports -00000010 R_ARM_PC24 Imports -0000002c R_ARM_PC24 Imports -00000034 R_ARM_PC24 Imports -00000040 R_ARM_PC24 Imports -00000054 R_ARM_PC24 Imports -00000058 R_ARM_PC24 Imports -00000068 R_ARM_PC24 Imports -0000006c R_ARM_PC24 Imports -00000080 R_ARM_PC24 Imports -00000088 R_ARM_PC24 Imports -0000009c R_ARM_PC24 Imports -000000b0 R_ARM_ABS32 start_of_imports -000000b4 R_ARM_ABS32 start_of_dll_names - -RELOCATION RECORDS FOR [.ucl_nrv2e_decompress_8]: -OFFSET TYPE VALUE -00000010 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000044 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000048 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000050 R_ARM_PC24 .ucl_nrv2e_decompress_8 -0000005c R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000068 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000074 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000078 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000084 R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000094 R_ARM_PC24 .ucl_nrv2e_decompress_8 -0000009c R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000a0 R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000a8 R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000ac R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000b8 R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000bc R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000c4 R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000d0 R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000d4 R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000dc R_ARM_PC24 .ucl_nrv2e_decompress_8 -000000e4 R_ARM_PC24 .ucl_nrv2e_decompress_8 -0000010c R_ARM_PC24 .ucl_nrv2e_decompress_8 -00000110 R_ARM_PC24 .ucl_nrv2e_decompress_8 - -RELOCATION RECORDS FOR [Call2E]: -OFFSET TYPE VALUE -00000000 R_ARM_PC24 ucl_nrv2e_decompress_8 - -RELOCATION RECORDS FOR [.ucl_nrv2d_decompress_8]: -OFFSET TYPE VALUE -00000010 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000044 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000048 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000050 R_ARM_PC24 .ucl_nrv2d_decompress_8 -0000005c R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000068 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000074 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000078 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000084 R_ARM_PC24 .ucl_nrv2d_decompress_8 -00000094 R_ARM_PC24 .ucl_nrv2d_decompress_8 -0000009c R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000a4 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000b0 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000b8 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000c4 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000d0 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000d4 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000f8 R_ARM_PC24 .ucl_nrv2d_decompress_8 -000000fc R_ARM_PC24 .ucl_nrv2d_decompress_8 - -RELOCATION RECORDS FOR [Call2D]: -OFFSET TYPE VALUE -00000000 R_ARM_PC24 ucl_nrv2d_decompress_8 - -RELOCATION RECORDS FOR [.ucl_nrv2b_decompress_8]: -OFFSET TYPE VALUE -00000010 R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000048 R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000050 R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000054 R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000064 R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000068 R_ARM_PC24 .ucl_nrv2b_decompress_8 -0000006c R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000078 R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000088 R_ARM_PC24 .ucl_nrv2b_decompress_8 -0000008c R_ARM_PC24 .ucl_nrv2b_decompress_8 -00000094 R_ARM_PC24 .ucl_nrv2b_decompress_8 -0000009c R_ARM_PC24 .ucl_nrv2b_decompress_8 -000000a0 R_ARM_PC24 .ucl_nrv2b_decompress_8 -000000bc R_ARM_PC24 .ucl_nrv2b_decompress_8 -000000c0 R_ARM_PC24 .ucl_nrv2b_decompress_8 - -RELOCATION RECORDS FOR [Call2B]: -OFFSET TYPE VALUE -00000000 R_ARM_PC24 ucl_nrv2b_decompress_8 - -RELOCATION RECORDS FOR [CallLZMA]: -OFFSET TYPE VALUE -0000001c R_ARM_PC24 CallLZMA -00000038 R_ARM_PC24 LZMA_DECODE -00000040 R_ARM_PC24 CallLZMA -00000044 R_ARM_ABS32 lzma_u_len -00000048 R_ARM_ABS32 lzma_stack_adjust -0000004c R_ARM_ABS32 lzma_c_len -00000050 R_ARM_ABS32 lzma_properties - -RELOCATION RECORDS FOR [LZMA_DEC10]: -OFFSET TYPE VALUE -00000074 R_ARM_PC24 LZMA_DEC10 -00000090 R_ARM_PC24 LZMA_DEC10 -000000b8 R_ARM_PC24 LZMA_DEC10 -000000cc R_ARM_PC24 LZMA_DEC10 -000000f4 R_ARM_PC24 LZMA_DEC10 -00000100 R_ARM_PC24 LZMA_DEC10 -00000108 R_ARM_PC24 LZMA_DEC10 -00000144 R_ARM_PC24 LZMA_DEC10 -00000190 R_ARM_PC24 LZMA_DEC10 -000001cc R_ARM_PC24 LZMA_DEC10 -000001d8 R_ARM_PC24 LZMA_DEC10 -00000204 R_ARM_PC24 LZMA_DEC10 -00000218 R_ARM_PC24 LZMA_DEC10 -00000220 R_ARM_PC24 LZMA_DEC10 -00000234 R_ARM_PC24 LZMA_DEC10 -0000023c R_ARM_PC24 LZMA_DEC10 -00000240 R_ARM_PC24 LZMA_DEC10 -0000024c R_ARM_PC24 LZMA_DEC10 -00000258 R_ARM_PC24 LZMA_DEC10 -000002a4 R_ARM_PC24 LZMA_DEC10 -000002c8 R_ARM_PC24 LZMA_DEC10 -000002e8 R_ARM_PC24 LZMA_DEC10 -00000304 R_ARM_PC24 LZMA_DEC10 -0000030c R_ARM_PC24 LZMA_DEC10 -0000033c R_ARM_PC24 LZMA_DEC10 -00000388 R_ARM_PC24 LZMA_DEC10 -000003a0 R_ARM_PC24 LZMA_DEC10 -000003a8 R_ARM_PC24 LZMA_DEC10 -000003cc R_ARM_PC24 LZMA_DEC10 -000003e0 R_ARM_PC24 LZMA_DEC10 -000003e8 R_ARM_PC24 LZMA_DEC10 -00000424 R_ARM_PC24 LZMA_DEC10 -00000438 R_ARM_PC24 LZMA_DEC10 -0000046c R_ARM_PC24 LZMA_DEC10 -00000484 R_ARM_PC24 LZMA_DEC10 -0000048c R_ARM_PC24 LZMA_DEC10 -000004b0 R_ARM_PC24 LZMA_DEC10 -000004d4 R_ARM_PC24 LZMA_DEC10 -000004ec R_ARM_PC24 LZMA_DEC10 -000004f4 R_ARM_PC24 LZMA_DEC10 -00000518 R_ARM_PC24 LZMA_DEC10 -0000053c R_ARM_PC24 LZMA_DEC10 -00000598 R_ARM_PC24 LZMA_DEC10 -000005a0 R_ARM_PC24 LZMA_DEC10 -000005c0 R_ARM_PC24 LZMA_DEC10 -000005e4 R_ARM_PC24 LZMA_DEC10 -000005fc R_ARM_PC24 LZMA_DEC10 -00000604 R_ARM_PC24 LZMA_DEC10 -00000624 R_ARM_PC24 LZMA_DEC10 -00000648 R_ARM_PC24 LZMA_DEC10 -00000680 R_ARM_PC24 LZMA_DEC10 -0000068c R_ARM_PC24 LZMA_DEC10 -000006d0 R_ARM_PC24 LZMA_DEC10 -000006ec R_ARM_PC24 LZMA_DEC10 -0000071c R_ARM_PC24 LZMA_DEC10 -00000728 R_ARM_PC24 LZMA_DEC10 -0000076c R_ARM_PC24 LZMA_DEC10 -0000077c R_ARM_PC24 LZMA_DEC10 -0000079c R_ARM_PC24 LZMA_DEC10 -000007b8 R_ARM_PC24 LZMA_DEC10 -000007c4 R_ARM_PC24 LZMA_DEC10 -000007d0 R_ARM_PC24 LZMA_DEC10 -000007f4 R_ARM_PC24 LZMA_DEC10 -00000820 R_ARM_PC24 LZMA_DEC10 -0000082c R_ARM_PC24 LZMA_DEC10 -0000087c R_ARM_PC24 LZMA_DEC10 -00000888 R_ARM_PC24 LZMA_DEC10 -000008a0 R_ARM_PC24 LZMA_DEC10 -000008e8 R_ARM_PC24 LZMA_DEC10 -000008f4 R_ARM_PC24 LZMA_DEC10 -000008fc R_ARM_PC24 LZMA_DEC10 -00000904 R_ARM_PC24 LZMA_DEC10 -00000928 R_ARM_PC24 LZMA_DEC10 diff --git a/src/stub/tmp/arm.v4t-wince.pe.bin.dump b/src/stub/tmp/arm.v4t-wince.pe.bin.dump deleted file mode 100644 index d67a7f7a..00000000 --- a/src/stub/tmp/arm.v4t-wince.pe.bin.dump +++ /dev/null @@ -1,105 +0,0 @@ -file format elf32-littlearm - -Sections: -Idx Name Size VMA LMA File off Algn Flags - 0 DllStart 08 0 0 034 2**0 CONTENTS - 1 ExeStart 064 0 0 03c 2**1 CONTENTS - 2 Unfilter_0x50 038 0 0 0a0 2**2 CONTENTS - 3 Relocs 040 0 0 0d8 2**2 CONTENTS - 4 Imports 082 0 0 0118 2**0 CONTENTS - 5 ProcessEnd 08 0 0 019a 2**0 CONTENTS - 6 UPX1HEAD 020 0 0 01a2 2**0 CONTENTS - 7 .ucl_nrv2b_decompress_8 098 0 0 01c2 2**0 CONTENTS - 8 Call2B 04 0 0 025a 2**0 CONTENTS - 9 .ucl_nrv2e_decompress_8 0b2 0 0 025e 2**0 CONTENTS - 10 Call2E 04 0 0 0310 2**0 CONTENTS - 11 CallLZMA 034 0 0 0314 2**2 CONTENTS - 12 LZMA_DECODE 0 0 0 0348 2**0 CONTENTS - 13 LZMA_DEC10 0760 0 0 0348 2**2 CONTENTS -SYMBOL TABLE: -00000000 l d ExeStart 0 ExeStart -00000000 l Imports 0 .real_start_ofImports -00000000 l d .ucl_nrv2b_decompress_8 0 .ucl_nrv2b_decompress_8 -00000000 l d .ucl_nrv2e_decompress_8 0 .ucl_nrv2e_decompress_8 -00000000 l LZMA_DECODE 0 .real_start_ofLZMA_DECODE -00000000 l d DllStart 0 DllStart -00000000 l d Unfilter_0x50 0 Unfilter_0x50 -00000000 l d Relocs 0 Relocs -00000000 l d Imports 0 Imports -00000000 l d ProcessEnd 0 ProcessEnd -00000000 l d UPX1HEAD 0 UPX1HEAD -00000000 l d Call2B 0 Call2B -00000000 l d Call2E 0 Call2E -00000000 l d CallLZMA 0 CallLZMA -00000000 l d LZMA_DECODE 0 LZMA_DECODE -00000000 l d LZMA_DEC10 0 LZMA_DEC10 -00000038 g ExeStart 0 SRC0 -00000040 g ExeStart 0 DST0 -00000048 g ExeStart 0 IATT -00000058 g ExeStart 0 ENTR -00000000 *UND* 0 start_of_compressed -00000000 *UND* 0 compressed_length -00000000 *UND* 0 start_of_uncompressed -00000000 *UND* 0 uncompressed_length -00000000 *UND* 0 original_entry -00000030 g Unfilter_0x50 0 FIBS -00000000 *UND* 0 filter_buffer_start -00000034 g Unfilter_0x50 0 FIBE -00000000 *UND* 0 filter_buffer_end -0000003c g Relocs 0 BREL -00000000 *UND* 0 start_of_relocs -00000078 g Imports 0 BIMP -00000000 *UND* 0 start_of_imports -0000007c g Imports 0 ONAM -00000000 *UND* 0 start_of_dll_names -00000000 *UND* 0 lzma_u_len -00000000 *UND* 0 lzma_stack_adjust -00000000 *UND* 0 lzma_c_len -00000000 *UND* 0 lzma_properties - -RELOCATION RECORDS FOR [DllStart]: -OFFSET TYPE VALUE -00000004 R_ARM_PC24 ExeStart - -RELOCATION RECORDS FOR [ExeStart]: -OFFSET TYPE VALUE -0000001c R_ARM_PC24 ExeStart -00000038 R_ARM_ABS32 start_of_compressed -0000003c R_ARM_ABS32 compressed_length -00000040 R_ARM_ABS32 start_of_uncompressed -00000044 R_ARM_ABS32 uncompressed_length -00000058 R_ARM_ABS32 original_entry - -RELOCATION RECORDS FOR [Unfilter_0x50]: -OFFSET TYPE VALUE -00000030 R_ARM_ABS32 filter_buffer_start -00000034 R_ARM_ABS32 filter_buffer_end - -RELOCATION RECORDS FOR [Relocs]: -OFFSET TYPE VALUE -0000003c R_ARM_ABS32 start_of_relocs - -RELOCATION RECORDS FOR [Imports]: -OFFSET TYPE VALUE -0000000e R_ARM_THM_CALL .real_start_ofImports -00000028 R_ARM_THM_CALL .real_start_ofImports -00000030 R_ARM_THM_CALL .real_start_ofImports -0000005c R_ARM_THM_CALL .real_start_ofImports -00000078 R_ARM_ABS32 start_of_imports -0000007c R_ARM_ABS32 start_of_dll_names - -RELOCATION RECORDS FOR [Call2B]: -OFFSET TYPE VALUE -00000000 R_ARM_THM_CALL .ucl_nrv2b_decompress_8 - -RELOCATION RECORDS FOR [Call2E]: -OFFSET TYPE VALUE -00000000 R_ARM_THM_CALL .ucl_nrv2e_decompress_8 - -RELOCATION RECORDS FOR [CallLZMA]: -OFFSET TYPE VALUE -0000001c R_ARM_THM_CALL .real_start_ofLZMA_DECODE -00000024 R_ARM_ABS32 lzma_u_len -00000028 R_ARM_ABS32 lzma_stack_adjust -0000002c R_ARM_ABS32 lzma_c_len -00000030 R_ARM_ABS32 lzma_properties diff --git a/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump b/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump index a8023754..e3a7ab4e 100644 --- a/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump +++ b/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump @@ -109,6 +109,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +000000bc R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v5a-linux.elf-entry.bin.dump b/src/stub/tmp/arm.v5a-linux.elf-entry.bin.dump index 4b877fed..231d7259 100644 --- a/src/stub/tmp/arm.v5a-linux.elf-entry.bin.dump +++ b/src/stub/tmp/arm.v5a-linux.elf-entry.bin.dump @@ -113,6 +113,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +000000b8 R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v5a-linux.elf-fold.map b/src/stub/tmp/arm.v5a-linux.elf-fold.map index 4ee350be..f0df115d 100644 --- a/src/stub/tmp/arm.v5a-linux.elf-fold.map +++ b/src/stub/tmp/arm.v5a-linux.elf-fold.map @@ -9,13 +9,14 @@ Linker script and memory map TARGET(elf32-littlearm) 0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc) -.text 0x0000000000008080 0xb44 +.text 0x0000000000008080 0xb4c *(.text) .text 0x0000000000008080 0x3ac tmp/arm.v5a-linux.elf-fold.o 0x0000000000008348 munmap 0x00000000000083b0 get_sys_munmap 0x000000000000830c getpid 0x0000000000008334 readlink + 0x00000000000083d0 __udivsi3 0x000000000000838c mmap 0x0000000000008370 __clear_cache 0x00000000000083b8 mmap_privanon @@ -29,18 +30,18 @@ TARGET(elf32-littlearm) 0x00000000000083d0 div10 0x000000000000835c mprotect 0x00000000000082e4 close - .text 0x000000000000842c 0x798 tmp/armel-linux.elf-main.o + .text 0x000000000000842c 0x7a0 tmp/armel-linux.elf-main.o 0x000000000000844c get_page_mask - 0x0000000000008a90 upx_main + 0x0000000000008a98 upx_main *(.data) - .data 0x0000000000008bc4 0x0 tmp/arm.v5a-linux.elf-fold.o - .data 0x0000000000008bc4 0x0 tmp/armel-linux.elf-main.o + .data 0x0000000000008bcc 0x0 tmp/arm.v5a-linux.elf-fold.o + .data 0x0000000000008bcc 0x0 tmp/armel-linux.elf-main.o .data -.bss 0x0000000000008bc4 0x0 - .bss 0x0000000000008bc4 0x0 tmp/arm.v5a-linux.elf-fold.o - .bss 0x0000000000008bc4 0x0 tmp/armel-linux.elf-main.o +.bss 0x0000000000008bcc 0x0 + .bss 0x0000000000008bcc 0x0 tmp/arm.v5a-linux.elf-fold.o + .bss 0x0000000000008bcc 0x0 tmp/armel-linux.elf-main.o LOAD tmp/arm.v5a-linux.elf-fold.o LOAD tmp/armel-linux.elf-main.o OUTPUT(tmp/arm.v5a-linux.elf-fold.bin elf32-littlearm) diff --git a/src/stub/tmp/arm.v5a-linux.kernel.vmlinux.bin.dump b/src/stub/tmp/arm.v5a-linux.kernel.vmlinux.bin.dump index afd4d1ad..c6889abe 100644 --- a/src/stub/tmp/arm.v5a-linux.kernel.vmlinux.bin.dump +++ b/src/stub/tmp/arm.v5a-linux.kernel.vmlinux.bin.dump @@ -136,6 +136,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +0000008c R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v5a-linux.kernel.vmlinuz.bin.dump b/src/stub/tmp/arm.v5a-linux.kernel.vmlinuz.bin.dump index afd4d1ad..c6889abe 100644 --- a/src/stub/tmp/arm.v5a-linux.kernel.vmlinuz.bin.dump +++ b/src/stub/tmp/arm.v5a-linux.kernel.vmlinuz.bin.dump @@ -136,6 +136,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +0000008c R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v5a-linux.shlib-init.bin.dump b/src/stub/tmp/arm.v5a-linux.shlib-init.bin.dump index a4f4bf61..c83eddc1 100644 --- a/src/stub/tmp/arm.v5a-linux.shlib-init.bin.dump +++ b/src/stub/tmp/arm.v5a-linux.shlib-init.bin.dump @@ -109,6 +109,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +000000b8 R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm.v5t-linux.shlib-init.bin.dump b/src/stub/tmp/arm.v5t-linux.shlib-init.bin.dump index 2d5427f3..3a79068d 100644 --- a/src/stub/tmp/arm.v5t-linux.shlib-init.bin.dump +++ b/src/stub/tmp/arm.v5t-linux.shlib-init.bin.dump @@ -15,7 +15,7 @@ Idx Name Size VMA LMA File off Algn Flags 10 ELFMAINY 03e 0 0 01290 2**0 CONTENTS 11 ELFMAINZ 0184 0 0 012d0 2**2 CONTENTS SYMBOL TABLE: -00000000 l ELFMAINX 0 .real_start_ofELFMAINX +00000082 l F ELFMAINX 0 L610 00000000 l d NRV2E 0 NRV2E 00000000 l d NRV2D 0 NRV2D 00000000 l d NRV2B 0 NRV2B @@ -29,7 +29,7 @@ SYMBOL TABLE: 00000000 l d NRV_TAIL 0 NRV_TAIL 00000000 l d LZMA_DEC30 0 LZMA_DEC30 00000000 l d ELFMAINY 0 ELFMAINY -00000000 g ELFMAINX 0 _start +00000000 g F ELFMAINX 0 _start 00000000 g F NRV2E 013c ucl_nrv2e_decompress_8 00000000 g F NRV2D 0128 ucl_nrv2d_decompress_8 00000000 g F NRV2B 0ec ucl_nrv2b_decompress_8 @@ -39,7 +39,7 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE 00000034 R_ARM_THM_CALL .real_start_ofELFMAINZ -0000004c R_ARM_THM_CALL .real_start_ofELFMAINX +0000004c R_ARM_THM_CALL L610 00000090 R_ARM_THM_CALL .real_start_ofELFMAINZ 00000096 R_ARM_THM_CALL .real_start_ofELFMAINZ 0000009c R_ARM_THM_CALL .real_start_ofELFMAINZ @@ -115,6 +115,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +000000b8 R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm64-darwin.macho-entry.bin.dump b/src/stub/tmp/arm64-darwin.macho-entry.bin.dump index 4522232e..40d387ea 100644 --- a/src/stub/tmp/arm64-darwin.macho-entry.bin.dump +++ b/src/stub/tmp/arm64-darwin.macho-entry.bin.dump @@ -10,10 +10,10 @@ Idx Name Size VMA LMA File off Algn 5 NRV_TAIL 0 0 0 0478 2**0 CONTENTS 6 LZMA_ELF00 010c 0 0 0478 2**0 CONTENTS 7 LZMA_DEC20 0968 0 0 0584 2**0 CONTENTS - 8 LZMA_DEC10 049c 0 0 0eec 2**0 CONTENTS - 9 LZMA_DEC30 0 0 0 01388 2**0 CONTENTS - 10 MACHMAINY 0 0 0 01388 2**0 CONTENTS - 11 MACHMAINZ 0150 0 0 01388 2**0 CONTENTS + 8 LZMA_DEC10 04a0 0 0 0eec 2**0 CONTENTS + 9 LZMA_DEC30 0 0 0 0138c 2**0 CONTENTS + 10 MACHMAINY 0 0 0 0138c 2**0 CONTENTS + 11 MACHMAINZ 0150 0 0 0138c 2**0 CONTENTS SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30 0000000000000000 l d MACHMAINZ 0 MACHMAINZ diff --git a/src/stub/tmp/arm64-linux.elf-entry.bin.dump b/src/stub/tmp/arm64-linux.elf-entry.bin.dump index e523e186..a3ae3b47 100644 --- a/src/stub/tmp/arm64-linux.elf-entry.bin.dump +++ b/src/stub/tmp/arm64-linux.elf-entry.bin.dump @@ -10,10 +10,10 @@ Idx Name Size VMA LMA File off Algn 5 NRV2B 0144 0 0 0334 2**0 CONTENTS 6 LZMA_ELF00 010c 0 0 0478 2**0 CONTENTS 7 LZMA_DEC20 0968 0 0 0584 2**0 CONTENTS - 8 LZMA_DEC10 049c 0 0 0eec 2**0 CONTENTS - 9 LZMA_DEC30 0 0 0 01388 2**0 CONTENTS - 10 ELFMAINY 03e 0 0 01388 2**0 CONTENTS - 11 ELFMAINZ 0138 0 0 013c8 2**2 CONTENTS + 8 LZMA_DEC10 04a0 0 0 0eec 2**0 CONTENTS + 9 LZMA_DEC30 0 0 0 0138c 2**0 CONTENTS + 10 ELFMAINY 03e 0 0 0138c 2**0 CONTENTS + 11 ELFMAINZ 0138 0 0 013cc 2**2 CONTENTS SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30 0000000000000000 l d ELFMAINZ 0 ELFMAINZ diff --git a/src/stub/tmp/arm64-linux.shlib-init.bin.dump b/src/stub/tmp/arm64-linux.shlib-init.bin.dump index cc66bce4..e3bca400 100644 --- a/src/stub/tmp/arm64-linux.shlib-init.bin.dump +++ b/src/stub/tmp/arm64-linux.shlib-init.bin.dump @@ -10,13 +10,13 @@ Idx Name Size VMA LMA File off Algn 5 NRV2B 0144 0 0 033c 2**0 CONTENTS 6 LZMA_ELF00 010c 0 0 0480 2**0 CONTENTS 7 LZMA_DEC20 0968 0 0 058c 2**0 CONTENTS - 8 LZMA_DEC10 049c 0 0 0ef4 2**0 CONTENTS - 9 LZMA_DEC30 0 0 0 01390 2**0 CONTENTS - 10 ELFMAINY 03e 0 0 01390 2**0 CONTENTS - 11 ELFMAINZ 0 0 0 013ce 2**0 CONTENTS - 12 ELFMAJNZ 024 0 0 013ce 2**0 CONTENTS - 13 ANDMAJNZ 04 0 0 013f2 2**0 CONTENTS - 14 ELFMAKNZ 02a0 0 0 013f6 2**0 CONTENTS + 8 LZMA_DEC10 04a0 0 0 0ef4 2**0 CONTENTS + 9 LZMA_DEC30 0 0 0 01394 2**0 CONTENTS + 10 ELFMAINY 03e 0 0 01394 2**0 CONTENTS + 11 ELFMAINZ 0 0 0 013d2 2**0 CONTENTS + 12 ELFMAJNZ 024 0 0 013d2 2**0 CONTENTS + 13 ANDMAJNZ 04 0 0 013f6 2**0 CONTENTS + 14 ELFMAKNZ 02a0 0 0 013fa 2**0 CONTENTS SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30 0000000000000000 l d ELFMAINZ 0 ELFMAINZ diff --git a/src/stub/tmp/arm64-win64.pe.bin.dump b/src/stub/tmp/arm64-win64.pe.bin.dump index acc34f1c..f500d67a 100644 --- a/src/stub/tmp/arm64-win64.pe.bin.dump +++ b/src/stub/tmp/arm64-win64.pe.bin.dump @@ -9,9 +9,9 @@ Idx Name Size VMA LMA File off Algn 4 LZMA_HEAD 0 0 0 0470 2**0 CONTENTS 5 LZMA_ELF00 010c 0 0 0470 2**0 CONTENTS 6 LZMA_DEC20 0968 0 0 057c 2**0 CONTENTS - 7 LZMA_DEC10 049c 0 0 0ee4 2**0 CONTENTS - 8 LZMA_DEC30 0 0 0 01380 2**0 CONTENTS - 9 LZMA_TAIL 0 0 0 01380 2**0 CONTENTS + 7 LZMA_DEC10 04a0 0 0 0ee4 2**0 CONTENTS + 8 LZMA_DEC30 0 0 0 01384 2**0 CONTENTS + 9 LZMA_TAIL 0 0 0 01384 2**0 CONTENTS SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30 0000000000000000 l d NRV_HEAD 0 NRV_HEAD diff --git a/src/stub/tmp/armeb.v4a-linux.elf-entry.bin.dump b/src/stub/tmp/armeb.v4a-linux.elf-entry.bin.dump index d480a67d..b17f765a 100644 --- a/src/stub/tmp/armeb.v4a-linux.elf-entry.bin.dump +++ b/src/stub/tmp/armeb.v4a-linux.elf-entry.bin.dump @@ -113,6 +113,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +000000a8 R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/armeb.v4a-linux.elf-fold.map b/src/stub/tmp/armeb.v4a-linux.elf-fold.map index 9f6694cd..002f6b89 100644 --- a/src/stub/tmp/armeb.v4a-linux.elf-fold.map +++ b/src/stub/tmp/armeb.v4a-linux.elf-fold.map @@ -9,13 +9,14 @@ Linker script and memory map TARGET(elf32-bigarm) 0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc) -.text 0x0000000000008080 0xaa8 +.text 0x0000000000008080 0xab0 *(.text) .text 0x0000000000008080 0x30c tmp/armeb.v4a-linux.elf-fold.o 0x00000000000082dc munmap 0x0000000000008310 get_sys_munmap 0x00000000000082c4 getpid 0x00000000000082d4 readlink + 0x0000000000008330 __udivsi3 0x00000000000082f8 mmap 0x00000000000082ec __clear_cache 0x0000000000008318 mmap_privanon @@ -29,18 +30,18 @@ TARGET(elf32-bigarm) 0x0000000000008330 div10 0x00000000000082e4 mprotect 0x00000000000082b4 close - .text 0x000000000000838c 0x79c tmp/armeb.v4a-linux.elf-main.o + .text 0x000000000000838c 0x7a4 tmp/armeb.v4a-linux.elf-main.o 0x00000000000083ac get_page_mask - 0x00000000000089f4 upx_main + 0x00000000000089fc upx_main *(.data) - .data 0x0000000000008b28 0x0 tmp/armeb.v4a-linux.elf-fold.o - .data 0x0000000000008b28 0x0 tmp/armeb.v4a-linux.elf-main.o + .data 0x0000000000008b30 0x0 tmp/armeb.v4a-linux.elf-fold.o + .data 0x0000000000008b30 0x0 tmp/armeb.v4a-linux.elf-main.o .data -.bss 0x0000000000008b28 0x0 - .bss 0x0000000000008b28 0x0 tmp/armeb.v4a-linux.elf-fold.o - .bss 0x0000000000008b28 0x0 tmp/armeb.v4a-linux.elf-main.o +.bss 0x0000000000008b30 0x0 + .bss 0x0000000000008b30 0x0 tmp/armeb.v4a-linux.elf-fold.o + .bss 0x0000000000008b30 0x0 tmp/armeb.v4a-linux.elf-main.o LOAD tmp/armeb.v4a-linux.elf-fold.o LOAD tmp/armeb.v4a-linux.elf-main.o OUTPUT(tmp/armeb.v4a-linux.elf-fold.bin elf32-bigarm) diff --git a/src/stub/tmp/armeb.v5a-linux.kernel.vmlinux.bin.dump b/src/stub/tmp/armeb.v5a-linux.kernel.vmlinux.bin.dump index ec9967af..35305028 100644 --- a/src/stub/tmp/armeb.v5a-linux.kernel.vmlinux.bin.dump +++ b/src/stub/tmp/armeb.v5a-linux.kernel.vmlinux.bin.dump @@ -136,6 +136,7 @@ OFFSET TYPE VALUE 00000008 R_ARM_PC24 LZMA_ELF00 0000004c R_ARM_PC24 LZMA_ELF00 00000080 R_ARM_PC24 LZMA_ELF00 +0000008c R_ARM_PC24 LZMA_ELF00 RELOCATION RECORDS FOR [LZMA_DEC20]: OFFSET TYPE VALUE