-
Notifications
You must be signed in to change notification settings - Fork 1
/
SJIS.js
56 lines (52 loc) · 76.2 KB
/
SJIS.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const map1 = "00000000000100010002000200030003000400040005000500060006000700070008000800090009000a000a000b000b000c000c000d000d000e000e000f000f00100010001100110012001200130013001400140015001500160016001700170018001800190019001a001a001b001b001c001c001d001d001e001e001f001f00200020002100210022002200230023002400240025002500260026002700270028002800290029002a002a002b002b002c002c002d002d002e002e002f002f00300030003100310032003200330033003400340035003500360036003700370038003800390039003a003a003b003b003c003c003d003d003e003e003f003f00400040004100410042004200430043004400440045004500460046004700470048004800490049004a004a004b004b004c004c004d004d004e004e004f004f00500050005100510052005200530053005400540055005500560056005700570058005800590059005a005a005b005b005c005c005d005d005e005e005f005f00600060006100610062006200630063006400640065006500660066006700670068006800690069006a006a006b006b006c006c006d006d006e006e006f006f00700070007100710072007200730073007400740075007500760076007700770078007800790079007a007a007b007b007c007c007d007d007e007e007f007f0080008000a1ff6100a2ff6200a3ff6300a4ff6400a5ff6500a6ff6600a7ff6700a8ff6800a9ff6900aaff6a00abff6b00acff6c00adff6d00aeff6e00afff6f00b0ff7000b1ff7100b2ff7200b3ff7300b4ff7400b5ff7500b6ff7600b7ff7700b8ff7800b9ff7900baff7a00bbff7b00bcff7c00bdff7d00beff7e00bfff7f00c0ff8000c1ff8100c2ff8200c3ff8300c4ff8400c5ff8500c6ff8600c7ff8700c8ff8800c9ff8900caff8a00cbff8b00ccff8c00cdff8d00ceff8e00cfff8f00d0ff9000d1ff9100d2ff9200d3ff9300d4ff9400d5ff9500d6ff9600d7ff9700d8ff9800d9ff9900daff9a00dbff9b00dcff9c00ddff9d00deff9e00dfff9f";
const map2 = "8140300081413001814230028143ff0c8144ff0e814530fb8146ff1a8147ff1b8148ff1f8149ff01814a309b814b309c814c00b4814dff40814e00a8814fff3e8150ffe38151ff3f815230fd815330fe8154309d8155309e8156300381574edd8158300581593006815a3007815b30fc815c2015815d2010815eff0f815fff3c8160ff5e816122258162ff5c816320268164202581652018816620198167201c8168201d8169ff08816aff09816b3014816c3015816dff3b816eff3d816fff5b8170ff5d81713008817230098173300a8174300b8175300c8176300d8177300e8178300f81793010817a3011817bff0b817cff0d817d00b1817e00d7818000f78181ff1d818222608183ff1c8184ff1e81852266818622678187221e8188223481892642818a2640818b00b0818c2032818d2033818e2103818fffe58190ff048191ffe08192ffe18193ff058194ff038195ff068196ff0a8197ff20819800a781992606819a2605819b25cb819c25cf819d25ce819e25c7819f25c681a025a181a125a081a225b381a325b281a425bd81a525bc81a6203b81a7301281a8219281a9219081aa219181ab219381ac301381b8220881b9220b81ba228681bb228781bc228281bd228381be222a81bf222981c8222781c9222881caffe281cb21d281cc21d481cd220081ce220381da222081db22a581dc231281dd220281de220781df226181e0225281e1226a81e2226b81e3221a81e4223d81e5221d81e6223581e7222b81e8222c81f0212b81f1203081f2266f81f3266d81f4266a81f5202081f6202181f700b681fc25ef824fff108250ff118251ff128252ff138253ff148254ff158255ff168256ff178257ff188258ff198260ff218261ff228262ff238263ff248264ff258265ff268266ff278267ff288268ff298269ff2a826aff2b826bff2c826cff2d826dff2e826eff2f826fff308270ff318271ff328272ff338273ff348274ff358275ff368276ff378277ff388278ff398279ff3a8281ff418282ff428283ff438284ff448285ff458286ff468287ff478288ff488289ff49828aff4a828bff4b828cff4c828dff4d828eff4e828fff4f8290ff508291ff518292ff528293ff538294ff548295ff558296ff568297ff578298ff588299ff59829aff5a829f304182a0304282a1304382a2304482a3304582a4304682a5304782a6304882a7304982a8304a82a9304b82aa304c82ab304d82ac304e82ad304f82ae305082af305182b0305282b1305382b2305482b3305582b4305682b5305782b6305882b7305982b8305a82b9305b82ba305c82bb305d82bc305e82bd305f82be306082bf306182c0306282c1306382c2306482c3306582c4306682c5306782c6306882c7306982c8306a82c9306b82ca306c82cb306d82cc306e82cd306f82ce307082cf307182d0307282d1307382d2307482d3307582d4307682d5307782d6307882d7307982d8307a82d9307b82da307c82db307d82dc307e82dd307f82de308082df308182e0308282e1308382e2308482e3308582e4308682e5308782e6308882e7308982e8308a82e9308b82ea308c82eb308d82ec308e82ed308f82ee309082ef309182f0309282f13093834030a1834130a2834230a3834330a4834430a5834530a6834630a7834730a8834830a9834930aa834a30ab834b30ac834c30ad834d30ae834e30af834f30b0835030b1835130b2835230b3835330b4835430b5835530b6835630b7835730b8835830b9835930ba835a30bb835b30bc835c30bd835d30be835e30bf835f30c0836030c1836130c2836230c3836330c4836430c5836530c6836630c7836730c8836830c9836930ca836a30cb836b30cc836c30cd836d30ce836e30cf836f30d0837030d1837130d2837230d3837330d4837430d5837530d6837630d7837730d8837830d9837930da837a30db837b30dc837c30dd837d30de837e30df838030e0838130e1838230e2838330e3838430e4838530e5838630e6838730e7838830e8838930e9838a30ea838b30eb838c30ec838d30ed838e30ee838f30ef839030f0839130f1839230f2839330f3839430f4839530f5839630f6839f039183a0039283a1039383a2039483a3039583a4039683a5039783a6039883a7039983a8039a83a9039b83aa039c83ab039d83ac039e83ad039f83ae03a083af03a183b003a383b103a483b203a583b303a683b403a783b503a883b603a983bf03b183c003b283c103b383c203b483c303b583c403b683c503b783c603b883c703b983c803ba83c903bb83ca03bc83cb03bd83cc03be83cd03bf83ce03c083cf03c183d003c383d103c483d203c583d303c683d403c783d503c883d603c984400410844104118442041284430413844404148445041584460401844704168448041784490418844a0419844b041a844c041b844d041c844e041d844f041e8450041f845104208452042184530422845404238455042484560425845704268458042784590428845a0429845b042a845c042b845d042c845e042d845f042e8460042f84700430847104318472043284730433847404348475043584760451847704368478043784790438847a0439847b043a847c043b847d043c847e043d8480043e8481043f8482044084830441848404428485044384860444848704458488044684890447848a0448848b0449848c044a848d044b848e044c848f044d8490044e8491044f849f250084a0250284a1250c84a2251084a3251884a4251484a5251c84a6252c84a7252484a8253484a9253c84aa250184ab250384ac250f84ad251384ae251b84af251784b0252384b1253384b2252b84b3253b84b4254b84b5252084b6252f84b7252884b8253784b9253f84ba251d84bb253084bc252584bd253884be254287402460874124618742246287432463874424648745246587462466874724678748246887492469874a246a874b246b874c246c874d246d874e246e874f246f87502470875124718752247287532473875421608755216187562162875721638758216487592165875a2166875b2167875c2168875d2169875f334987603314876133228762334d8763331887643327876533038766333687673351876833578769330d876a3326876b3323876c332b876d334a876e333b876f339c8770339d8771339e8772338e8773338f877433c4877533a1877e337b8780301d8781301f87822116878333cd87842121878532a4878632a5878732a6878832a7878932a8878a3231878b3232878c3239878d337e878e337d878f337c87902252879122618792222b8793222e879422118795221a879622a5879722208798221f879922bf879a2235879b2229879c222a889f4e9c88a0551688a15a0388a2963f88a354c088a4611b88a5632888a659f688a7902288a8847588a9831c88aa7a5088ab60aa88ac63e188ad6e2588ae65ed88af846688b082a688b19bf588b2689388b3572788b465a188b5627188b65b9b88b759d088b8867b88b998f488ba7d6288bb7dbe88bc9b8e88bd621688be7c9f88bf88b788c05b8988c15eb588c2630988c3669788c4684888c595c788c6978d88c7674f88c84ee588c94f0a88ca4f4d88cb4f9d88cc504988cd56f288ce593788cf59d488d05a0188d15c0988d260df88d3610f88d4617088d5661388d6690588d770ba88d8754f88d9757088da79fb88db7dad88dc7def88dd80c388de840e88df886388e08b0288e1905588e2907a88e3533b88e44e9588e54ea588e657df88e780b288e890c188e978ef88ea4e0088eb58f188ec6ea288ed903888ee7a3288ef832888f0828b88f19c2f88f2514188f3537088f454bd88f554e188f656e088f759fb88f85f1588f998f288fa6deb88fb80e488fc852d8940966289419670894296a0894397fb8944540b894553f389465b87894770cf89487fbd89498fc2894a96e8894b536f894c9d5c894d7aba894e4e11894f7893895081fc89516e26895256188953550489546b1d8955851a89569c3b895759e5895853a989596d66895a74dc895b958f895c5642895d4e91895e904b895f96f28960834f8961990c896253e1896355b689645b3089655f7189666620896766f38968680489696c38896a6cf3896b6d29896c745b896d76c8896e7a4e896f9834897082f18971885b89728a60897392ed89746db2897575ab897676ca897799c5897860a689798b01897a8d8a897b95b2897c698e897d53ad897e518689805712898158308982594489835bb489845ef689856028898663a9898763f489886cbf89896f14898a708e898b7114898c7159898d71d5898e733f898f7e0189908276899182d189928597899390608994925b89959d1b89965869899765bc89986c5a89997525899a51f9899b592e899c5965899d5f80899e5fdc899f62bc89a065fa89a16a2a89a26b2789a36bb489a4738b89a57fc189a6895689a79d2c89a89d0e89a99ec489aa5ca189ab6c9689ac837b89ad510489ae5c4b89af61b689b081c689b1687689b2726189b34e5989b44ffa89b5537889b6606989b76e2989b87a4f89b997f389ba4e0b89bb531689bc4eee89bd4f5589be4f3d89bf4fa189c04f7389c152a089c253ef89c3560989c4590f89c55ac189c65bb689c75be189c879d189c9668789ca679c89cb67b689cc6b4c89cd6cb389ce706b89cf73c289d0798d89d179be89d27a3c89d37b8789d482b189d582db89d6830489d7837789d883ef89d983d389da876689db8ab289dc562989dd8ca889de8fe689df904e89e0971e89e1868a89e24fc489e35ce889e4621189e5725989e6753b89e781e589e882bd89e986fe89ea8cc089eb96c589ec991389ed99d589ee4ecb89ef4f1a89f089e389f156de89f2584a89f358ca89f45efb89f55feb89f6602a89f7609489f8606289f961d089fa621289fb62d089fc65398a409b418a4166668a4268b08a436d778a4470708a45754c8a4676868a477d758a4882a58a4987f98a4a958b8a4b968e8a4c8c9d8a4d51f18a4e52be8a4f59168a5054b38a515bb38a525d168a5361688a5469828a556daf8a56788d8a5784cb8a5888578a598a728a5a93a78a5b9ab88a5c6d6c8a5d99a88a5e86d98a5f57a38a6067ff8a6186ce8a62920e8a6352838a6456878a6554048a665ed38a6762e18a6864b98a69683c8a6a68388a6b6bbb8a6c73728a6d78ba8a6e7a6b8a6f899a8a7089d28a718d6b8a728f038a7390ed8a7495a38a7596948a7697698a775b668a785cb38a79697d8a7a984d8a7b984e8a7c639b8a7d7b208a7e6a2b8a806a7f8a8168b68a829c0d8a836f5f8a8452728a85559d8a8660708a8762ec8a886d3b8a896e078a8a6ed18a8b845b8a8c89108a8d8f448a8e4e148a8f9c398a9053f68a91691b8a926a3a8a9397848a94682a8a95515c8a967ac38a9784b28a9891dc8a99938c8a9a565b8a9b9d288a9c68228a9d83058a9e84318a9f7ca58aa052088aa182c58aa274e68aa34e7e8aa44f838aa551a08aa65bd28aa7520a8aa852d88aa952e78aaa5dfb8aab559a8aac582a8aad59e68aae5b8c8aaf5b988ab05bdb8ab15e728ab25e798ab360a38ab4611f8ab561638ab661be8ab763db8ab865628ab967d18aba68538abb68fa8abc6b3e8abd6b538abe6c578abf6f228ac06f978ac16f458ac274b08ac375188ac476e38ac5770b8ac67aff8ac77ba18ac87c218ac97de98aca7f368acb7ff08acc809d8acd82668ace839e8acf89b38ad08acc8ad18cab8ad290848ad394518ad495938ad595918ad695a28ad796658ad897d38ad999288ada82188adb4e388adc542b8add5cb88ade5dcc8adf73a98ae0764c8ae1773c8ae25ca98ae37feb8ae48d0b8ae596c18ae698118ae798548ae898588ae94f018aea4f0e8aeb53718aec559c8aed56688aee57fa8aef59478af05b098af15bc48af25c908af35e0c8af45e7e8af55fcc8af663ee8af7673a8af865d78af965e28afa671f8afb68cb8afc68c48b406a5f8b415e308b426bc58b436c178b446c7d8b45757f8b4679488b475b638b487a008b497d008b4a5fbd8b4b898f8b4c8a188b4d8cb48b4e8d778b4f8ecc8b508f1d8b5198e28b529a0e8b539b3c8b544e808b55507d8b5651008b5759938b585b9c8b59622f8b5a62808b5b64ec8b5c6b3a8b5d72a08b5e75918b5f79478b607fa98b6187fb8b628abc8b638b708b6463ac8b6583ca8b6697a08b6754098b6854038b6955ab8b6a68548b6b6a588b6c8a708b6d78278b6e67758b6f9ecd8b7053748b715ba28b72811a8b7386508b7490068b754e188b764e458b774ec78b784f118b7953ca8b7a54388b7b5bae8b7c5f138b7d60258b7e65518b80673d8b816c428b826c728b836ce38b8470788b8574038b867a768b877aae8b887b088b897d1a8b8a7cfe8b8b7d668b8c65e78b8d725b8b8e53bb8b8f5c458b905de88b9162d28b9262e08b9363198b946e208b95865a8b968a318b978ddd8b9892f88b996f018b9a79a68b9b9b5a8b9c4ea88b9d4eab8b9e4eac8b9f4f9b8ba04fa08ba150d18ba251478ba37af68ba451718ba551f68ba653548ba753218ba8537f8ba953eb8baa55ac8bab58838bac5ce18bad5f378bae5f4a8baf602f8bb060508bb1606d8bb2631f8bb365598bb46a4b8bb56cc18bb672c28bb772ed8bb877ef8bb980f88bba81058bbb82088bbc854e8bbd90f78bbe93e18bbf97ff8bc099578bc19a5a8bc24ef08bc351dd8bc45c2d8bc566818bc6696d8bc75c408bc866f28bc969758bca73898bcb68508bcc7c818bcd50c58bce52e48bcf57478bd05dfe8bd193268bd265a48bd36b238bd46b3d8bd574348bd679818bd779bd8bd87b4b8bd97dca8bda82b98bdb83cc8bdc887f8bdd895f8bde8b398bdf8fd18be091d18be1541f8be292808be34e5d8be450368be553e58be6533a8be772d78be873968be977e98bea82e68beb8eaf8bec99c68bed99c88bee99d28bef51778bf0611a8bf1865e8bf255b08bf37a7a8bf450768bf55bd38bf690478bf796858bf84e328bf96adb8bfa91e78bfb5c518bfc5c488c4063988c417a9f8c426c938c4397748c448f618c457aaa8c46718a8c4796888c487c828c4968178c4a7e708c4b68518c4c936c8c4d52f28c4e541b8c4f85ab8c508a138c517fa48c528ecd8c5390e18c5453668c5588888c5679418c574fc28c5850be8c5952118c5a51448c5b55538c5c572d8c5d73ea8c5e578b8c5f59518c605f628c615f848c6260758c6361768c6461678c6561a98c6663b28c67643a8c68656c8c69666f8c6a68428c6b6e138c6c75668c6d7a3d8c6e7cfb8c6f7d4c8c707d998c717e4b8c727f6b8c73830e8c74834a8c7586cd8c768a088c778a638c788b668c798efd8c7a981a8c7b9d8f8c7c82b88c7d8fce8c7e9be88c8052878c81621f8c8264838c836fc08c8496998c8568418c8650918c876b208c886c7a8c896f548c8a7a748c8b7d508c8c88408c8d8a238c8e67088c8f4ef68c9050398c9150268c9250658c93517c8c9452388c9552638c9655a78c97570f8c9858058c995acc8c9a5efa8c9b61b28c9c61f88c9d62f38c9e63728c9f691c8ca06a298ca1727d8ca272ac8ca3732e8ca478148ca5786f8ca67d798ca7770c8ca880a98ca9898b8caa8b198cab8ce28cac8ed28cad90638cae93758caf967a8cb098558cb19a138cb29e788cb351438cb4539f8cb553b38cb65e7b8cb75f268cb86e1b8cb96e908cba73848cbb73fe8cbc7d438cbd82378cbe8a008cbf8afa8cc096508cc14e4e8cc2500b8cc353e48cc4547c8cc556fa8cc659d18cc75b648cc85df18cc95eab8cca5f278ccb62388ccc65458ccd67af8cce6e568ccf72d08cd07cca8cd188b48cd280a18cd380e18cd483f08cd5864e8cd68a878cd78de88cd892378cd996c78cda98678cdb9f138cdc4e948cdd4e928cde4f0d8cdf53488ce054498ce1543e8ce25a2f8ce35f8c8ce45fa18ce5609f8ce668a78ce76a8e8ce8745a8ce978818cea8a9e8ceb8aa48cec8b778ced91908cee4e5e8cef9bc98cf04ea48cf14f7c8cf24faf8cf350198cf450168cf551498cf6516c8cf7529f8cf852b98cf952fe8cfa539a8cfb53e38cfc54118d40540e8d4155898d4257518d4357a28d44597d8d455b548d465b5d8d475b8f8d485de58d495de78d4a5df78d4b5e788d4c5e838d4d5e9a8d4e5eb78d4f5f188d5060528d51614c8d5262978d5362d88d5463a78d55653b8d5666028d5766438d5866f48d59676d8d5a68218d5b68978d5c69cb8d5d6c5f8d5e6d2a8d5f6d698d606e2f8d616e9d8d6275328d6376878d64786c8d657a3f8d667ce08d677d058d687d188d697d5e8d6a7db18d6b80158d6c80038d6d80af8d6e80b18d6f81548d70818f8d71822a8d7283528d73884c8d7488618d758b1b8d768ca28d778cfc8d7890ca8d7991758d7a92718d7b783f8d7c92fc8d7d95a48d7e964d8d8098058d8199998d829ad88d839d3b8d84525b8d8552ab8d8653f78d8754088d8858d58d8962f78d8a6fe08d8b8c6a8d8c8f5f8d8d9eb98d8e514b8d8f523b8d90544a8d9156fd8d927a408d9391778d949d608d959ed28d9673448d976f098d9881708d9975118d9a5ffd8d9b60da8d9c9aa88d9d72db8d9e8fbc8d9f6b648da098038da14eca8da256f08da357648da458be8da55a5a8da660688da761c78da8660f8da966068daa68398dab68b18dac6df78dad75d58dae7d3a8daf826e8db09b428db14e9b8db24f508db353c98db455068db55d6f8db65de68db75dee8db867fb8db96c998dba74738dbb78028dbc8a508dbd93968dbe88df8dbf57508dc05ea78dc1632b8dc250b58dc350ac8dc4518d8dc567008dc654c98dc7585e8dc859bb8dc95bb08dca5f698dcb624d8dcc63a18dcd683d8dce6b738dcf6e088dd0707d8dd191c78dd272808dd378158dd478268dd5796d8dd6658e8dd77d308dd883dc8dd988c18dda8f098ddb969b8ddc52648ddd57288dde67508ddf7f6a8de08ca18de151b48de257428de3962a8de4583a8de5698a8de680b48de754b28de85d0e8de957fc8dea78958deb9dfa8dec4f5c8ded524a8dee548b8def643e8df066288df167148df267f58df37a848df47b568df57d228df6932f8df7685c8df89bad8df97b398dfa53198dfb518a8dfc52378e405bdf8e4162f68e4264ae8e4364e68e44672d8e456bba8e4685a98e4796d18e4876908e499bd68e4a634c8e4b93068e4c9bab8e4d76bf8e4e66528e4f4e098e5050988e5153c28e525c718e5360e88e5464928e5565638e56685f8e5771e68e5873ca8e5975238e5a7b978e5b7e828e5c86958e5d8b838e5e8cdb8e5f91788e6099108e6165ac8e6266ab8e636b8b8e644ed58e654ed48e664f3a8e674f7f8e68523a8e6953f88e6a53f28e6b55e38e6c56db8e6d58eb8e6e59cb8e6f59c98e7059ff8e715b508e725c4d8e735e028e745e2b8e755fd78e76601d8e7763078e78652f8e795b5c8e7a65af8e7b65bd8e7c65e88e7d679d8e7e6b628e806b7b8e816c0f8e8273458e8379498e8479c18e857cf88e867d198e877d2b8e8880a28e8981028e8a81f38e8b89968e8c8a5e8e8d8a698e8e8a668e8f8a8c8e908aee8e918cc78e928cdc8e9396cc8e9498fc8e956b6f8e964e8b8e974f3c8e984f8d8e9951508e9a5b578e9b5bfa8e9c61488e9d63018e9e66428e9f6b218ea06ecb8ea16cbb8ea2723e8ea374bd8ea475d48ea578c18ea6793a8ea7800c8ea880338ea981ea8eaa84948eab8f9e8eac6c508ead9e7f8eae5f0f8eaf8b588eb09d2b8eb17afa8eb28ef88eb35b8d8eb496eb8eb54e038eb653f18eb757f78eb859318eb95ac98eba5ba48ebb60898ebc6e7f8ebd6f068ebe75be8ebf8cea8ec05b9f8ec185008ec27be08ec350728ec467f48ec5829d8ec65c618ec7854a8ec87e1e8ec9820e8eca51998ecb5c048ecc63688ecd8d668ece659c8ecf716e8ed0793e8ed17d178ed280058ed38b1d8ed48eca8ed5906e8ed686c78ed790aa8ed8501f8ed952fa8eda5c3a8edb67538edc707c8edd72358ede914c8edf91c88ee0932b8ee182e58ee25bc28ee35f318ee460f98ee54e3b8ee653d68ee75b888ee8624b8ee967318eea6b8a8eeb72e98eec73e08eed7a2e8eee816b8eef8da38ef091528ef199968ef251128ef353d78ef4546a8ef55bff8ef663888ef76a398ef87dac8ef997008efa56da8efb53ce8efc54688f405b978f415c318f425dde8f434fee8f4461018f4562fe8f466d328f4779c08f4879cb8f497d428f4a7e4d8f4b7fd28f4c81ed8f4d821f8f4e84908f4f88468f5089728f518b908f528e748f538f2f8f5490318f55914b8f56916c8f5796c68f58919c8f594ec08f5a4f4f8f5b51458f5c53418f5d5f938f5e620e8f5f67d48f606c418f616e0b8f6273638f637e268f6491cd8f6592838f6653d48f6759198f685bbf8f696dd18f6a795d8f6b7e2e8f6c7c9b8f6d587e8f6e719f8f6f51fa8f7088538f718ff08f724fca8f735cfb8f7466258f7577ac8f767ae38f77821c8f7899ff8f7951c68f7a5faa8f7b65ec8f7c696f8f7d6b898f7e6df38f806e968f816f648f8276fe8f837d148f845de18f8590758f8691878f8798068f8851e68f89521d8f8a62408f8b66918f8c66d98f8d6e1a8f8e5eb68f8f7dd28f907f728f9166f88f9285af8f9385f78f948af88f9552a98f9653d98f9759738f985e8f8f995f908f9a60558f9b92e48f9c96648f9d50b78f9e511f8f9f52dd8fa053208fa153478fa253ec8fa354e88fa455468fa555318fa656178fa759688fa859be8fa95a3c8faa5bb58fab5c068fac5c0f8fad5c118fae5c1a8faf5e848fb05e8a8fb15ee08fb25f708fb3627f8fb462848fb562db8fb6638c8fb763778fb866078fb9660c8fba662d8fbb66768fbc677e8fbd68a28fbe6a1f8fbf6a358fc06cbc8fc16d888fc26e098fc36e588fc4713c8fc571268fc671678fc775c78fc877018fc9785d8fca79018fcb79658fcc79f08fcd7ae08fce7b118fcf7ca78fd07d398fd180968fd283d68fd3848b8fd485498fd5885d8fd688f38fd78a1f8fd88a3c8fd98a548fda8a738fdb8c618fdc8cde8fdd91a48fde92668fdf937e8fe094188fe1969c8fe297988fe34e0a8fe44e088fe54e1e8fe64e578fe751978fe852708fe957ce8fea58348feb58cc8fec5b228fed5e388fee60c58fef64fe8ff067618ff167568ff26d448ff372b68ff475738ff57a638ff684b88ff78b728ff891b88ff993208ffa56318ffb57f48ffc98fe904062ed9041690d90426b96904371ed90447e549045807790468272904789e6904898df90498755904a8fb1904b5c3b904c4f38904d4fe1904e4fb5904f550790505a2090515bdd90525be990535fc39054614e9055632f905665b09057664b905868ee9059699b905a6d78905b6df1905c7533905d75b9905e771f905f795e906079e690617d33906281e3906382af906485aa906589aa90668a3a90678eab90688f9b90699032906a91dd906b9707906c4eba906d4ec1906e5203906f5875907058ec90715c0b9072751a90735c3d9074814e90758a0a90768fc5907796639078976d90797b25907a8acf907b9808907c9162907d56f3907e53a890809017908154399082578290835e25908463a890856c349086708a9087776190887c8b90897fe0908a8870908b9042908c9154908d9310908e9318908f968f9090745e90919ac490925d0790935d6990946570909567a290968da8909796db9098636e90996749909a6919909b83c5909c9817909d96c0909e88fe909f6f8490a0647a90a15bf890a24e1690a3702c90a4755d90a5662f90a651c490a7523690a852e290a959d390aa5f8190ab602790ac621090ad653f90ae657490af661f90b0667490b168f290b2681690b36b6390b46e0590b5727290b6751f90b776db90b87cbe90b9805690ba58f090bb88fd90bc897f90bd8aa090be8a9390bf8acb90c0901d90c1919290c2975290c3975990c4658990c57a0e90c6810690c796bb90c85e2d90c960dc90ca621a90cb65a590cc661490cd679090ce77f390cf7a4d90d07c4d90d17e3e90d2810a90d38cac90d48d6490d58de190d68e5f90d778a990d8520790d962d990da63a590db644290dc629890dd8a2d90de7a8390df7bc090e08aac90e196ea90e27d7690e3820c90e4874990e54ed990e6514890e7534390e8536090e95ba390ea5c0290eb5c1690ec5ddd90ed622690ee624790ef64b090f0681390f1683490f26cc990f36d4590f46d1790f567d390f66f5c90f7714e90f8717d90f965cb90fa7a7f90fb7bad90fc7dda91407e4a91417fa89142817a9143821b91448239914585a691468a6e91478cce91488df591499078914a9077914b92ad914c9291914d9583914e9bae914f524d9150558491516f3891527136915351689154798591557e55915681b391577cce9158564c91595851915a5ca8915b63aa915c66fe915d66fd915e695a915f72d99160758f9161758e9162790e91637956916479df91657c9791667d2091677d449168860791698a34916a963b916b9061916c9f20916d50e7916e5275916f53cc917053e291715009917255aa917358ee9174594f9175723d91765b8b91775c649178531d917960e3917a60f3917b635c917c6383917d633f917e63bb918064cd918165e9918266f991835de3918469cd918569fd91866f15918771e591884e89918975e9918a76f8918b7a93918c7cdf918d7dcf918e7d9c918f806191908349919183589192846c919384bc919485fb919588c591968d70919790019198906d91999397919a971c919b9a12919c50cf919d5897919e618e919f81d391a0853591a18d0891a2902091a34fc391a4507491a5524791a6537391a7606f91a8634991a9675f91aa6e2c91ab8db391ac901f91ad4fd791ae5c5e91af8cca91b065cf91b17d9a91b2535291b3889691b4517691b563c391b65b5891b75b6b91b85c0a91b9640d91ba675191bb905c91bc4ed691bd591a91be592a91bf6c7091c08a5191c1553e91c2581591c359a591c460f091c5625391c667c191c7823591c8695591c9964091ca99c491cb9a2891cc4f5391cd580691ce5bfe91cf801091d05cb191d15e2f91d25f8591d3602091d4614b91d5623491d666ff91d76cf091d86ede91d980ce91da817f91db82d491dc888b91dd8cb891de900091df902e91e0968a91e19edb91e29bdb91e34ee391e453f091e5592791e67b2c91e7918d91e8984c91e99df991ea6edd91eb702791ec535391ed554491ee5b8591ef625891f0629e91f162d391f26ca291f36fef91f4742291f58a1791f6943891f76fc191f88afe91f9833891fa51e791fb86f891fc53ea924053e992414f469242905492438fb09244596a9245813192465dfd92477aea92488fbf924968da924a8c37924b72f8924c9c48924d6a3d924e8ab0924f4e39925053589251560692525766925362c5925463a2925565e692566b4e92576de192586e5b925970ad925a77ed925b7aef925c7baa925d7dbb925e803d925f80c6926086cb92618a959262935b926356e3926458c792655f3e926665ad9267669692686a8092696bb5926a7537926b8ac7926c5024926d77e5926e5730926f5f1b927060659271667a92726c60927375f492747a1a92757f6e927681f49277871892789045927999b3927a7bc9927b755c927c7af9927d7b51927e84c492809010928179e992827a929283833692845ae19285774092864e2d92874ef292885b9992895fe0928a62bd928b663c928c67f1928d6ce8928e866b928f887792908a3b9291914e929292f3929399d092946a17929570269296732a929782e79298845792998caf929a4e01929b5146929c51cb929d558b929e5bf5929f5e1692a05e3392a15e8192a25f1492a35f3592a45f6b92a55fb492a661f292a7631192a866a292a9671d92aa6f6e92ab725292ac753a92ad773a92ae807492af813992b0817892b1877692b28abf92b38adc92b48d8592b58df392b6929a92b7957792b8980292b99ce592ba52c592bb635792bc76f492bd671592be6c8892bf73cd92c08cc392c193ae92c2967392c36d2592c4589c92c5690e92c669cc92c78ffd92c8939a92c975db92ca901a92cb585a92cc680292cd63b492ce69fb92cf4f4392d06f2c92d167d892d28fbb92d3852692d47db492d5935492d6693f92d76f7092d8576a92d958f792da5b2c92db7d2c92dc722a92dd540a92de91e392df9db492e04ead92e14f4e92e2505c92e3507592e4524392e58c9e92e6544892e7582492e85b9a92e95e1d92ea5e9592eb5ead92ec5ef792ed5f1f92ee608c92ef62b592f0633a92f163d092f268af92f36c4092f4788792f5798e92f67a0b92f77de092f8824792f98a0292fa8ae692fb8e4492fc9013934090b89341912d934291d893439f0e93446ce593456458934664e29347657593486ef493497684934a7b1b934b9069934c93d1934d6eba934e54f2934f5fb9935064a493518f4d93528fed93539244935451789355586b9356592993575c5593585e9793596dfb935a7e8f935b751c935c8cbc935d8ee2935e985b935f70b993604f1d93616bbf93626fb193637530936496fb9365514e936654109367583593685857936959ac936a5c60936b5f92936c6597936d675c936e6e21936f767b937083df93718ced93729014937390fd9374934d937578259376783a937752aa93785ea69379571f937a5974937b6012937c5012937d515a937e51ac938051cd938152009382551093835854938458589385595793865b9593875cf693885d8b938960bc938a6295938b642d938c6771938d6843938e68bc938f68df939076d793916dd893926e6f93936d9b9394706f939571c893965f53939775d89398797793997b49939a7b54939b7b52939c7cd6939d7d71939e5230939f846393a0856993a185e493a28a0e93a38b0493a48c4693a58e0f93a6900393a7900f93a8941993a9967693aa982d93ab9a3093ac95d893ad50cd93ae52d593af540c93b0580293b15c0e93b261a793b3649e93b46d1e93b577b393b67ae593b780f493b8840493b9905393ba928593bb5ce093bc9d0793bd533f93be5f9793bf5fb393c06d9c93c1727993c2776393c379bf93c47be493c56bd293c672ec93c78aad93c8680393c96a6193ca51f893cb7a8193cc693493cd5c4a93ce9cf693cf82eb93d05bc593d1914993d2701e93d3567893d45c6f93d560c793d6656693d76c8c93d88c5a93d9904193da981393db545193dc66c793dd920d93de594893df90a393e0518593e14e4d93e251ea93e3859993e48b0e93e5705893e6637a93e7934b93e8696293e999b493ea7e0493eb757793ec535793ed696093ee8edf93ef96e393f06c5d93f14e8c93f25c3c93f35f1093f48fe993f5530293f68cd193f7808993f8867993f95eff93fa65e593fb4e7393fc51659440598294415c3f944297ee94434efb9444598a94455fcd94468a8d94476fe1944879b094497962944a5be7944b8471944c732b944d71b1944e5e74944f5ff59450637b9451649a945271c394537c9894544e4394555efc94564e4b945757dc945856a2945960a9945a6fc3945b7d0d945c80fd945d8133945e81bf945f8fb294608997946186a494625df49463628a946464ad946589879466677794676ce294686d3e94697436946a7834946b5a46946c7f75946d82ad946e99ac946f4ff394705ec3947162dd94726392947365579474676f947576c39476724c947780cc947880ba94798f29947a914d947b500d947c57f9947d5a92947e68859480697394817164948272fd94838cb7948458f294858ce09486966a948790199488877f948979e4948a77e7948b8429948c4f2f948d5265948e535a948f62cd949067cf94916cca9492767d94937b9494947c95949582369496858494978feb949866dd94996f20949a7206949b7e1b949c83ab949d99c1949e9ea6949f51fd94a07bb194a1787294a27bb894a3808794a47b4894a56ae894a65e6194a7808c94a8755194a9756094aa516b94ab926294ac6e8c94ad767a94ae919794af9aea94b04f1094b17f7094b2629c94b37b4f94b495a594b59ce994b6567a94b7585994b886e494b996bc94ba4f3494bb522494bc534a94bd53cd94be53db94bf5e0694c0642c94c1659194c2677f94c36c3e94c46c4e94c5724894c672af94c773ed94c8755494c97e4194ca822c94cb85e994cc8ca994cd7bc494ce91c694cf716994d0981294d198ef94d2633d94d3666994d4756a94d576e494d678d094d7854394d886ee94d9532a94da535194db542694dc598394dd5e8794de5f7c94df60b294e0624994e1627994e262ab94e3659094e46bd494e56ccc94e675b294e776ae94e8789194e979d894ea7dcb94eb7f7794ec80a594ed88ab94ee8ab994ef8cbb94f0907f94f1975e94f298db94f36a0b94f47c3894f5509994f65c3e94f75fae94f8678794f96bd894fa743594fb770994fc7f8e95409f3b954167ca95427a17954353399544758b95459aed95465f669547819d954883f195498098954a5f3c954b5fc5954c7562954d7b46954e903c954f6867955059eb95515a9b95527d109553767e95548b2c95554ff595565f6a95576a1995586c3795596f02955a74e2955b7968955c8868955d8a55955e8c79955f5edf956063cf956175c5956279d2956382d795649328956592f29566849c956786ed95689c2d956954c1956a5f6c956b658c956c6d5c956d7015956e8ca7956f8cd39570983b9571654f957274f695734e0d95744ed8957557e09576592b95775a6695785bcc957951a8957a5e03957b5e9c957c6016957d6276957e6577958065a79581666e95826d6e9583723695847b26958581509586819a9587829995888b5c95898ca0958a8ce6958b8d74958c961c958d9644958e4fae958f64ab95906b669591821e959284619593856a959490e895955c0195966953959798a89598847a95998557959a4f0f959b526f959c5fa9959d5e45959e670d959f798f95a0817995a1890795a2898695a36df595a45f1795a5625595a66cb895a74ecf95a8726995a99b9295aa520695ab543b95ac567495ad58b395ae61a495af626e95b0711a95b1596e95b27c8995b37cde95b47d1b95b596f095b6658795b7805e95b84e1995b94f7595ba517595bb584095bc5e6395bd5e7395be5f0a95bf67c495c04e2695c1853d95c2958995c3965b95c47c7395c5980195c650fb95c758c195c8765695c978a795ca522595cb77a595cc851195cd7b8695ce504f95cf590995d0724795d17bc795d27de895d38fba95d48fd495d5904d95d64fbf95d752c995d85a2995d95f0195da97ad95db4fdd95dc821795dd92ea95de570395df635595e06b6995e1752b95e288dc95e38f1495e47a4295e552df95e6589395e7615595e8620a95e966ae95ea6bcd95eb7c3f95ec83e995ed502395ee4ff895ef530595f0544695f1583195f2594995f35b9d95f45cf095f55cef95f65d2995f75e9695f862b195f9636795fa653e95fb65b995fc670b96406cd596416ce1964270f99643783296447e2b964580de964682b39647840c964884ec96498702964a8912964b8a2a964c8c4a964d90a6964e92d2964f98fd96509cf396519d6c96524e4f96534ea19654508d965552569656574a965759a896585e3d96595fd8965a5fd9965b623f965c66b4965d671b965e67d0965f68d29660519296617d21966280aa966381a896648b0096658c8c96668cbf9667927e9668963296695420966a982c966b5317966c50d5966d535c966e58a8966f64b296706734967172679672776696737a46967491e6967552c396766ca196776b869678580096795e4c967a5954967b672c967c7ffb967d51e1967e76c696806469968178e896829b5496839ebb968457cb968559b9968666279687679a96886bce968954e9968a69d9968b5e55968c819c968d6795968e9baa968f67fe96909c529691685d96924ea696934fe3969453c8969562b99696672b96976cab96988fc496994fad969a7e6d969b9ebf969c4e07969d6162969e6e80969f6f2b96a0851396a1547396a2672a96a39b4596a45df396a57b9596a65cac96a75bc696a8871c96a96e4a96aa84d196ab7a1496ac810896ad599996ae7c8d96af6c1196b0772096b152d996b2592296b3712196b4725f96b577db96b6972796b79d6196b8690b96b95a7f96ba5a1896bb51a596bc540d96bd547d96be660e96bf76df96c08ff796c1929896c29cf496c359ea96c4725d96c56ec596c6514d96c768c996c87dbf96c97dec96ca976296cb9eba96cc647896cd6a2196ce830296cf598496d05b5f96d16bdb96d2731b96d376f296d47db296d5801796d6849996d7513296d8672896d99ed996da76ee96db676296dc52ff96dd990596de5c2496df623b96e07c7e96e18cb096e2554f96e360b696e47d0b96e5958096e6530196e74e5f96e851b696e9591c96ea723a96eb803696ec91ce96ed5f2596ee77e296ef538496f05f7996f17d0496f285ac96f38a3396f48e8d96f5975696f667f396f785ae96f8945396f9610996fa610896fb6cb996fc765297408aed97418f389742552f97434f519744512a974552c7974653cb97475ba597485e7d974960a0974a6182974b63d6974c6709974d67da974e6e67974f6d8c97507336975173379752753197537950975488d597558a989756904a97579091975890f5975996c4975a878d975b5915975c4e88975d4f59975e4e0e975f8a8997608f3f97619810976250ad97635e7c9764599697655bb997665eb8976763da976863fa976964c1976a66dc976b694a976c69d8976d6d0b976e6eb6976f71949770752897717aaf97727f8a9773800097748449977584c99776898197778b2197788e0a97799065977a967d977b990a977c617e977d6291977e6b3297806c8397816d7497827fcc97837ffc97846dc097857f85978687ba978788f897886765978983b1978a983c978b96f7978c6d1b978d7d61978e843d978f916a97904e719791537597925d5097936b0497946feb979585cd9796862d979789a7979852299799540f979a5c65979b674e979c68a8979d7406979e7483979f75e297a088cf97a188e197a291cc97a396e297a4967897a55f8b97a6738797a77acb97a8844e97a963a097aa756597ab528997ac6d4197ad6e9c97ae740997af755997b0786b97b17c9297b2968697b37adc97b49f8d97b54fb697b6616e97b765c597b8865c97b94e8697ba4eae97bb50da97bc4e2197bd51cc97be5bee97bf659997c0688197c16dbc97c2731f97c3764297c477ad97c57a1c97c67ce797c7826f97c88ad297c9907c97ca91cf97cb967597cc981897cd529b97ce7dd197cf502b97d0539897d1679797d26dcb97d371d097d4743397d581e897d68f2a97d796a397d89c5797d99e9f97da746097db584197dc6d9997dd7d2f97de985e97df4ee497e04f3697e14f8b97e251b797e352b197e45dba97e5601c97e673b297e7793c97e882d397e9923497ea96b797eb96f697ec970a97ed9e9797ee9f6297ef66a697f06b7497f1521797f252a397f370c897f488c297f55ec997f6604b97f7619097f86f2397f9714997fa7c3e97fb7df497fc806f984084ee984190239842932c9843544298449b6f98456ad39846708998478cc298488def98499732984a52b4984b5a41984c5eca984d5f04984e6717984f697c9850699498516d6a98526f0f98537262985472fc98557bed985680019857807e9858874b985990ce985a516d985b9e93985c7984985d808b985e9332985f8ad69860502d9861548c98628a7198636b6a98648cc498658107986660d1986767a098689df298694e99986a4e98986b9c10986c8a6b986d85c1986e8568986f690098706e7e9871789798728155989f5f0c98a04e1098a14e1598a24e2a98a34e3198a44e3698a54e3c98a64e3f98a74e4298a84e5698a94e5898aa4e8298ab4e8598ac8c6b98ad4e8a98ae821298af5f0d98b04e8e98b14e9e98b24e9f98b34ea098b44ea298b54eb098b64eb398b74eb698b84ece98b94ecd98ba4ec498bb4ec698bc4ec298bd4ed798be4ede98bf4eed98c04edf98c14ef798c24f0998c34f5a98c44f3098c54f5b98c64f5d98c74f5798c84f4798c94f7698ca4f8898cb4f8f98cc4f9898cd4f7b98ce4f6998cf4f7098d04f9198d14f6f98d24f8698d34f9698d4511898d54fd498d64fdf98d74fce98d84fd898d94fdb98da4fd198db4fda98dc4fd098dd4fe498de4fe598df501a98e0502898e1501498e2502a98e3502598e4500598e54f1c98e64ff698e7502198e8502998e9502c98ea4ffe98eb4fef98ec501198ed500698ee504398ef504798f0670398f1505598f2505098f3504898f4505a98f5505698f6506c98f7507898f8508098f9509a98fa508598fb50b498fc50b2994050c9994150ca994250b3994350c2994450d6994550de994650e5994750ed994850e3994950ee994a50f9994b50f5994c5109994d5101994e5102994f511699505115995151149952511a995351219954513a995551379956513c9957513b9958513f99595140995a5152995b514c995c5154995d5162995e7af8995f51699960516a9961516e9962518099635182996456d89965518c996651899967518f9968519199695193996a5195996b5196996c51a4996d51a6996e51a2996f51a9997051aa997151ab997251b3997351b1997451b2997551b0997651b5997751bd997851c5997951c9997a51db997b51e0997c8655997d51e9997e51ed998051f0998151f5998251fe998352049984520b998552149986520e998752279988522a9989522e998a5233998b5239998c524f998d5244998e524b998f524c9990525e999152549992526a9993527499945269999552739996527f9997527d9998528d99995294999a5292999b5271999c5288999d5291999e8fa8999f8fa799a052ac99a152ad99a252bc99a352b599a452c199a552cd99a652d799a752de99a852e399a952e699aa98ed99ab52e099ac52f399ad52f599ae52f899af52f999b0530699b1530899b2753899b3530d99b4531099b5530f99b6531599b7531a99b8532399b9532f99ba533199bb533399bc533899bd534099be534699bf534599c04e1799c1534999c2534d99c351d699c4535e99c5536999c6536e99c7591899c8537b99c9537799ca538299cb539699cc53a099cd53a699ce53a599cf53ae99d053b099d153b699d253c399d37c1299d496d999d553df99d666fc99d771ee99d853ee99d953e899da53ed99db53fa99dc540199dd543d99de544099df542c99e0542d99e1543c99e2542e99e3543699e4542999e5541d99e6544e99e7548f99e8547599e9548e99ea545f99eb547199ec547799ed547099ee549299ef547b99f0548099f1547699f2548499f3549099f4548699f554c799f654a299f754b899f854a599f954ac99fa54c499fb54c899fc54a89a4054ab9a4154c29a4254a49a4354be9a4454bc9a4554d89a4654e59a4754e69a48550f9a4955149a4a54fd9a4b54ee9a4c54ed9a4d54fa9a4e54e29a4f55399a5055409a5155639a52554c9a53552e9a54555c9a5555459a5655569a5755579a5855389a5955339a5a555d9a5b55999a5c55809a5d54af9a5e558a9a5f559f9a60557b9a61557e9a6255989a63559e9a6455ae9a65557c9a6655839a6755a99a6855879a6955a89a6a55da9a6b55c59a6c55df9a6d55c49a6e55dc9a6f55e49a7055d49a7156149a7255f79a7356169a7455fe9a7555fd9a76561b9a7755f99a78564e9a7956509a7a71df9a7b56349a7c56369a7d56329a7e56389a80566b9a8156649a82562f9a83566c9a84566a9a8556869a8656809a87568a9a8856a09a8956949a8a568f9a8b56a59a8c56ae9a8d56b69a8e56b49a8f56c29a9056bc9a9156c19a9256c39a9356c09a9456c89a9556ce9a9656d19a9756d39a9856d79a9956ee9a9a56f99a9b57009a9c56ff9a9d57049a9e57099a9f57089aa0570b9aa1570d9aa257139aa357189aa457169aa555c79aa6571c9aa757269aa857379aa957389aaa574e9aab573b9aac57409aad574f9aae57699aaf57c09ab057889ab157619ab2577f9ab357899ab457939ab557a09ab657b39ab757a49ab857aa9ab957b09aba57c39abb57c69abc57d49abd57d29abe57d39abf580a9ac057d69ac157e39ac2580b9ac358199ac4581d9ac558729ac658219ac758629ac8584b9ac958709aca6bc09acb58529acc583d9acd58799ace58859acf58b99ad0589f9ad158ab9ad258ba9ad358de9ad458bb9ad558b89ad658ae9ad758c59ad858d39ad958d19ada58d79adb58d99adc58d89add58e59ade58dc9adf58e49ae058df9ae158ef9ae258fa9ae358f99ae458fb9ae558fc9ae658fd9ae759029ae8590a9ae959109aea591b9aeb68a69aec59259aed592c9aee592d9aef59329af059389af1593e9af27ad29af359559af459509af5594e9af6595a9af759589af859629af959609afa59679afb596c9afc59699b4059789b4159819b42599d9b434f5e9b444fab9b4559a39b4659b29b4759c69b4859e89b4959dc9b4a598d9b4b59d99b4c59da9b4d5a259b4e5a1f9b4f5a119b505a1c9b515a099b525a1a9b535a409b545a6c9b555a499b565a359b575a369b585a629b595a6a9b5a5a9a9b5b5abc9b5c5abe9b5d5acb9b5e5ac29b5f5abd9b605ae39b615ad79b625ae69b635ae99b645ad69b655afa9b665afb9b675b0c9b685b0b9b695b169b6a5b329b6b5ad09b6c5b2a9b6d5b369b6e5b3e9b6f5b439b705b459b715b409b725b519b735b559b745b5a9b755b5b9b765b659b775b699b785b709b795b739b7a5b759b7b5b789b7c65889b7d5b7a9b7e5b809b805b839b815ba69b825bb89b835bc39b845bc79b855bc99b865bd49b875bd09b885be49b895be69b8a5be29b8b5bde9b8c5be59b8d5beb9b8e5bf09b8f5bf69b905bf39b915c059b925c079b935c089b945c0d9b955c139b965c209b975c229b985c289b995c389b9a5c399b9b5c419b9c5c469b9d5c4e9b9e5c539b9f5c509ba05c4f9ba15b719ba25c6c9ba35c6e9ba44e629ba55c769ba65c799ba75c8c9ba85c919ba95c949baa599b9bab5cab9bac5cbb9bad5cb69bae5cbc9baf5cb79bb05cc59bb15cbe9bb25cc79bb35cd99bb45ce99bb55cfd9bb65cfa9bb75ced9bb85d8c9bb95cea9bba5d0b9bbb5d159bbc5d179bbd5d5c9bbe5d1f9bbf5d1b9bc05d119bc15d149bc25d229bc35d1a9bc45d199bc55d189bc65d4c9bc75d529bc85d4e9bc95d4b9bca5d6c9bcb5d739bcc5d769bcd5d879bce5d849bcf5d829bd05da29bd15d9d9bd25dac9bd35dae9bd45dbd9bd55d909bd65db79bd75dbc9bd85dc99bd95dcd9bda5dd39bdb5dd29bdc5dd69bdd5ddb9bde5deb9bdf5df29be05df59be15e0b9be25e1a9be35e199be45e119be55e1b9be65e369be75e379be85e449be95e439bea5e409beb5e4e9bec5e579bed5e549bee5e5f9bef5e629bf05e649bf15e479bf25e759bf35e769bf45e7a9bf59ebc9bf65e7f9bf75ea09bf85ec19bf95ec29bfa5ec89bfb5ed09bfc5ecf9c405ed69c415ee39c425edd9c435eda9c445edb9c455ee29c465ee19c475ee89c485ee99c495eec9c4a5ef19c4b5ef39c4c5ef09c4d5ef49c4e5ef89c4f5efe9c505f039c515f099c525f5d9c535f5c9c545f0b9c555f119c565f169c575f299c585f2d9c595f389c5a5f419c5b5f489c5c5f4c9c5d5f4e9c5e5f2f9c5f5f519c605f569c615f579c625f599c635f619c645f6d9c655f739c665f779c675f839c685f829c695f7f9c6a5f8a9c6b5f889c6c5f919c6d5f879c6e5f9e9c6f5f999c705f989c715fa09c725fa89c735fad9c745fbc9c755fd69c765ffb9c775fe49c785ff89c795ff19c7a5fdd9c7b60b39c7c5fff9c7d60219c7e60609c8060199c8160109c8260299c83600e9c8460319c85601b9c8660159c87602b9c8860269c89600f9c8a603a9c8b605a9c8c60419c8d606a9c8e60779c8f605f9c90604a9c9160469c92604d9c9360639c9460439c9560649c9660429c97606c9c98606b9c9960599c9a60819c9b608d9c9c60e79c9d60839c9e609a9c9f60849ca0609b9ca160969ca260979ca360929ca460a79ca5608b9ca660e19ca760b89ca860e09ca960d39caa60b49cab5ff09cac60bd9cad60c69cae60b59caf60d89cb0614d9cb161159cb261069cb360f69cb460f79cb561009cb660f49cb760fa9cb861039cb961219cba60fb9cbb60f19cbc610d9cbd610e9cbe61479cbf613e9cc061289cc161279cc2614a9cc3613f9cc4613c9cc5612c9cc661349cc7613d9cc861429cc961449cca61739ccb61779ccc61589ccd61599cce615a9ccf616b9cd061749cd1616f9cd261659cd361719cd4615f9cd5615d9cd661539cd761759cd861999cd961969cda61879cdb61ac9cdc61949cdd619a9cde618a9cdf61919ce061ab9ce161ae9ce261cc9ce361ca9ce461c99ce561f79ce661c89ce761c39ce861c69ce961ba9cea61cb9ceb7f799cec61cd9ced61e69cee61e39cef61f69cf061fa9cf161f49cf261ff9cf361fd9cf461fc9cf561fe9cf662009cf762089cf862099cf9620d9cfa620c9cfb62149cfc621b9d40621e9d4162219d42622a9d43622e9d4462309d4562329d4662339d4762419d48624e9d49625e9d4a62639d4b625b9d4c62609d4d62689d4e627c9d4f62829d5062899d51627e9d5262929d5362939d5462969d5562d49d5662839d5762949d5862d79d5962d19d5a62bb9d5b62cf9d5c62ff9d5d62c69d5e64d49d5f62c89d6062dc9d6162cc9d6262ca9d6362c29d6462c79d65629b9d6662c99d67630c9d6862ee9d6962f19d6a63279d6b63029d6c63089d6d62ef9d6e62f59d6f63509d70633e9d71634d9d72641c9d73634f9d7463969d75638e9d7663809d7763ab9d7863769d7963a39d7a638f9d7b63899d7c639f9d7d63b59d7e636b9d8063699d8163be9d8263e99d8363c09d8463c69d8563e39d8663c99d8763d29d8863f69d8963c49d8a64169d8b64349d8c64069d8d64139d8e64269d8f64369d90651d9d9164179d9264289d93640f9d9464679d95646f9d9664769d97644e9d98652a9d9964959d9a64939d9b64a59d9c64a99d9d64889d9e64bc9d9f64da9da064d29da164c59da264c79da364bb9da464d89da564c29da664f19da764e79da882099da964e09daa64e19dab62ac9dac64e39dad64ef9dae652c9daf64f69db064f49db164f29db264fa9db365009db464fd9db565189db6651c9db765059db865249db965239dba652b9dbb65349dbc65359dbd65379dbe65369dbf65389dc0754b9dc165489dc265569dc365559dc4654d9dc565589dc6655e9dc7655d9dc865729dc965789dca65829dcb65839dcc8b8a9dcd659b9dce659f9dcf65ab9dd065b79dd165c39dd265c69dd365c19dd465c49dd565cc9dd665d29dd765db9dd865d99dd965e09dda65e19ddb65f19ddc67729ddd660a9dde66039ddf65fb9de067739de166359de266369de366349de4661c9de5664f9de666449de766499de866419de9665e9dea665d9deb66649dec66679ded66689dee665f9def66629df066709df166839df266889df3668e9df466899df566849df666989df7669d9df866c19df966b99dfa66c99dfb66be9dfc66bc9e4066c49e4166b89e4266d69e4366da9e4466e09e45663f9e4666e69e4766e99e4866f09e4966f59e4a66f79e4b670f9e4c67169e4d671e9e4e67269e4f67279e5097389e51672e9e52673f9e5367369e5467419e5567389e5667379e5767469e58675e9e5967609e5a67599e5b67639e5c67649e5d67899e5e67709e5f67a99e60677c9e61676a9e62678c9e63678b9e6467a69e6567a19e6667859e6767b79e6867ef9e6967b49e6a67ec9e6b67b39e6c67e99e6d67b89e6e67e49e6f67de9e7067dd9e7167e29e7267ee9e7367b99e7467ce9e7567c69e7667e79e776a9c9e78681e9e7968469e7a68299e7b68409e7c684d9e7d68329e7e684e9e8068b39e81682b9e8268599e8368639e8468779e85687f9e86689f9e87688f9e8868ad9e8968949e8a689d9e8b689b9e8c68839e8d6aae9e8e68b99e8f68749e9068b59e9168a09e9268ba9e93690f9e94688d9e95687e9e9669019e9768ca9e9869089e9968d89e9a69229e9b69269e9c68e19e9d690c9e9e68cd9e9f68d49ea068e79ea168d59ea269369ea369129ea469049ea568d79ea668e39ea769259ea868f99ea968e09eaa68ef9eab69289eac692a9ead691a9eae69239eaf69219eb068c69eb169799eb269779eb3695c9eb469789eb5696b9eb669549eb7697e9eb8696e9eb969399eba69749ebb693d9ebc69599ebd69309ebe69619ebf695e9ec0695d9ec169819ec2696a9ec369b29ec469ae9ec569d09ec669bf9ec769c19ec869d39ec969be9eca69ce9ecb5be89ecc69ca9ecd69dd9ece69bb9ecf69c39ed069a79ed16a2e9ed269919ed369a09ed4699c9ed569959ed669b49ed769de9ed869e89ed96a029eda6a1b9edb69ff9edc6b0a9edd69f99ede69f29edf69e79ee06a059ee169b19ee26a1e9ee369ed9ee46a149ee569eb9ee66a0a9ee76a129ee86ac19ee96a239eea6a139eeb6a449eec6a0c9eed6a729eee6a369eef6a789ef06a479ef16a629ef26a599ef36a669ef46a489ef56a389ef66a229ef76a909ef86a8d9ef96aa09efa6a849efb6aa29efc6aa39f406a979f4186179f426abb9f436ac39f446ac29f456ab89f466ab39f476aac9f486ade9f496ad19f4a6adf9f4b6aaa9f4c6ada9f4d6aea9f4e6afb9f4f6b059f5086169f516afa9f526b129f536b169f549b319f556b1f9f566b389f576b379f5876dc9f596b399f5a98ee9f5b6b479f5c6b439f5d6b499f5e6b509f5f6b599f606b549f616b5b9f626b5f9f636b619f646b789f656b799f666b7f9f676b809f686b849f696b839f6a6b8d9f6b6b989f6c6b959f6d6b9e9f6e6ba49f6f6baa9f706bab9f716baf9f726bb29f736bb19f746bb39f756bb79f766bbc9f776bc69f786bcb9f796bd39f7a6bdf9f7b6bec9f7c6beb9f7d6bf39f7e6bef9f809ebe9f816c089f826c139f836c149f846c1b9f856c249f866c239f876c5e9f886c559f896c629f8a6c6a9f8b6c829f8c6c8d9f8d6c9a9f8e6c819f8f6c9b9f906c7e9f916c689f926c739f936c929f946c909f956cc49f966cf19f976cd39f986cbd9f996cd79f9a6cc59f9b6cdd9f9c6cae9f9d6cb19f9e6cbe9f9f6cba9fa06cdb9fa16cef9fa26cd99fa36cea9fa46d1f9fa5884d9fa66d369fa76d2b9fa86d3d9fa96d389faa6d199fab6d359fac6d339fad6d129fae6d0c9faf6d639fb06d939fb16d649fb26d5a9fb36d799fb46d599fb56d8e9fb66d959fb76fe49fb86d859fb96df99fba6e159fbb6e0a9fbc6db59fbd6dc79fbe6de69fbf6db89fc06dc69fc16dec9fc26dde9fc36dcc9fc46de89fc56dd29fc66dc59fc76dfa9fc86dd99fc96de49fca6dd59fcb6dea9fcc6dee9fcd6e2d9fce6e6e9fcf6e2e9fd06e199fd16e729fd26e5f9fd36e3e9fd46e239fd56e6b9fd66e2b9fd76e769fd86e4d9fd96e1f9fda6e439fdb6e3a9fdc6e4e9fdd6e249fde6eff9fdf6e1d9fe06e389fe16e829fe26eaa9fe36e989fe46ec99fe56eb79fe66ed39fe76ebd9fe86eaf9fe96ec49fea6eb29feb6ed49fec6ed59fed6e8f9fee6ea59fef6ec29ff06e9f9ff16f419ff26f119ff3704c9ff46eec9ff56ef89ff66efe9ff76f3f9ff86ef29ff96f319ffa6eef9ffb6f329ffc6ecce0406f3ee0416f13e0426ef7e0436f86e0446f7ae0456f78e0466f81e0476f80e0486f6fe0496f5be04a6ff3e04b6f6de04c6f82e04d6f7ce04e6f58e04f6f8ee0506f91e0516fc2e0526f66e0536fb3e0546fa3e0556fa1e0566fa4e0576fb9e0586fc6e0596faae05a6fdfe05b6fd5e05c6fece05d6fd4e05e6fd8e05f6ff1e0606feee0616fdbe0627009e063700be0646ffae0657011e0667001e067700fe0686ffee069701be06a701ae06b6f74e06c701de06d7018e06e701fe06f7030e070703ee0717032e0727051e0737063e0747099e0757092e07670afe07770f1e07870ace07970b8e07a70b3e07b70aee07c70dfe07d70cbe07e70dde08070d9e0817109e08270fde083711ce0847119e0857165e0867155e0877188e0887166e0897162e08a714ce08b7156e08c716ce08d718fe08e71fbe08f7184e0907195e09171a8e09271ace09371d7e09471b9e09571bee09671d2e09771c9e09871d4e09971cee09a71e0e09b71ece09c71e7e09d71f5e09e71fce09f71f9e0a071ffe0a1720de0a27210e0a3721be0a47228e0a5722de0a6722ce0a77230e0a87232e0a9723be0aa723ce0ab723fe0ac7240e0ad7246e0ae724be0af7258e0b07274e0b1727ee0b27282e0b37281e0b47287e0b57292e0b67296e0b772a2e0b872a7e0b972b9e0ba72b2e0bb72c3e0bc72c6e0bd72c4e0be72cee0bf72d2e0c072e2e0c172e0e0c272e1e0c372f9e0c472f7e0c5500fe0c67317e0c7730ae0c8731ce0c97316e0ca731de0cb7334e0cc732fe0cd7329e0ce7325e0cf733ee0d0734ee0d1734fe0d29ed8e0d37357e0d4736ae0d57368e0d67370e0d77378e0d87375e0d9737be0da737ae0db73c8e0dc73b3e0dd73cee0de73bbe0df73c0e0e073e5e0e173eee0e273dee0e374a2e0e47405e0e5746fe0e67425e0e773f8e0e87432e0e9743ae0ea7455e0eb743fe0ec745fe0ed7459e0ee7441e0ef745ce0f07469e0f17470e0f27463e0f3746ae0f47476e0f5747ee0f6748be0f7749ee0f874a7e0f974cae0fa74cfe0fb74d4e0fc73f1e14074e0e14174e3e14274e7e14374e9e14474eee14574f2e14674f0e14774f1e14874f8e14974f7e14a7504e14b7503e14c7505e14d750ce14e750ee14f750de1507515e1517513e152751ee1537526e154752ce155753ce1567544e157754de158754ae1597549e15a755be15b7546e15c755ae15d7569e15e7564e15f7567e160756be161756de1627578e1637576e1647586e1657587e1667574e167758ae1687589e1697582e16a7594e16b759ae16c759de16d75a5e16e75a3e16f75c2e17075b3e17175c3e17275b5e17375bde17475b8e17575bce17675b1e17775cde17875cae17975d2e17a75d9e17b75e3e17c75dee17d75fee17e75ffe18075fce1817601e18275f0e18375fae18475f2e18575f3e186760be187760de1887609e189761fe18a7627e18b7620e18c7621e18d7622e18e7624e18f7634e1907630e191763be1927647e1937648e1947646e195765ce1967658e1977661e1987662e1997668e19a7669e19b766ae19c7667e19d766ce19e7670e19f7672e1a07676e1a17678e1a2767ce1a37680e1a47683e1a57688e1a6768be1a7768ee1a87696e1a97693e1aa7699e1ab769ae1ac76b0e1ad76b4e1ae76b8e1af76b9e1b076bae1b176c2e1b276cde1b376d6e1b476d2e1b576dee1b676e1e1b776e5e1b876e7e1b976eae1ba862fe1bb76fbe1bc7708e1bd7707e1be7704e1bf7729e1c07724e1c1771ee1c27725e1c37726e1c4771be1c57737e1c67738e1c77747e1c8775ae1c97768e1ca776be1cb775be1cc7765e1cd777fe1ce777ee1cf7779e1d0778ee1d1778be1d27791e1d377a0e1d4779ee1d577b0e1d677b6e1d777b9e1d877bfe1d977bce1da77bde1db77bbe1dc77c7e1dd77cde1de77d7e1df77dae1e077dce1e177e3e1e277eee1e377fce1e4780ce1e57812e1e67926e1e77820e1e8792ae1e97845e1ea788ee1eb7874e1ec7886e1ed787ce1ee789ae1ef788ce1f078a3e1f178b5e1f278aae1f378afe1f478d1e1f578c6e1f678cbe1f778d4e1f878bee1f978bce1fa78c5e1fb78cae1fc78ece24078e7e24178dae24278fde24378f4e2447907e2457912e2467911e2477919e248792ce249792be24a7940e24b7960e24c7957e24d795fe24e795ae24f7955e2507953e251797ae252797fe253798ae254799de25579a7e2569f4be25779aae25879aee25979b3e25a79b9e25b79bae25c79c9e25d79d5e25e79e7e25f79ece26079e1e26179e3e2627a08e2637a0de2647a18e2657a19e2667a20e2677a1fe2687980e2697a31e26a7a3be26b7a3ee26c7a37e26d7a43e26e7a57e26f7a49e2707a61e2717a62e2727a69e2739f9de2747a70e2757a79e2767a7de2777a88e2787a97e2797a95e27a7a98e27b7a96e27c7aa9e27d7ac8e27e7ab0e2807ab6e2817ac5e2827ac4e2837abfe2849083e2857ac7e2867acae2877acde2887acfe2897ad5e28a7ad3e28b7ad9e28c7adae28d7adde28e7ae1e28f7ae2e2907ae6e2917aede2927af0e2937b02e2947b0fe2957b0ae2967b06e2977b33e2987b18e2997b19e29a7b1ee29b7b35e29c7b28e29d7b36e29e7b50e29f7b7ae2a07b04e2a17b4de2a27b0be2a37b4ce2a47b45e2a57b75e2a67b65e2a77b74e2a87b67e2a97b70e2aa7b71e2ab7b6ce2ac7b6ee2ad7b9de2ae7b98e2af7b9fe2b07b8de2b17b9ce2b27b9ae2b37b8be2b47b92e2b57b8fe2b67b5de2b77b99e2b87bcbe2b97bc1e2ba7bcce2bb7bcfe2bc7bb4e2bd7bc6e2be7bdde2bf7be9e2c07c11e2c17c14e2c27be6e2c37be5e2c47c60e2c57c00e2c67c07e2c77c13e2c87bf3e2c97bf7e2ca7c17e2cb7c0de2cc7bf6e2cd7c23e2ce7c27e2cf7c2ae2d07c1fe2d17c37e2d27c2be2d37c3de2d47c4ce2d57c43e2d67c54e2d77c4fe2d87c40e2d97c50e2da7c58e2db7c5fe2dc7c64e2dd7c56e2de7c65e2df7c6ce2e07c75e2e17c83e2e27c90e2e37ca4e2e47cade2e57ca2e2e67cabe2e77ca1e2e87ca8e2e97cb3e2ea7cb2e2eb7cb1e2ec7caee2ed7cb9e2ee7cbde2ef7cc0e2f07cc5e2f17cc2e2f27cd8e2f37cd2e2f47cdce2f57ce2e2f69b3be2f77cefe2f87cf2e2f97cf4e2fa7cf6e2fb7cfae2fc7d06e3407d02e3417d1ce3427d15e3437d0ae3447d45e3457d4be3467d2ee3477d32e3487d3fe3497d35e34a7d46e34b7d73e34c7d56e34d7d4ee34e7d72e34f7d68e3507d6ee3517d4fe3527d63e3537d93e3547d89e3557d5be3567d8fe3577d7de3587d9be3597dbae35a7daee35b7da3e35c7db5e35d7dc7e35e7dbde35f7dabe3607e3de3617da2e3627dafe3637ddce3647db8e3657d9fe3667db0e3677dd8e3687ddde3697de4e36a7ddee36b7dfbe36c7df2e36d7de1e36e7e05e36f7e0ae3707e23e3717e21e3727e12e3737e31e3747e1fe3757e09e3767e0be3777e22e3787e46e3797e66e37a7e3be37b7e35e37c7e39e37d7e43e37e7e37e3807e32e3817e3ae3827e67e3837e5de3847e56e3857e5ee3867e59e3877e5ae3887e79e3897e6ae38a7e69e38b7e7ce38c7e7be38d7e83e38e7dd5e38f7e7de3908faee3917e7fe3927e88e3937e89e3947e8ce3957e92e3967e90e3977e93e3987e94e3997e96e39a7e8ee39b7e9be39c7e9ce39d7f38e39e7f3ae39f7f45e3a07f4ce3a17f4de3a27f4ee3a37f50e3a47f51e3a57f55e3a67f54e3a77f58e3a87f5fe3a97f60e3aa7f68e3ab7f69e3ac7f67e3ad7f78e3ae7f82e3af7f86e3b07f83e3b17f88e3b27f87e3b37f8ce3b47f94e3b57f9ee3b67f9de3b77f9ae3b87fa3e3b97fafe3ba7fb2e3bb7fb9e3bc7faee3bd7fb6e3be7fb8e3bf8b71e3c07fc5e3c17fc6e3c27fcae3c37fd5e3c47fd4e3c57fe1e3c67fe6e3c77fe9e3c87ff3e3c97ff9e3ca98dce3cb8006e3cc8004e3cd800be3ce8012e3cf8018e3d08019e3d1801ce3d28021e3d38028e3d4803fe3d5803be3d6804ae3d78046e3d88052e3d98058e3da805ae3db805fe3dc8062e3dd8068e3de8073e3df8072e3e08070e3e18076e3e28079e3e3807de3e4807fe3e58084e3e68086e3e78085e3e8809be3e98093e3ea809ae3eb80ade3ec5190e3ed80ace3ee80dbe3ef80e5e3f080d9e3f180dde3f280c4e3f380dae3f480d6e3f58109e3f680efe3f780f1e3f8811be3f98129e3fa8123e3fb812fe3fc814be440968be4418146e442813ee4438153e4448151e44580fce4468171e447816ee4488165e4498166e44a8174e44b8183e44c8188e44d818ae44e8180e44f8182e45081a0e4518195e45281a4e45381a3e454815fe4558193e45681a9e45781b0e45881b5e45981bee45a81b8e45b81bde45c81c0e45d81c2e45e81bae45f81c9e46081cde46181d1e46281d9e46381d8e46481c8e46581dae46681dfe46781e0e46881e7e46981fae46a81fbe46b81fee46c8201e46d8202e46e8205e46f8207e470820ae471820de4728210e4738216e4748229e475822be4768238e4778233e4788240e4798259e47a8258e47b825de47c825ae47d825fe47e8264e4808262e4818268e482826ae483826be484822ee4858271e4868277e4878278e488827ee489828de48a8292e48b82abe48c829fe48d82bbe48e82ace48f82e1e49082e3e49182dfe49282d2e49382f4e49482f3e49582fae4968393e4978303e49882fbe49982f9e49a82dee49b8306e49c82dce49d8309e49e82d9e49f8335e4a08334e4a18316e4a28332e4a38331e4a48340e4a58339e4a68350e4a78345e4a8832fe4a9832be4aa8317e4ab8318e4ac8385e4ad839ae4ae83aae4af839fe4b083a2e4b18396e4b28323e4b3838ee4b48387e4b5838ae4b6837ce4b783b5e4b88373e4b98375e4ba83a0e4bb8389e4bc83a8e4bd83f4e4be8413e4bf83ebe4c083cee4c183fde4c28403e4c383d8e4c4840be4c583c1e4c683f7e4c78407e4c883e0e4c983f2e4ca840de4cb8422e4cc8420e4cd83bde4ce8438e4cf8506e4d083fbe4d1846de4d2842ae4d3843ce4d4855ae4d58484e4d68477e4d7846be4d884ade4d9846ee4da8482e4db8469e4dc8446e4dd842ce4de846fe4df8479e4e08435e4e184cae4e28462e4e384b9e4e484bfe4e5849fe4e684d9e4e784cde4e884bbe4e984dae4ea84d0e4eb84c1e4ec84c6e4ed84d6e4ee84a1e4ef8521e4f084ffe4f184f4e4f28517e4f38518e4f4852ce4f5851fe4f68515e4f78514e4f884fce4f98540e4fa8563e4fb8558e4fc8548e5408541e5418602e542854be5438555e5448580e54585a4e5468588e5478591e548858ae54985a8e54a856de54b8594e54c859be54d85eae54e8587e54f859ce5508577e551857ee5528590e55385c9e55485bae55585cfe55685b9e55785d0e55885d5e55985dde55a85e5e55b85dce55c85f9e55d860ae55e8613e55f860be56085fee56185fae5628606e5638622e564861ae5658630e566863fe567864de5684e55e5698654e56a865fe56b8667e56c8671e56d8693e56e86a3e56f86a9e57086aae571868be572868ce57386b6e57486afe57586c4e57686c6e57786b0e57886c9e5798823e57a86abe57b86d4e57c86dee57d86e9e57e86ece58086dfe58186dbe58286efe5838712e5848706e5858708e5868700e5878703e58886fbe5898711e58a8709e58b870de58c86f9e58d870ae58e8734e58f873fe5908737e591873be5928725e5938729e594871ae5958760e596875fe5978778e598874ce599874ee59a8774e59b8757e59c8768e59d876ee59e8759e59f8753e5a08763e5a1876ae5a28805e5a387a2e5a4879fe5a58782e5a687afe5a787cbe5a887bde5a987c0e5aa87d0e5ab96d6e5ac87abe5ad87c4e5ae87b3e5af87c7e5b087c6e5b187bbe5b287efe5b387f2e5b487e0e5b5880fe5b6880de5b787fee5b887f6e5b987f7e5ba880ee5bb87d2e5bc8811e5bd8816e5be8815e5bf8822e5c08821e5c18831e5c28836e5c38839e5c48827e5c5883be5c68844e5c78842e5c88852e5c98859e5ca885ee5cb8862e5cc886be5cd8881e5ce887ee5cf889ee5d08875e5d1887de5d288b5e5d38872e5d48882e5d58897e5d68892e5d788aee5d88899e5d988a2e5da888de5db88a4e5dc88b0e5dd88bfe5de88b1e5df88c3e5e088c4e5e188d4e5e288d8e5e388d9e5e488dde5e588f9e5e68902e5e788fce5e888f4e5e988e8e5ea88f2e5eb8904e5ec890ce5ed890ae5ee8913e5ef8943e5f0891ee5f18925e5f2892ae5f3892be5f48941e5f58944e5f6893be5f78936e5f88938e5f9894ce5fa891de5fb8960e5fc895ee6408966e6418964e642896de643896ae644896fe6458974e6468977e647897ee6488983e6498988e64a898ae64b8993e64c8998e64d89a1e64e89a9e64f89a6e65089ace65189afe65289b2e65389bae65489bde65589bfe65689c0e65789dae65889dce65989dde65a89e7e65b89f4e65c89f8e65d8a03e65e8a16e65f8a10e6608a0ce6618a1be6628a1de6638a25e6648a36e6658a41e6668a5be6678a52e6688a46e6698a48e66a8a7ce66b8a6de66c8a6ce66d8a62e66e8a85e66f8a82e6708a84e6718aa8e6728aa1e6738a91e6748aa5e6758aa6e6768a9ae6778aa3e6788ac4e6798acde67a8ac2e67b8adae67c8aebe67d8af3e67e8ae7e6808ae4e6818af1e6828b14e6838ae0e6848ae2e6858af7e6868adee6878adbe6888b0ce6898b07e68a8b1ae68b8ae1e68c8b16e68d8b10e68e8b17e68f8b20e6908b33e69197abe6928b26e6938b2be6948b3ee6958b28e6968b41e6978b4ce6988b4fe6998b4ee69a8b49e69b8b56e69c8b5be69d8b5ae69e8b6be69f8b5fe6a08b6ce6a18b6fe6a28b74e6a38b7de6a48b80e6a58b8ce6a68b8ee6a78b92e6a88b93e6a98b96e6aa8b99e6ab8b9ae6ac8c3ae6ad8c41e6ae8c3fe6af8c48e6b08c4ce6b18c4ee6b28c50e6b38c55e6b48c62e6b58c6ce6b68c78e6b78c7ae6b88c82e6b98c89e6ba8c85e6bb8c8ae6bc8c8de6bd8c8ee6be8c94e6bf8c7ce6c08c98e6c1621de6c28cade6c38caae6c48cbde6c58cb2e6c68cb3e6c78caee6c88cb6e6c98cc8e6ca8cc1e6cb8ce4e6cc8ce3e6cd8cdae6ce8cfde6cf8cfae6d08cfbe6d18d04e6d28d05e6d38d0ae6d48d07e6d58d0fe6d68d0de6d78d10e6d89f4ee6d98d13e6da8ccde6db8d14e6dc8d16e6dd8d67e6de8d6de6df8d71e6e08d73e6e18d81e6e28d99e6e38dc2e6e48dbee6e58dbae6e68dcfe6e78ddae6e88dd6e6e98dcce6ea8ddbe6eb8dcbe6ec8deae6ed8debe6ee8ddfe6ef8de3e6f08dfce6f18e08e6f28e09e6f38dffe6f48e1de6f58e1ee6f68e10e6f78e1fe6f88e42e6f98e35e6fa8e30e6fb8e34e6fc8e4ae7408e47e7418e49e7428e4ce7438e50e7448e48e7458e59e7468e64e7478e60e7488e2ae7498e63e74a8e55e74b8e76e74c8e72e74d8e7ce74e8e81e74f8e87e7508e85e7518e84e7528e8be7538e8ae7548e93e7558e91e7568e94e7578e99e7588eaae7598ea1e75a8eace75b8eb0e75c8ec6e75d8eb1e75e8ebee75f8ec5e7608ec8e7618ecbe7628edbe7638ee3e7648efce7658efbe7668eebe7678efee7688f0ae7698f05e76a8f15e76b8f12e76c8f19e76d8f13e76e8f1ce76f8f1fe7708f1be7718f0ce7728f26e7738f33e7748f3be7758f39e7768f45e7778f42e7788f3ee7798f4ce77a8f49e77b8f46e77c8f4ee77d8f57e77e8f5ce7808f62e7818f63e7828f64e7838f9ce7848f9fe7858fa3e7868fade7878fafe7888fb7e7898fdae78a8fe5e78b8fe2e78c8feae78d8fefe78e9087e78f8ff4e7909005e7918ff9e7928ffae7939011e7949015e7959021e796900de797901ee7989016e799900be79a9027e79b9036e79c9035e79d9039e79e8ff8e79f904fe7a09050e7a19051e7a29052e7a3900ee7a49049e7a5903ee7a69056e7a79058e7a8905ee7a99068e7aa906fe7ab9076e7ac96a8e7ad9072e7ae9082e7af907de7b09081e7b19080e7b2908ae7b39089e7b4908fe7b590a8e7b690afe7b790b1e7b890b5e7b990e2e7ba90e4e7bb6248e7bc90dbe7bd9102e7be9112e7bf9119e7c09132e7c19130e7c2914ae7c39156e7c49158e7c59163e7c69165e7c79169e7c89173e7c99172e7ca918be7cb9189e7cc9182e7cd91a2e7ce91abe7cf91afe7d091aae7d191b5e7d291b4e7d391bae7d491c0e7d591c1e7d691c9e7d791cbe7d891d0e7d991d6e7da91dfe7db91e1e7dc91dbe7dd91fce7de91f5e7df91f6e7e0921ee7e191ffe7e29214e7e3922ce7e49215e7e59211e7e6925ee7e79257e7e89245e7e99249e7ea9264e7eb9248e7ec9295e7ed923fe7ee924be7ef9250e7f0929ce7f19296e7f29293e7f3929be7f4925ae7f592cfe7f692b9e7f792b7e7f892e9e7f9930fe7fa92fae7fb9344e7fc932ee8409319e8419322e842931ae8439323e844933ae8459335e846933be847935ce8489360e849937ce84a936ee84b9356e84c93b0e84d93ace84e93ade84f9394e85093b9e85193d6e85293d7e85393e8e85493e5e85593d8e85693c3e85793dde85893d0e85993c8e85a93e4e85b941ae85c9414e85d9413e85e9403e85f9407e8609410e8619436e862942be8639435e8649421e865943ae8669441e8679452e8689444e869945be86a9460e86b9462e86c945ee86d946ae86e9229e86f9470e8709475e8719477e872947de873945ae874947ce875947ee8769481e877947fe8789582e8799587e87a958ae87b9594e87c9596e87d9598e87e9599e88095a0e88195a8e88295a7e88395ade88495bce88595bbe88695b9e88795bee88895cae8896ff6e88a95c3e88b95cde88c95cce88d95d5e88e95d4e88f95d6e89095dce89195e1e89295e5e89395e2e8949621e8959628e896962ee897962fe8989642e899964ce89a964fe89b964be89c9677e89d965ce89e965ee89f965de8a0965fe8a19666e8a29672e8a3966ce8a4968de8a59698e8a69695e8a79697e8a896aae8a996a7e8aa96b1e8ab96b2e8ac96b0e8ad96b4e8ae96b6e8af96b8e8b096b9e8b196cee8b296cbe8b396c9e8b496cde8b5894de8b696dce8b7970de8b896d5e8b996f9e8ba9704e8bb9706e8bc9708e8bd9713e8be970ee8bf9711e8c0970fe8c19716e8c29719e8c39724e8c4972ae8c59730e8c69739e8c7973de8c8973ee8c99744e8ca9746e8cb9748e8cc9742e8cd9749e8ce975ce8cf9760e8d09764e8d19766e8d29768e8d352d2e8d4976be8d59771e8d69779e8d79785e8d8977ce8d99781e8da977ae8db9786e8dc978be8dd978fe8de9790e8df979ce8e097a8e8e197a6e8e297a3e8e397b3e8e497b4e8e597c3e8e697c6e8e797c8e8e897cbe8e997dce8ea97ede8eb9f4fe8ec97f2e8ed7adfe8ee97f6e8ef97f5e8f0980fe8f1980ce8f29838e8f39824e8f49821e8f59837e8f6983de8f79846e8f8984fe8f9984be8fa986be8fb986fe8fc9870e9409871e9419874e9429873e94398aae94498afe94598b1e94698b6e94798c4e94898c3e94998c6e94a98e9e94b98ebe94c9903e94d9909e94e9912e94f9914e9509918e9519921e952991de953991ee9549924e9559920e956992ce957992ee958993de959993ee95a9942e95b9949e95c9945e95d9950e95e994be95f9951e9609952e961994ce9629955e9639997e9649998e96599a5e96699ade96799aee96899bce96999dfe96a99dbe96b99dde96c99d8e96d99d1e96e99ede96f99eee97099f1e97199f2e97299fbe97399f8e9749a01e9759a0fe9769a05e97799e2e9789a19e9799a2be97a9a37e97b9a45e97c9a42e97d9a40e97e9a43e9809a3ee9819a55e9829a4de9839a5be9849a57e9859a5fe9869a62e9879a65e9889a64e9899a69e98a9a6be98b9a6ae98c9aade98d9ab0e98e9abce98f9ac0e9909acfe9919ad1e9929ad3e9939ad4e9949adee9959adfe9969ae2e9979ae3e9989ae6e9999aefe99a9aebe99b9aeee99c9af4e99d9af1e99e9af7e99f9afbe9a09b06e9a19b18e9a29b1ae9a39b1fe9a49b22e9a59b23e9a69b25e9a79b27e9a89b28e9a99b29e9aa9b2ae9ab9b2ee9ac9b2fe9ad9b32e9ae9b44e9af9b43e9b09b4fe9b19b4de9b29b4ee9b39b51e9b49b58e9b59b74e9b69b93e9b79b83e9b89b91e9b99b96e9ba9b97e9bb9b9fe9bc9ba0e9bd9ba8e9be9bb4e9bf9bc0e9c09bcae9c19bb9e9c29bc6e9c39bcfe9c49bd1e9c59bd2e9c69be3e9c79be2e9c89be4e9c99bd4e9ca9be1e9cb9c3ae9cc9bf2e9cd9bf1e9ce9bf0e9cf9c15e9d09c14e9d19c09e9d29c13e9d39c0ce9d49c06e9d59c08e9d69c12e9d79c0ae9d89c04e9d99c2ee9da9c1be9db9c25e9dc9c24e9dd9c21e9de9c30e9df9c47e9e09c32e9e19c46e9e29c3ee9e39c5ae9e49c60e9e59c67e9e69c76e9e79c78e9e89ce7e9e99cece9ea9cf0e9eb9d09e9ec9d08e9ed9cebe9ee9d03e9ef9d06e9f09d2ae9f19d26e9f29dafe9f39d23e9f49d1fe9f59d44e9f69d15e9f79d12e9f89d41e9f99d3fe9fa9d3ee9fb9d46e9fc9d48ea409d5dea419d5eea429d64ea439d51ea449d50ea459d59ea469d72ea479d89ea489d87ea499dabea4a9d6fea4b9d7aea4c9d9aea4d9da4ea4e9da9ea4f9db2ea509dc4ea519dc1ea529dbbea539db8ea549dbaea559dc6ea569dcfea579dc2ea589dd9ea599dd3ea5a9df8ea5b9de6ea5c9dedea5d9defea5e9dfdea5f9e1aea609e1bea619e1eea629e75ea639e79ea649e7dea659e81ea669e88ea679e8bea689e8cea699e92ea6a9e95ea6b9e91ea6c9e9dea6d9ea5ea6e9ea9ea6f9eb8ea709eaaea719eadea729761ea739eccea749eceea759ecfea769ed0ea779ed4ea789edcea799edeea7a9eddea7b9ee0ea7c9ee5ea7d9ee8ea7e9eefea809ef4ea819ef6ea829ef7ea839ef9ea849efbea859efcea869efdea879f07ea889f08ea8976b7ea8a9f15ea8b9f21ea8c9f2cea8d9f3eea8e9f4aea8f9f52ea909f54ea919f63ea929f5fea939f60ea949f61ea959f66ea969f67ea979f6cea989f6aea999f77ea9a9f72ea9b9f76ea9c9f95ea9d9f9cea9e9fa0ea9f582feaa069c7eaa19059eaa27464eaa351dceaa47199ed407e8aed41891ced429348ed439288ed4484dced454fc9ed4670bbed476631ed4868c8ed4992f9ed4a66fbed4b5f45ed4c4e28ed4d4ee1ed4e4efced4f4f00ed504f03ed514f39ed524f56ed534f92ed544f8aed554f9aed564f94ed574fcded585040ed595022ed5a4fffed5b501eed5c5046ed5d5070ed5e5042ed5f5094ed6050f4ed6150d8ed62514aed635164ed64519ded6551beed6651eced675215ed68529ced6952a6ed6a52c0ed6b52dbed6c5300ed6d5307ed6e5324ed6f5372ed705393ed7153b2ed7253dded73fa0eed74549ced75548aed7654a9ed7754ffed785586ed795759ed7a5765ed7b57aced7c57c8ed7d57c7ed7efa0fed80fa10ed81589eed8258b2ed83590bed845953ed85595bed86595ded875963ed8859a4ed8959baed8a5b56ed8b5bc0ed8c752fed8d5bd8ed8e5beced8f5c1eed905ca6ed915cbaed925cf5ed935d27ed945d53ed95fa11ed965d42ed975d6ded985db8ed995db9ed9a5dd0ed9b5f21ed9c5f34ed9d5f67ed9e5fb7ed9f5fdeeda0605deda16085eda2608aeda360deeda460d5eda56120eda660f2eda76111eda86137eda96130edaa6198edab6213edac62a6edad63f5edae6460edaf649dedb064ceedb1654eedb26600edb36615edb4663bedb56609edb6662eedb7661eedb86624edb96665edba6657edbb6659edbcfa12edbd6673edbe6699edbf66a0edc066b2edc166bfedc266faedc3670eedc4f929edc56766edc667bbedc76852edc867c0edc96801edca6844edcb68cfedccfa13edcd6968edcefa14edcf6998edd069e2edd16a30edd26a6bedd36a46edd46a73edd56a7eedd66ae2edd76ae4edd86bd6edd96c3fedda6c5ceddb6c86eddc6c6feddd6cdaedde6d04eddf6d87ede06d6fede16d96ede26dacede36dcfede46df8ede56df2ede66dfcede76e39ede86e5cede96e27edea6e3cedeb6ebfedec6f88eded6fb5edee6ff5edef7005edf07007edf17028edf27085edf370abedf4710fedf57104edf6715cedf77146edf87147edf9fa15edfa71c1edfb71feedfc72b1ee4072beee417324ee42fa16ee437377ee4473bdee4573c9ee4673d6ee4773e3ee4873d2ee497407ee4a73f5ee4b7426ee4c742aee4d7429ee4e742eee4f7462ee507489ee51749fee527501ee53756fee547682ee55769cee56769eee57769bee5876a6ee59fa17ee5a7746ee5b52afee5c7821ee5d784eee5e7864ee5f787aee607930ee61fa18ee62fa19ee63fa1aee647994ee65fa1bee66799bee677ad1ee687ae7ee69fa1cee6a7aebee6b7b9eee6cfa1dee6d7d48ee6e7d5cee6f7db7ee707da0ee717dd6ee727e52ee737f47ee747fa1ee75fa1eee768301ee778362ee78837fee7983c7ee7a83f6ee7b8448ee7c84b4ee7d8553ee7e8559ee80856bee81fa1fee8285b0ee83fa20ee84fa21ee858807ee8688f5ee878a12ee888a37ee898a79ee8a8aa7ee8b8abeee8c8adfee8dfa22ee8e8af6ee8f8b53ee908b7fee918cf0ee928cf4ee938d12ee948d76ee95fa23ee968ecfee97fa24ee98fa25ee999067ee9a90deee9bfa26ee9c9115ee9d9127ee9e91daee9f91d7eea091deeea191edeea291eeeea391e4eea491e5eea59206eea69210eea7920aeea8923aeea99240eeaa923ceeab924eeeac9259eead9251eeae9239eeaf9267eeb092a7eeb19277eeb29278eeb392e7eeb492d7eeb592d9eeb692d0eeb7fa27eeb892d5eeb992e0eeba92d3eebb9325eebc9321eebd92fbeebefa28eebf931eeec092ffeec1931deec29302eec39370eec49357eec593a4eec693c6eec793deeec893f8eec99431eeca9445eecb9448eecc9592eecdf9dceecefa29eecf969deed096afeed19733eed2973beed39743eed4974deed5974feed69751eed79755eed89857eed99865eedafa2aeedbfa2beedc9927eeddfa2ceede999eeedf9a4eeee09ad9eee19adceee29b75eee39b72eee49b8feee59bb1eee69bbbeee79c00eee89d70eee99d6beeeafa2deeeb9e19eeec9ed1eeef2170eef02171eef12172eef22173eef32174eef42175eef52176eef62177eef72178eef82179eef9ffe2eefaffe4eefbff07eefcff02f040e000f041e001f042e002f043e003f044e004f045e005f046e006f047e007f048e008f049e009f04ae00af04be00bf04ce00cf04de00df04ee00ef04fe00ff050e010f051e011f052e012f053e013f054e014f055e015f056e016f057e017f058e018f059e019f05ae01af05be01bf05ce01cf05de01df05ee01ef05fe01ff060e020f061e021f062e022f063e023f064e024f065e025f066e026f067e027f068e028f069e029f06ae02af06be02bf06ce02cf06de02df06ee02ef06fe02ff070e030f071e031f072e032f073e033f074e034f075e035f076e036f077e037f078e038f079e039f07ae03af07be03bf07ce03cf07de03df07ee03ef080e03ff081e040f082e041f083e042f084e043f085e044f086e045f087e046f088e047f089e048f08ae049f08be04af08ce04bf08de04cf08ee04df08fe04ef090e04ff091e050f092e051f093e052f094e053f095e054f096e055f097e056f098e057f099e058f09ae059f09be05af09ce05bf09de05cf09ee05df09fe05ef0a0e05ff0a1e060f0a2e061f0a3e062f0a4e063f0a5e064f0a6e065f0a7e066f0a8e067f0a9e068f0aae069f0abe06af0ace06bf0ade06cf0aee06df0afe06ef0b0e06ff0b1e070f0b2e071f0b3e072f0b4e073f0b5e074f0b6e075f0b7e076f0b8e077f0b9e078f0bae079f0bbe07af0bce07bf0bde07cf0bee07df0bfe07ef0c0e07ff0c1e080f0c2e081f0c3e082f0c4e083f0c5e084f0c6e085f0c7e086f0c8e087f0c9e088f0cae089f0cbe08af0cce08bf0cde08cf0cee08df0cfe08ef0d0e08ff0d1e090f0d2e091f0d3e092f0d4e093f0d5e094f0d6e095f0d7e096f0d8e097f0d9e098f0dae099f0dbe09af0dce09bf0dde09cf0dee09df0dfe09ef0e0e09ff0e1e0a0f0e2e0a1f0e3e0a2f0e4e0a3f0e5e0a4f0e6e0a5f0e7e0a6f0e8e0a7f0e9e0a8f0eae0a9f0ebe0aaf0ece0abf0ede0acf0eee0adf0efe0aef0f0e0aff0f1e0b0f0f2e0b1f0f3e0b2f0f4e0b3f0f5e0b4f0f6e0b5f0f7e0b6f0f8e0b7f0f9e0b8f0fae0b9f0fbe0baf0fce0bbf140e0bcf141e0bdf142e0bef143e0bff144e0c0f145e0c1f146e0c2f147e0c3f148e0c4f149e0c5f14ae0c6f14be0c7f14ce0c8f14de0c9f14ee0caf14fe0cbf150e0ccf151e0cdf152e0cef153e0cff154e0d0f155e0d1f156e0d2f157e0d3f158e0d4f159e0d5f15ae0d6f15be0d7f15ce0d8f15de0d9f15ee0daf15fe0dbf160e0dcf161e0ddf162e0def163e0dff164e0e0f165e0e1f166e0e2f167e0e3f168e0e4f169e0e5f16ae0e6f16be0e7f16ce0e8f16de0e9f16ee0eaf16fe0ebf170e0ecf171e0edf172e0eef173e0eff174e0f0f175e0f1f176e0f2f177e0f3f178e0f4f179e0f5f17ae0f6f17be0f7f17ce0f8f17de0f9f17ee0faf180e0fbf181e0fcf182e0fdf183e0fef184e0fff185e100f186e101f187e102f188e103f189e104f18ae105f18be106f18ce107f18de108f18ee109f18fe10af190e10bf191e10cf192e10df193e10ef194e10ff195e110f196e111f197e112f198e113f199e114f19ae115f19be116f19ce117f19de118f19ee119f19fe11af1a0e11bf1a1e11cf1a2e11df1a3e11ef1a4e11ff1a5e120f1a6e121f1a7e122f1a8e123f1a9e124f1aae125f1abe126f1ace127f1ade128f1aee129f1afe12af1b0e12bf1b1e12cf1b2e12df1b3e12ef1b4e12ff1b5e130f1b6e131f1b7e132f1b8e133f1b9e134f1bae135f1bbe136f1bce137f1bde138f1bee139f1bfe13af1c0e13bf1c1e13cf1c2e13df1c3e13ef1c4e13ff1c5e140f1c6e141f1c7e142f1c8e143f1c9e144f1cae145f1cbe146f1cce147f1cde148f1cee149f1cfe14af1d0e14bf1d1e14cf1d2e14df1d3e14ef1d4e14ff1d5e150f1d6e151f1d7e152f1d8e153f1d9e154f1dae155f1dbe156f1dce157f1dde158f1dee159f1dfe15af1e0e15bf1e1e15cf1e2e15df1e3e15ef1e4e15ff1e5e160f1e6e161f1e7e162f1e8e163f1e9e164f1eae165f1ebe166f1ece167f1ede168f1eee169f1efe16af1f0e16bf1f1e16cf1f2e16df1f3e16ef1f4e16ff1f5e170f1f6e171f1f7e172f1f8e173f1f9e174f1fae175f1fbe176f1fce177f240e178f241e179f242e17af243e17bf244e17cf245e17df246e17ef247e17ff248e180f249e181f24ae182f24be183f24ce184f24de185f24ee186f24fe187f250e188f251e189f252e18af253e18bf254e18cf255e18df256e18ef257e18ff258e190f259e191f25ae192f25be193f25ce194f25de195f25ee196f25fe197f260e198f261e199f262e19af263e19bf264e19cf265e19df266e19ef267e19ff268e1a0f269e1a1f26ae1a2f26be1a3f26ce1a4f26de1a5f26ee1a6f26fe1a7f270e1a8f271e1a9f272e1aaf273e1abf274e1acf275e1adf276e1aef277e1aff278e1b0f279e1b1f27ae1b2f27be1b3f27ce1b4f27de1b5f27ee1b6f280e1b7f281e1b8f282e1b9f283e1baf284e1bbf285e1bcf286e1bdf287e1bef288e1bff289e1c0f28ae1c1f28be1c2f28ce1c3f28de1c4f28ee1c5f28fe1c6f290e1c7f291e1c8f292e1c9f293e1caf294e1cbf295e1ccf296e1cdf297e1cef298e1cff299e1d0f29ae1d1f29be1d2f29ce1d3f29de1d4f29ee1d5f29fe1d6f2a0e1d7f2a1e1d8f2a2e1d9f2a3e1daf2a4e1dbf2a5e1dcf2a6e1ddf2a7e1def2a8e1dff2a9e1e0f2aae1e1f2abe1e2f2ace1e3f2ade1e4f2aee1e5f2afe1e6f2b0e1e7f2b1e1e8f2b2e1e9f2b3e1eaf2b4e1ebf2b5e1ecf2b6e1edf2b7e1eef2b8e1eff2b9e1f0f2bae1f1f2bbe1f2f2bce1f3f2bde1f4f2bee1f5f2bfe1f6f2c0e1f7f2c1e1f8f2c2e1f9f2c3e1faf2c4e1fbf2c5e1fcf2c6e1fdf2c7e1fef2c8e1fff2c9e200f2cae201f2cbe202f2cce203f2cde204f2cee205f2cfe206f2d0e207f2d1e208f2d2e209f2d3e20af2d4e20bf2d5e20cf2d6e20df2d7e20ef2d8e20ff2d9e210f2dae211f2dbe212f2dce213f2dde214f2dee215f2dfe216f2e0e217f2e1e218f2e2e219f2e3e21af2e4e21bf2e5e21cf2e6e21df2e7e21ef2e8e21ff2e9e220f2eae221f2ebe222f2ece223f2ede224f2eee225f2efe226f2f0e227f2f1e228f2f2e229f2f3e22af2f4e22bf2f5e22cf2f6e22df2f7e22ef2f8e22ff2f9e230f2fae231f2fbe232f2fce233f340e234f341e235f342e236f343e237f344e238f345e239f346e23af347e23bf348e23cf349e23df34ae23ef34be23ff34ce240f34de241f34ee242f34fe243f350e244f351e245f352e246f353e247f354e248f355e249f356e24af357e24bf358e24cf359e24df35ae24ef35be24ff35ce250f35de251f35ee252f35fe253f360e254f361e255f362e256f363e257f364e258f365e259f366e25af367e25bf368e25cf369e25df36ae25ef36be25ff36ce260f36de261f36ee262f36fe263f370e264f371e265f372e266f373e267f374e268f375e269f376e26af377e26bf378e26cf379e26df37ae26ef37be26ff37ce270f37de271f37ee272f380e273f381e274f382e275f383e276f384e277f385e278f386e279f387e27af388e27bf389e27cf38ae27df38be27ef38ce27ff38de280f38ee281f38fe282f390e283f391e284f392e285f393e286f394e287f395e288f396e289f397e28af398e28bf399e28cf39ae28df39be28ef39ce28ff39de290f39ee291f39fe292f3a0e293f3a1e294f3a2e295f3a3e296f3a4e297f3a5e298f3a6e299f3a7e29af3a8e29bf3a9e29cf3aae29df3abe29ef3ace29ff3ade2a0f3aee2a1f3afe2a2f3b0e2a3f3b1e2a4f3b2e2a5f3b3e2a6f3b4e2a7f3b5e2a8f3b6e2a9f3b7e2aaf3b8e2abf3b9e2acf3bae2adf3bbe2aef3bce2aff3bde2b0f3bee2b1f3bfe2b2f3c0e2b3f3c1e2b4f3c2e2b5f3c3e2b6f3c4e2b7f3c5e2b8f3c6e2b9f3c7e2baf3c8e2bbf3c9e2bcf3cae2bdf3cbe2bef3cce2bff3cde2c0f3cee2c1f3cfe2c2f3d0e2c3f3d1e2c4f3d2e2c5f3d3e2c6f3d4e2c7f3d5e2c8f3d6e2c9f3d7e2caf3d8e2cbf3d9e2ccf3dae2cdf3dbe2cef3dce2cff3dde2d0f3dee2d1f3dfe2d2f3e0e2d3f3e1e2d4f3e2e2d5f3e3e2d6f3e4e2d7f3e5e2d8f3e6e2d9f3e7e2daf3e8e2dbf3e9e2dcf3eae2ddf3ebe2def3ece2dff3ede2e0f3eee2e1f3efe2e2f3f0e2e3f3f1e2e4f3f2e2e5f3f3e2e6f3f4e2e7f3f5e2e8f3f6e2e9f3f7e2eaf3f8e2ebf3f9e2ecf3fae2edf3fbe2eef3fce2eff440e2f0f441e2f1f442e2f2f443e2f3f444e2f4f445e2f5f446e2f6f447e2f7f448e2f8f449e2f9f44ae2faf44be2fbf44ce2fcf44de2fdf44ee2fef44fe2fff450e300f451e301f452e302f453e303f454e304f455e305f456e306f457e307f458e308f459e309f45ae30af45be30bf45ce30cf45de30df45ee30ef45fe30ff460e310f461e311f462e312f463e313f464e314f465e315f466e316f467e317f468e318f469e319f46ae31af46be31bf46ce31cf46de31df46ee31ef46fe31ff470e320f471e321f472e322f473e323f474e324f475e325f476e326f477e327f478e328f479e329f47ae32af47be32bf47ce32cf47de32df47ee32ef480e32ff481e330f482e331f483e332f484e333f485e334f486e335f487e336f488e337f489e338f48ae339f48be33af48ce33bf48de33cf48ee33df48fe33ef490e33ff491e340f492e341f493e342f494e343f495e344f496e345f497e346f498e347f499e348f49ae349f49be34af49ce34bf49de34cf49ee34df49fe34ef4a0e34ff4a1e350f4a2e351f4a3e352f4a4e353f4a5e354f4a6e355f4a7e356f4a8e357f4a9e358f4aae359f4abe35af4ace35bf4ade35cf4aee35df4afe35ef4b0e35ff4b1e360f4b2e361f4b3e362f4b4e363f4b5e364f4b6e365f4b7e366f4b8e367f4b9e368f4bae369f4bbe36af4bce36bf4bde36cf4bee36df4bfe36ef4c0e36ff4c1e370f4c2e371f4c3e372f4c4e373f4c5e374f4c6e375f4c7e376f4c8e377f4c9e378f4cae379f4cbe37af4cce37bf4cde37cf4cee37df4cfe37ef4d0e37ff4d1e380f4d2e381f4d3e382f4d4e383f4d5e384f4d6e385f4d7e386f4d8e387f4d9e388f4dae389f4dbe38af4dce38bf4dde38cf4dee38df4dfe38ef4e0e38ff4e1e390f4e2e391f4e3e392f4e4e393f4e5e394f4e6e395f4e7e396f4e8e397f4e9e398f4eae399f4ebe39af4ece39bf4ede39cf4eee39df4efe39ef4f0e39ff4f1e3a0f4f2e3a1f4f3e3a2f4f4e3a3f4f5e3a4f4f6e3a5f4f7e3a6f4f8e3a7f4f9e3a8f4fae3a9f4fbe3aaf4fce3abf540e3acf541e3adf542e3aef543e3aff544e3b0f545e3b1f546e3b2f547e3b3f548e3b4f549e3b5f54ae3b6f54be3b7f54ce3b8f54de3b9f54ee3baf54fe3bbf550e3bcf551e3bdf552e3bef553e3bff554e3c0f555e3c1f556e3c2f557e3c3f558e3c4f559e3c5f55ae3c6f55be3c7f55ce3c8f55de3c9f55ee3caf55fe3cbf560e3ccf561e3cdf562e3cef563e3cff564e3d0f565e3d1f566e3d2f567e3d3f568e3d4f569e3d5f56ae3d6f56be3d7f56ce3d8f56de3d9f56ee3daf56fe3dbf570e3dcf571e3ddf572e3def573e3dff574e3e0f575e3e1f576e3e2f577e3e3f578e3e4f579e3e5f57ae3e6f57be3e7f57ce3e8f57de3e9f57ee3eaf580e3ebf581e3ecf582e3edf583e3eef584e3eff585e3f0f586e3f1f587e3f2f588e3f3f589e3f4f58ae3f5f58be3f6f58ce3f7f58de3f8f58ee3f9f58fe3faf590e3fbf591e3fcf592e3fdf593e3fef594e3fff595e400f596e401f597e402f598e403f599e404f59ae405f59be406f59ce407f59de408f59ee409f59fe40af5a0e40bf5a1e40cf5a2e40df5a3e40ef5a4e40ff5a5e410f5a6e411f5a7e412f5a8e413f5a9e414f5aae415f5abe416f5ace417f5ade418f5aee419f5afe41af5b0e41bf5b1e41cf5b2e41df5b3e41ef5b4e41ff5b5e420f5b6e421f5b7e422f5b8e423f5b9e424f5bae425f5bbe426f5bce427f5bde428f5bee429f5bfe42af5c0e42bf5c1e42cf5c2e42df5c3e42ef5c4e42ff5c5e430f5c6e431f5c7e432f5c8e433f5c9e434f5cae435f5cbe436f5cce437f5cde438f5cee439f5cfe43af5d0e43bf5d1e43cf5d2e43df5d3e43ef5d4e43ff5d5e440f5d6e441f5d7e442f5d8e443f5d9e444f5dae445f5dbe446f5dce447f5dde448f5dee449f5dfe44af5e0e44bf5e1e44cf5e2e44df5e3e44ef5e4e44ff5e5e450f5e6e451f5e7e452f5e8e453f5e9e454f5eae455f5ebe456f5ece457f5ede458f5eee459f5efe45af5f0e45bf5f1e45cf5f2e45df5f3e45ef5f4e45ff5f5e460f5f6e461f5f7e462f5f8e463f5f9e464f5fae465f5fbe466f5fce467f640e468f641e469f642e46af643e46bf644e46cf645e46df646e46ef647e46ff648e470f649e471f64ae472f64be473f64ce474f64de475f64ee476f64fe477f650e478f651e479f652e47af653e47bf654e47cf655e47df656e47ef657e47ff658e480f659e481f65ae482f65be483f65ce484f65de485f65ee486f65fe487f660e488f661e489f662e48af663e48bf664e48cf665e48df666e48ef667e48ff668e490f669e491f66ae492f66be493f66ce494f66de495f66ee496f66fe497f670e498f671e499f672e49af673e49bf674e49cf675e49df676e49ef677e49ff678e4a0f679e4a1f67ae4a2f67be4a3f67ce4a4f67de4a5f67ee4a6f680e4a7f681e4a8f682e4a9f683e4aaf684e4abf685e4acf686e4adf687e4aef688e4aff689e4b0f68ae4b1f68be4b2f68ce4b3f68de4b4f68ee4b5f68fe4b6f690e4b7f691e4b8f692e4b9f693e4baf694e4bbf695e4bcf696e4bdf697e4bef698e4bff699e4c0f69ae4c1f69be4c2f69ce4c3f69de4c4f69ee4c5f69fe4c6f6a0e4c7f6a1e4c8f6a2e4c9f6a3e4caf6a4e4cbf6a5e4ccf6a6e4cdf6a7e4cef6a8e4cff6a9e4d0f6aae4d1f6abe4d2f6ace4d3f6ade4d4f6aee4d5f6afe4d6f6b0e4d7f6b1e4d8f6b2e4d9f6b3e4daf6b4e4dbf6b5e4dcf6b6e4ddf6b7e4def6b8e4dff6b9e4e0f6bae4e1f6bbe4e2f6bce4e3f6bde4e4f6bee4e5f6bfe4e6f6c0e4e7f6c1e4e8f6c2e4e9f6c3e4eaf6c4e4ebf6c5e4ecf6c6e4edf6c7e4eef6c8e4eff6c9e4f0f6cae4f1f6cbe4f2f6cce4f3f6cde4f4f6cee4f5f6cfe4f6f6d0e4f7f6d1e4f8f6d2e4f9f6d3e4faf6d4e4fbf6d5e4fcf6d6e4fdf6d7e4fef6d8e4fff6d9e500f6dae501f6dbe502f6dce503f6dde504f6dee505f6dfe506f6e0e507f6e1e508f6e2e509f6e3e50af6e4e50bf6e5e50cf6e6e50df6e7e50ef6e8e50ff6e9e510f6eae511f6ebe512f6ece513f6ede514f6eee515f6efe516f6f0e517f6f1e518f6f2e519f6f3e51af6f4e51bf6f5e51cf6f6e51df6f7e51ef6f8e51ff6f9e520f6fae521f6fbe522f6fce523f740e524f741e525f742e526f743e527f744e528f745e529f746e52af747e52bf748e52cf749e52df74ae52ef74be52ff74ce530f74de531f74ee532f74fe533f750e534f751e535f752e536f753e537f754e538f755e539f756e53af757e53bf758e53cf759e53df75ae53ef75be53ff75ce540f75de541f75ee542f75fe543f760e544f761e545f762e546f763e547f764e548f765e549f766e54af767e54bf768e54cf769e54df76ae54ef76be54ff76ce550f76de551f76ee552f76fe553f770e554f771e555f772e556f773e557f774e558f775e559f776e55af777e55bf778e55cf779e55df77ae55ef77be55ff77ce560f77de561f77ee562f780e563f781e564f782e565f783e566f784e567f785e568f786e569f787e56af788e56bf789e56cf78ae56df78be56ef78ce56ff78de570f78ee571f78fe572f790e573f791e574f792e575f793e576f794e577f795e578f796e579f797e57af798e57bf799e57cf79ae57df79be57ef79ce57ff79de580f79ee581f79fe582f7a0e583f7a1e584f7a2e585f7a3e586f7a4e587f7a5e588f7a6e589f7a7e58af7a8e58bf7a9e58cf7aae58df7abe58ef7ace58ff7ade590f7aee591f7afe592f7b0e593f7b1e594f7b2e595f7b3e596f7b4e597f7b5e598f7b6e599f7b7e59af7b8e59bf7b9e59cf7bae59df7bbe59ef7bce59ff7bde5a0f7bee5a1f7bfe5a2f7c0e5a3f7c1e5a4f7c2e5a5f7c3e5a6f7c4e5a7f7c5e5a8f7c6e5a9f7c7e5aaf7c8e5abf7c9e5acf7cae5adf7cbe5aef7cce5aff7cde5b0f7cee5b1f7cfe5b2f7d0e5b3f7d1e5b4f7d2e5b5f7d3e5b6f7d4e5b7f7d5e5b8f7d6e5b9f7d7e5baf7d8e5bbf7d9e5bcf7dae5bdf7dbe5bef7dce5bff7dde5c0f7dee5c1f7dfe5c2f7e0e5c3f7e1e5c4f7e2e5c5f7e3e5c6f7e4e5c7f7e5e5c8f7e6e5c9f7e7e5caf7e8e5cbf7e9e5ccf7eae5cdf7ebe5cef7ece5cff7ede5d0f7eee5d1f7efe5d2f7f0e5d3f7f1e5d4f7f2e5d5f7f3e5d6f7f4e5d7f7f5e5d8f7f6e5d9f7f7e5daf7f8e5dbf7f9e5dcf7fae5ddf7fbe5def7fce5dff840e5e0f841e5e1f842e5e2f843e5e3f844e5e4f845e5e5f846e5e6f847e5e7f848e5e8f849e5e9f84ae5eaf84be5ebf84ce5ecf84de5edf84ee5eef84fe5eff850e5f0f851e5f1f852e5f2f853e5f3f854e5f4f855e5f5f856e5f6f857e5f7f858e5f8f859e5f9f85ae5faf85be5fbf85ce5fcf85de5fdf85ee5fef85fe5fff860e600f861e601f862e602f863e603f864e604f865e605f866e606f867e607f868e608f869e609f86ae60af86be60bf86ce60cf86de60df86ee60ef86fe60ff870e610f871e611f872e612f873e613f874e614f875e615f876e616f877e617f878e618f879e619f87ae61af87be61bf87ce61cf87de61df87ee61ef880e61ff881e620f882e621f883e622f884e623f885e624f886e625f887e626f888e627f889e628f88ae629f88be62af88ce62bf88de62cf88ee62df88fe62ef890e62ff891e630f892e631f893e632f894e633f895e634f896e635f897e636f898e637f899e638f89ae639f89be63af89ce63bf89de63cf89ee63df89fe63ef8a0e63ff8a1e640f8a2e641f8a3e642f8a4e643f8a5e644f8a6e645f8a7e646f8a8e647f8a9e648f8aae649f8abe64af8ace64bf8ade64cf8aee64df8afe64ef8b0e64ff8b1e650f8b2e651f8b3e652f8b4e653f8b5e654f8b6e655f8b7e656f8b8e657f8b9e658f8bae659f8bbe65af8bce65bf8bde65cf8bee65df8bfe65ef8c0e65ff8c1e660f8c2e661f8c3e662f8c4e663f8c5e664f8c6e665f8c7e666f8c8e667f8c9e668f8cae669f8cbe66af8cce66bf8cde66cf8cee66df8cfe66ef8d0e66ff8d1e670f8d2e671f8d3e672f8d4e673f8d5e674f8d6e675f8d7e676f8d8e677f8d9e678f8dae679f8dbe67af8dce67bf8dde67cf8dee67df8dfe67ef8e0e67ff8e1e680f8e2e681f8e3e682f8e4e683f8e5e684f8e6e685f8e7e686f8e8e687f8e9e688f8eae689f8ebe68af8ece68bf8ede68cf8eee68df8efe68ef8f0e68ff8f1e690f8f2e691f8f3e692f8f4e693f8f5e694f8f6e695f8f7e696f8f8e697f8f9e698f8fae699f8fbe69af8fce69bf940e69cfa402170fa412171fa422172fa432173fa442174fa452175fa462176fa472177fa482178fa492179fa4a2160fa4b2161fa4c2162fa4d2163fa4e2164fa4f2165fa502166fa512167fa522168fa532169fa54ffe2fa55ffe4fa56ff07fa57ff02fa583231fa592116fa5a2121fa5b2235fa5c7e8afa5d891cfa5e9348fa5f9288fa6084dcfa614fc9fa6270bbfa636631fa6468c8fa6592f9fa6666fbfa675f45fa684e28fa694ee1fa6a4efcfa6b4f00fa6c4f03fa6d4f39fa6e4f56fa6f4f92fa704f8afa714f9afa724f94fa734fcdfa745040fa755022fa764ffffa77501efa785046fa795070fa7a5042fa7b5094fa7c50f4fa7d50d8fa7e514afa805164fa81519dfa8251befa8351ecfa845215fa85529cfa8652a6fa8752c0fa8852dbfa895300fa8a5307fa8b5324fa8c5372fa8d5393fa8e53b2fa8f53ddfa90fa0efa91549cfa92548afa9354a9fa9454fffa955586fa965759fa975765fa9857acfa9957c8fa9a57c7fa9bfa0ffa9cfa10fa9d589efa9e58b2fa9f590bfaa05953faa1595bfaa2595dfaa35963faa459a4faa559bafaa65b56faa75bc0faa8752ffaa95bd8faaa5becfaab5c1efaac5ca6faad5cbafaae5cf5faaf5d27fab05d53fab1fa11fab25d42fab35d6dfab45db8fab55db9fab65dd0fab75f21fab85f34fab95f67faba5fb7fabb5fdefabc605dfabd6085fabe608afabf60defac060d5fac16120fac260f2fac36111fac46137fac56130fac66198fac76213fac862a6fac963f5faca6460facb649dfacc64cefacd654eface6600facf6615fad0663bfad16609fad2662efad3661efad46624fad56665fad66657fad76659fad8fa12fad96673fada6699fadb66a0fadc66b2fadd66bffade66fafadf670efae0f929fae16766fae267bbfae36852fae467c0fae56801fae66844fae768cffae8fa13fae96968faeafa14faeb6998faec69e2faed6a30faee6a6bfaef6a46faf06a73faf16a7efaf26ae2faf36ae4faf46bd6faf56c3ffaf66c5cfaf76c86faf86c6ffaf96cdafafa6d04fafb6d87fafc6d6ffb406d96fb416dacfb426dcffb436df8fb446df2fb456dfcfb466e39fb476e5cfb486e27fb496e3cfb4a6ebffb4b6f88fb4c6fb5fb4d6ff5fb4e7005fb4f7007fb507028fb517085fb5270abfb53710ffb547104fb55715cfb567146fb577147fb58fa15fb5971c1fb5a71fefb5b72b1fb5c72befb5d7324fb5efa16fb5f7377fb6073bdfb6173c9fb6273d6fb6373e3fb6473d2fb657407fb6673f5fb677426fb68742afb697429fb6a742efb6b7462fb6c7489fb6d749ffb6e7501fb6f756ffb707682fb71769cfb72769efb73769bfb7476a6fb75fa17fb767746fb7752affb787821fb79784efb7a7864fb7b787afb7c7930fb7dfa18fb7efa19fb80fa1afb817994fb82fa1bfb83799bfb847ad1fb857ae7fb86fa1cfb877aebfb887b9efb89fa1dfb8a7d48fb8b7d5cfb8c7db7fb8d7da0fb8e7dd6fb8f7e52fb907f47fb917fa1fb92fa1efb938301fb948362fb95837ffb9683c7fb9783f6fb988448fb9984b4fb9a8553fb9b8559fb9c856bfb9dfa1ffb9e85b0fb9ffa20fba0fa21fba18807fba288f5fba38a12fba48a37fba58a79fba68aa7fba78abefba88adffba9fa22fbaa8af6fbab8b53fbac8b7ffbad8cf0fbae8cf4fbaf8d12fbb08d76fbb1fa23fbb28ecffbb3fa24fbb4fa25fbb59067fbb690defbb7fa26fbb89115fbb99127fbba91dafbbb91d7fbbc91defbbd91edfbbe91eefbbf91e4fbc091e5fbc19206fbc29210fbc3920afbc4923afbc59240fbc6923cfbc7924efbc89259fbc99251fbca9239fbcb9267fbcc92a7fbcd9277fbce9278fbcf92e7fbd092d7fbd192d9fbd292d0fbd3fa27fbd492d5fbd592e0fbd692d3fbd79325fbd89321fbd992fbfbdafa28fbdb931efbdc92fffbdd931dfbde9302fbdf9370fbe09357fbe193a4fbe293c6fbe393defbe493f8fbe59431fbe69445fbe79448fbe89592fbe9f9dcfbeafa29fbeb969dfbec96affbed9733fbee973bfbef9743fbf0974dfbf1974ffbf29751fbf39755fbf49857fbf59865fbf6fa2afbf7fa2bfbf89927fbf9fa2cfbfa999efbfb9a4efbfc9ad9fc409adcfc419b75fc429b72fc439b8ffc449bb1fc459bbbfc469c00fc479d70fc489d6bfc49fa2dfc4a9e19fc4b9ed1";
const makeTable = (map) => {
const len = map.length;
const tbl = {};
for (let i = 0; i < len; i += 8) {
const sjis = parseInt(map.substring(i, i + 4), 16);
const utf8 = parseInt(map.substring(i + 4, i + 8), 16);
tbl[sjis] = String.fromCharCode(utf8);
}
return tbl;
};
const tbl1 = makeTable(map1);
const tbl2 = makeTable(map2);
const SJIS = {};
SJIS.decode = (sjis, len) => {
const ss = [];
let n = 0;
if (len == null) {
len = sjis.length;
} else if (len > sjis.length) {
len = sjis.length;
}
const cerr = String.fromCharCode(65533);
while (n < len) {
const m = sjis[n++];
const c = tbl1[m];
if (c) {
ss.push(c);
continue;
}
const m2 = (m << 8) | sjis[n++];
const c2 = tbl2[m2];
if (c2) {
ss.push(c2);
continue;
} else {
ss.push(cerr);
}
n--;
}
return ss.join("");
};
SJIS.isSJIS = (sjis) => { // 短い時に誤判定がある
const cerr = String.fromCharCode(65533);
const s = SJIS.decode(sjis, 10000);
return s.indexOf(cerr) === -1;
};
SJIS.decodeAuto = (bin) => {
return SJIS.isSJIS(bin) ? SJIS.decode(bin) : new TextDecoder().decode(bin);
};
export { SJIS };