GithubHelp home page GithubHelp logo

Can't search for song about musicbox HOT 22 CLOSED

darknessomi avatar darknessomi commented on September 25, 2024
Can't search for song

from musicbox.

Comments (22)

shiywang avatar shiywang commented on September 25, 2024

This NetEase-MusicBox using the API of “网易云音乐"
Try to search on this website http://music.163.com/#/search
and make sure the song you want exist .

from musicbox.

shiywang avatar shiywang commented on September 25, 2024

Can you tell me the name of the song you search for it?

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

I tried different Songs for example Back in Black, or looking for artists
like Linkin Park.

  • sent from my mobile phone

from musicbox.

shiywang avatar shiywang commented on September 25, 2024

those songs all work fine in my computer.
Are you sure the network is connected or the musicbox is latest version ?

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

well network connection is working, since I can play the playlist songs. I
just installed the program, so it should be up to date (does cloning from
git make any difference to downloading and installing zip?). just to make
sure it's not a translation problem: from the main menu searching for song
is 8 -> 1, right?

  • sent from my mobile phone

from musicbox.

darknessomi avatar darknessomi commented on September 25, 2024

please tell me your ISP ?
some ISP can not connect the resource.

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

OS: Ubuntu 14.04 ISP: Kabel Deutschland. but strangely I have no problem
searching in the website itself + as mentioned I can browse and listen to
charts in the program. So if there should be a problem with the ISP,
shouldn't these functions not work either?

  • sent from my mobile phone

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

I just tried connecting via UK VPN, still the same problem.

  • sent from my mobile phone

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

maybe I need to be connected via China? I will try vpn later. still
wondering why playlists would work though :/

  • sent from my mobile phone

from musicbox.

darknessomi avatar darknessomi commented on September 25, 2024

@banana-sama yes ! you need China VPN, when I via JP VPN ,I can't search for song ,too.

from musicbox.

shiywang avatar shiywang commented on September 25, 2024

what a shame : ( cause of GFW

from musicbox.

chaserhkj avatar chaserhkj commented on September 25, 2024

@Chenai Not exactly, I guess it may be a copyright issue.

As you know, when talking about music distribution, many distributions authorized by copyright holders are restricted according to district. I guess that some songs NetEase Cloud Music owns are copyrighted to them, but they are only allowed to distribute them in China (Most of these copyright holders will do this, cause exclude distribution right in other countries are often authorized to other native companies, so to avoid violating their interest distribution is restricted), so NetEase is blocking foreign IPs from accessing these content, that's completely possible, just refer to YouTube's "This content is not accessible to your country or region" note, it's all the same

However, this explanation cannot fit to the fact that web search is available in these situation, @banana-sama , have you tried play songs directly through web search result in the page , anyway?

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

True... but strangely I can play the songs without any issue when accessing
the webpage directly

  • sent from my mobile phone

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

Ok I tried using a chinese proxy via proxychain. The proxy seems to be working. But still the program doesn't find anything. There seems to be some trouble resolving the dns.

edit: definitely a dns problem. Tried pinging music.163.com and it returned 123.58.180.105. When I type mentioned IP into my browser it says 404 not found.
also when I try to traceroute6 music.163.com I get an "unknown host music.164.com"

screenshot from 2015-05-05 21 37 48

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

Could someone kindly try searching for a song from china, while using chinese proxy. Just wondering if they block access from proxies aswell.
Thanks

from musicbox.

Catofes avatar Catofes commented on September 25, 2024

抓了一下包,从国外搜索, 返回的数据加密了,所以估计要改api。

Seems that the api was changed when you were out of china.

request

POST /api/search/get/web HTTP/1.1
content-length : 43
accept-language : zh-CN,zh;q=0.8,gl;q=0.6,zh-TW;q=0.4
accept-encoding : gzip,deflate,sdch
host : music.163.com
accept : /
user-agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36
connection : keep-alive
referer : http://music.163.com/search/
content-type : application/x-www-form-urlencoded
request body

limit=60&s=hello&total=true&type=1&offset=0

response header

HTTP/1.1 200
server : nginx
date : Fri, 08 May 2015 02:47:25 GMT
content-type : text/plain;charset=UTF-8
transfer-encoding : chunked
connection : keep-alive
vary : Accept-Encoding
cache-control : no-store, no-cache
pragrma : no-cache
expires : Thu, 01 Jan 1970 00:00:00 GMT
set-cookie : usertrack=ezq0alVMI73CGUW5wlp2Ag==; expires=Sat, 07-May-16 02:47:25 GMT; domain=music.163.com; path=/
p3p : policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID"
access-control-allow-credentials : true
access-control-allow-origin : -_-||
access-control-allow-methods : GET, POST, PUT
access-control-allow-headers : -
_-||
response body

{"result":"35b1748964afb6f6ab00803a0762655b87b4143255a26acf1ae8550d3b81b3e8abb6b179491a93403a3abf4d0338b10b0b92f6006db2bb3a3adae24dff624814a5e8ef743bc801f13b8c950f380e85ea1f5e85e63d8582cfe58082f3948aaf66e0974ef4d7d2c889d1bf301eb7bfb1a848983d39483bce2789d9528be7fb400213ba3ac1afff047c63396db594a1f59197bc542d71f6aecff9af29504e2dd6f962ad33da98d0e9ae04db07e35ddba6669c0a2a9979b09e4aa2729dba44247a7f7f104d0b48a70ab120fa1c677094cf890e0aa309c4e743d828998c98fba0204d5163116bb8cc36ac4bf2bbfbc7e90ebb4ec810b5501fa18b48d8c665796e3cd3eec921dcff38dce44d3c07a0623895df29b76aae8c857a7e120a3a37729421a1c689ca13a844b76324300172629ed20dff8bc9ca7ccf0029243279f59caad37e17a3fb8d08303722f23cf6af95e6fd6b5362143b06fe1cd4898aafbff416e6de48408b9d2d7ccf5ba26db5e8401a243ed3403324872e897415ecaa4d57aa62d838af1e7798e800f13bca3d3b017af50bea8c659463e8db0be089975721cd04f28c9c027779d03d246ff3f0232068baeb9dc60c9a79ffc7aa9d48db8c64aea414b601db50be1ede646cd9df576a2423af66ecf52e9ccb8e0a8974c54579d940fb109d79944d0ce26db26262898569e042d23361ad45843aebe9a0d83ef974ec0a879f32c1e34f8b3b0832d7f4f4cfd6d63333c13bd151d637b0b185a089ad9c7685c5c15f404baa9e4edebbfbcb33b4ab470049db49f70d9544ecb466a7f92d7fa50a2f7b33d9065e0989457eb3522c2e070e54e2c1a8f7848504e301b7b72e85a233b2c6a89c0773ab2277323529b1e0ff798dcd54843a047a3f3b3ba5e8552aed9f6f672f21ae32c9c8b22c097f53d67cf6c9a021db03a1f61589a0da5d0f38855fafba66c9a1899fa5d87307ed5f5180871340c0e03039ea0999d0ebc1b21a44970ba02d1fb0bfcd7b04dd0a9a372e32bc335f49a1cb362c04beb01422d630a23d5e2b85794dc816b041c1d644323840400a04a647f69f961f06f531183c4e384ba640ebd011232489741818a100ff57ae0af9a12dbacf6302b1bf1540f9fd3a4ec713624d7abc4be4a6f82c858766c1a0d2ed298b7c9865c94b305ea85795509c3e78517aa239e8743c7fdf1229ab0607a27a666ad3adb6772bca53fb965080447b98790558975448f120fbc3014a786d0e42395fe7a8859e14301e21ea6de716ac42a7109f87b33c302c26097713135f3e507974f7030704ae7b8367a57eecf7454f89db44e264b2088166cb7cb422ffebbc4ed4bb12ae011a6dc71f6674b305bac1a52ec57ced30e0b03a1319afb54797b8f40cb16bbb74aeb48a44f6aaf57c48a499c98bda3089a0b74489fb076572b6ec798b7785a0af536fc659bce8bf12ec542d6a9269cfca9cda25b5add61addad30da61d0e7e404db0deb52ea7f874db255f2499045b1a239e37cb72455384787798ec98efeafb62b2f2ef76a47caa613a30903ad5dd8765990e3fba020ca64636d6b48cc91194bf2defbcdde76bb562f217aef1f484d48071383e31f31d2cb5f50b79d637d8ab1edc33bb3512217a5fd02d6cb53592b32a885c18171211e96a4ab13a8a455077be4352f51c79c4ec1d6a0081e863a951e014fa5cbcda232b2c6a887e2c058d60713fb66f64502ac112a0f45c7e96bda5e39bba0557e2da398f58c73a89793484195bb79adb3c72d49f13e290dcd2feb4fa0138c170bed6d4d51eda53433726bdd8908b3e713a8baa8ecc2597d95489b47e80d62388bd69590f5d9a6dbcd86cb3a98fd1e774f3877612010db59a7de25cebeb5d91a613448ddc640117723e433c71395164ac51f7313bcb2e735cc2d843a17de3aaac2b8f2ec3c8bd3b456370b658934532fc75364410e10dcd4d2e91152770a374f7e8734a71092af789f04073a7d976b063a5e1e9df54e799456b0cf0d04142a91fc4feebce874d800c12b897baf6f08b0b332836bdb1020c1447be2b9675567443c295f3b7311ae450d0440891e68a0f1a8cc6199874920e69b7ccf3e5fe67f9fee7a79e696b310a5330dc86448359fbb00653a140601852d086489be0b3148514f6a3f0792eb274809e68bc8b55b99565e1eeeb5c742a22db8d7d70f4b1347e98c80304aacf62eff0ea5427b3a6506d3f1dd2f75552168c2f787a807d287179018bcb6f110335f43a3957449e6fbd1eebccc796585c1af21c44752399c0a0b96d9f6d3a8992cc8663ecfded30d4a3e374d473ec0f27196f4cf0595a0c54800386b154ea710ac8e611515bba0445dc68bd196812cbec13b719bc159da5cec63d1d93bc08afda05bc0938de9f21818d25da3de5e954d7607943df6628522148ad37f093f2d5f40f74d07c381af8c06c179ee110efbd1f50f38a1485ac5e77bf4cd37dfeff6ee791d2c533a6f845771c05cdb0b9eaea4694bc58647de750e62108e4ded2a6a7513822c498971d663689266a0a8109cb8bf1a992d1460bb3667e41e30a18256408e0d4054861e799d7c0e906412c24ac82d957c90b264d3d9ff7cac1e319513da0f125f31714d88ab17caf455aa5e99ec6e3771edd1fc89d12295a100133a42381aa1cb2673c6347521de624401a43444db2e25848942828d815d8c68386daf6b61e98407d8dea0914ed9082ea810599eeac321192660a0cc8937bea57c103a6e5379a17c1dc0153139d840f9c7be5ff976ec01cfa34089c7022c8c13ec336313a866d9df178ea0c695d8391315ada1ecb274c865e29a8952533cda4a4d5fd3172c25a85df689f257a8ccf1d37e36469a105baf7a9f04dd3a166f3a9d2d5f42a69f565b32971ae079f57a0de0f5f51f66e45d74ffa0283a04922a14fc4432b4b75566c8e796129c6b6e599bc617ae486b10dcb00b0715e977ca8173a374459c50f07c436df60dbc25e5d713a8c03bfd33c16b92b181f68974c56e9d5dde4f5e65f9485b516a1537406f14df560e693dde5f37b54363c381b3ff487ef1947e2e2cd35d319522d9f5e3a40ea6d678df25ae7cfc5360532ce36092a44e5c42cc9ed88d4659c5e8cc1a79ff629d47d6512ad875b597a7cb8971af69d92fb185d899dd2ca31d05404583d53aff13bce872e2919a2fcc047cd1c1b41140ffd990a3909d54b2b438400b6e241748d93a05fb71e9e86254d17bbe9c6e721ea0caf51853a1f05084bbc0b3aef403c0e999409c335efd3b33b0e4c93f04268922d9267cf59d9010c387a16a5bbbcd8b4510a51ebf20b29b38f989e41af42437e23420c26415e82c9d8789b53a213a0474069cd1bba78d07f6aa3006d4e65dc8e0d899c10be359981e956f4854ac48decbb501db25beb5a3d136a022cd3611239cb1eca8ffa5cb550cbb7465b1254fa5e7ffc9906e5f55f11029eccf059518de7fc909b43e7ef2714e01cfa304e1b28ba40948b8a00f00e0eecf850456f6a2396121bc3e76213331cf53d8bb076f22cb743033afaa32c062f61f94adf6042619f4523ab1ec2c2c9278c8cfde0ad365061f3a8c07a82ef6a4f4cf053abbd89f3ca6cab5b1b3cb047c6b0876bfe272a895fb387cc8aa62a848eadbe9cb4d15a03747640721ff3e3ebb5d1364450f204aaed9aa8a129f7492ed8583dffdce14d18fcab31fdb6ab463b68c57cf6e6f0e5ce3504d3651aea425b417a1a0d86826494ff1cb00dffc4f3b0a37a5d731756a7fd2f5919573e62c57a46dc91e3fcfe3830f9ce8db9e0b73a0cae6e96814de49b83d457462e974ec55d3cc04a67a9636335b4d41629d5b138106fdff8407198917925d7c21d8953b4b49794377da7bce39681a3f34c2d6ee13132f72ddc9e9f5fb9404d3c1f5fb1385625b6d3943056565894838abd2b404ff8a4a669d5f7153ce0ad93baf45e39a0695ee2ee44781bcbe17534dd3c1f73373af7389f28e877634fb7485c03b870a6d8c1eaba2e7053abba0b44ddf7f62e24d8c95f1b74c509cd9ff2c5e9713c15311d13b093104ddca50e9f77262133bb576db2aa0824bf1ee5783e7a062af3eec20a1730215cf856530beec33a14774c1441cdf7c1f3f0426c90879fc150ac0f271c00143ca04b97bb4443247b402e6e8e4f46dec04892c7847f1f813f1d63ccb40dde8047cbcf67ae2879ea8b518d3c04be6d8941127a26a338cf569fdec7976f4fca2e7a33a8917ec92f175d1e2b378b2c1a73a04a2669a8c649cae766bb69ec1c7abed2a1d7c7feffb4bb016a8620451406b2ed000558116213178f88ceab20ce5e8353650dbf6f393517ed5abec344e8503d14813f1e9cb0b0d4a30800197787bff42b06de7d8a0671430fd2142e29cffb64875897aa5cd1338038d55252f10929c295f046bd8c4157c34ad791e305101ca8595653042d72da1bce804fbc6a62f4724e2c1c17285dd606fbf1fa8f10591e22c96533c85a0f14fafba8504e2e0854be46b04818d440dfc30aaa6b85f9bf1433ee2b27fb4b8117ce6961a668c0fa078c362d74246621ef47b0ad929bfb7b86212e02c16681183d7a0d1adc976d30f229c5102991c82957e11c3aea2adb88ed70f480a47bbfd0d034aacac7adb122d3c24f12b897e24c2bb9ad272aa6f0ed404f147ae002afd486249ee3a133b9da1a028c9a0f218790d76c5851faf211d01a4c824409599aaa3a6406eddaa9ef23bbf017c3ba0d885a45d5ea68766ab1ab862d3c929b569258ca895fb737c2f21e0e2e6961f62372bb52f96f5c91ac8fd07b58b39856ba62daf0e8595b213ece89a0aa8e8d6e09ce340c617ba4bff1f53bfc18d32ede38f1599771a660e22a0b04062e8574b854a010313cdd317cacbd8b09fc8a6683395d3a074ad12554bea47a3b0c8bf3794d930bbe7f1b634910fd7c34805b672ba74ad9dd7ac7a779f2d3c31f19abb245fab89634e7247e3a613a803b09cf6bce2978b388340e2f99cb278554f2d996037d965896208a562855975a6c7de2b89b17ed64f2c8c2c8e54e230a841840d043501b7b359857eab55c6a8123916b65d3ac6fb9a6d3396945e30259ba1ff2e66ac72bba0b229de2d48f5d7b085f7e874ca14bb7953d6db2d98f1e8293f37630f5da00a04d81f64df54563e57430597e977445d2e8bd1e21ad56ae253e03001cf1aea89a0506a2effbc3ca73862b1d84a345e7732042c72ff15bb0ba8dfed7baee795a1c326adff26f9c953832c97043194baf5aa9feeabe63faac0e77a9f002489743a4d6452a019ec303b715b3cab7b3622d8730fe3872cc681598cf7e8080fbb37290b8c74303e8132d715d1111504db816fdd053a8a42668cf582f377e2cfa3b32a1496adafad8cf5df94cd97794c85628e30c3cb95d162898d4041e43a952567c8e6f530b14a6310644ebc00fd85262933cd793c1fff95debf042cb9563d89d1401aecb7773eb7b3269d3a0078fc117e68896251e338dd3a2ddd443cc415398822e8d5ed9948040aaaee65a08874da95f156f42a6e23151980397453752bcb2695101ee4d8db5fe23b57b171b994cc2c40a624780beccd07a2d79bcf057357eb3e17f944e68bb0d91348cf00127a32c9f5b3a4a849e0219fc5095d8e38db0b6f15ad75cf2159d98ceb0e6731e209318a5b1a3abf99f5a1a015eee6cf05d36b67e868817a338ad13f5ff4cfde04ea65069b0a4007a1851f97384932024e431f5ba2b63d68d6a43d8a816a9be29e29faeca7d1db3be0e86d62f6565d8dbbf214958c442d087318e7972c943d2c62404a02dfd2216a0dde4b5fe88b5fedb2260598f1a521a0b8fbd1a8ba49a1795a959c7b01cd26dfef2c48ba936c933a6f84f6718a4757f703f692db99c586ffde7949859d45af51eb4633173363d93a3c09a2c58940d6b0109cb89181a12d2560bb7767c81e3ea1825ff5e6f6405486174b19a6fb04eac0b04a09adc57c90e86430a013cdd54a31957cf168b5489c4de806be04dd100e045e99ecc58571ededfc89642218a150133a42323beede7573dcc7f2f1eecbabb45d8b6adb56ee1d3f4abfb0e033f159a2738131916fa42e95a69fb1aed7be1a972621d8131a76fc9e608c6262e0a2ee6bfb74e2af34c57cbcd87ac1c11ea8a26e328a14d8bc791d773a07b131d3f5721fdaf6b12e4138b6a2f11d073a6bbf7007a01f72f19d3c50c94d0180b29ced19818719c07910abbccfa31495a6901039a4d3121a20da509fbbd1a01d940885eab576b34f1354e694ed2fcf050c7b774d1aaf0a039ae6c2f279cf006d9f0a72f5af9fb5e994ac3a4ecfaea25e23e04faf392edc6b5fc5a6ece424e24e9df5e083e8c17c4ba668bad0ab2324bb741483066513d9c72e3b480876cf6325e6db92d83b750d48268c57527aecba46f1e142a06666ee177251294d7c0eef797530ff853a04509c3e2a947ae039e8d13c0e971f4a59966ba21122be30adb6697d891afb1f9bc39c3961c9e958220f487c38fb6af44a4a5e0e3d39c0e73aa0b65030660e2fe2e716ac120e107aa243e99975bbfb48d8fdff6290f657b5cf8656d32df33ce9f2b4b5817b0b8d98b7ae3a2caa3c40ee3396f755d3af61bbd13c66c957f106ba46cbd93ac64b1046cb2c89773166438b9ce82ac0ca87d8a5f229046b91f4813ab1ecf5cb9ca1ebb95825afdbff7762104e4bb3ad0eaa9165c16fc08b359ba5e835ef6157f7ab90359579aee86691e7caf7321049de4f5ada845cdd30f10448d39f519a33d9ff2db9c7dd74a6d704abfd4861b52195791f7b7e223f8957535f34e282966b3281c973371ddb72bb6b6f728ed1ec33f9ee179d1b4614112c48d9cd05fb71bb32d8dfed78eab395c91f40f9f5953b79fe1cd489d3af91017656054eddaf737b6dd67b3cf6068d04078922eac77cf5f14710dc5e29421589db8b4521a51ebf29e883c94d898d4d01b437c191206594e4e8db0be08997a87fd80474a1e7edbb9a8d37bffafa7909e64fc8e0a4b8c10bdac69858186f7c54c7c9decb2301db25be1ede74eaa054406a11239cfdecf52eb3cb8e0a8974c51f2231a5f97cab3bbfdb77f6778376511fc033a0383a126b9fc14b16a8c9cf69317b827652af3e2ec3db73c53831f631c156c9a89fefabc00fe85bedb8e631d5c279f56aaabceb0a77a4323b222d7c1ddbef5faebedbcafcd97ca02ea8447a3116807fe13da0aa667ed9b151033b7ca6effb61b0613a4004edddd9fcd09be8f9ba7f310b70e6ddc97277a211aa6a3cb7b9bf7dde1dfb9850344d6deb8c0558dff748ee38fb6a014a4a20383d125fe785a067ef3096a6d5e244611e1c8489569c91f4d3af7e957613327e3e0ac28cc20c7397e7d9e3b698f2ec333b5cb701d45abb8f199314ea7489404991657fc5ab15a8de48570712f5488592d20acfa332cdb5e8373bda0ac1044fa709534840f10989c37e72e12fcd8766f1164500f1cf76bf8ae6f6cd814215b48b719bb19029faeca751681a9fe896a015c0ca8d89d118658c5d4fad4995a5b2ffc76b0b047ce22933728d893ca34bbc3c1a7bed3c26f9fd79b310c70efbf2f5f738a14e6e959c7b01cd40f76e2cf179932ce73ae334573f8a5c6b167bae36b7805babd9dd34aa8c5e20baa8fb8033693c09173ad30931838957ca56109c8ebf3b992d14d4bb7767c81eb276355ff58ef64041863a4ec54ea8b85111034abf6d5f47ffd8190143054b136e8c2a7cf1179906a54d45067104dd387f045e99ec6e0d71edd17b89642218a100d70d42321aeeff74074f0505cbf50d649fae9eb652dcc13bb4731fbc6324e23659a8818d0ddbc83a957c9fc0aed7be3b972621d8ff1a76ffb8848c6262e0a21f37fb74e2af348338ec42116d96eef52402554efbf237c0af7304c95551a2b357c695f699ff54a6d3a2471da03a6bbfe107a01f72769d3c504ecf0180b29ced683b8719c0791055eccfde5435f1fb21296d3296830809623b4762472492f6e2cd48cdf1c972f5cbee127c1ddae840673368d6cae8800773ad48cf006d9f0a72f5af6747559956b6bad4e9d8a2b1e1f63a66b10ecb0613c0813d9b52e05e04a03283a39c2dd7f149d5fa5dd6b495ddbbb517cda3fbdc68a6c3cbd48936c3b03003d6b2ff6826d704fd0b7820487189e54f48a23e9c75c9ba62d2cc6234c7bb9fecf639cc6fea87efb8e4f4427c05d7c2e1ca490dabdcd891f89618b72af9807fc246b780423ecddd344e8eff61a6a8fb4678aeb6dbf40b10dd9c407ccfb2b10a497efd44b2ab3a20b562b36b4ddfc03a13b49c0548ee9c6b2ce9b9caac89a06f968cd1ecb23b32452fb43a357801cb27ff1ea0d396eea63761212167c15d87532d6c5d7cf1db4dd60a85afe7d5205601c9f5751f3aff1a9e537943ef12e03e7262d6eeabe20915c194b7e404a7aef4d62c99ec626bf962654479fe50a7e9b09c69f49e7ae759a0f906de8ccfeaa245b533d83bfd3cd3370ac0da2edef28decb1522caa4085a126d5e95e4415a0dd4764dd21ffb20b918c2351e4e82c4eb48906a821d9837406af50c3c9d13db46fd8f04a4cc372eb9d8a73a790ffdcb65948570eedae5b02e23a9da06c682649adf1cb83dffcbbaffdeca890b3cb55d7bb74951f79d93afb1048b8514486e26db2cd62897996b442e3d6eede9084c7c389a0923ef974b43e9b7337be32428a174a9a51a09c47303bf433aa110a3aea42b136974e72f5aab6eca1e6f48eec4df916ff7f7fe7ac15520ba79ed92607dc9689a00a0308e7b50db83c850f818c599d3afbadafc72dfddf3862de6bd258bce7ca0fc5de85e7af859e85a0e4d2bae772852caa4a0bba62bc39d27dc5f1c531733a627f2daf95b5f577106806c374d92efd9e7753387735ccd3962242102cd008a495dd190144a012ec8c855b0801cfe73a2a6ed5c77313ec3cb3d748a7170d465395726948c562c0b3104d016b92b4a014a14aad102c65dd85ec3e756540b3f6bbf205fb7c103e4ebc4954a7ec7ce7bb7d696f3d527ccc316dbb92518a06b0ab9237ee17a005fb37bb5f405464e615afc548723ae9f595e73e9bf69a21245f9c03c08867d3164d333c96f9297be448be83ddded237a7baf5ba7310378ab8f6ae89573bfd10a51e36299e9b3881bb713bf424a8b19120659b6ed983a10185a3937489be0bb49851bb2f71a7be58308cd40a9317b42fe6e20bb6b298aa18677c0fc77cca8eb501db50be4ba3d1c37741573611b6affdecf5cc34a7f73e21687975faa807d2b177906e8a3cf11020eccf0518c538bbff518d3ee2d1711f01cff995f8e87253f11f32c10fabedb32ee404373cc9e84066666f5b30ff2cc2bea841cf89a8a09c4d6f5579ffb19c113e963d85c5c025814ab89966647532cdaf3d9cdf244a4d8d7f99b178dba681a59fd3c80707a62d9c1013a0c5a8303e749102c0d489a29f73ded5eef89e7c1a98575eae635bdde33aef9aebdd19451596cb0ca305623451b7d39f578d7855a291ad0cd473d112c8a3ae3e16a41a87c831373874148c8c75d7fbf12ada973cb5a1e9f294b334323a99192e14e9770426855407296262a5f4366205f2495b92e201cf0598ea890e4880b04a976a9f298b9a38d35da3a295a7f1ee08afd9add27c550b8d6a2f67a577c69d911151c11aededb36bb09662a0bbca9c386295c16d855445dd0634f52dfbed9f510d80162aeba6b58531ebb75e3b3036c8d632554787cc2d592fdeabe2b35257c6260e546d9640dfda0768ba95990b264f7968382168e9a7e939a54a81da440aef15f6fd7fdd972168e62fbb7680dae8d9f99f32ab2d9e4a459fe9749565982c9df1ffc1445eb24542a0959a01ca023872aaaa2113b6484e3f65dd3a7fe944016957e4aa309d5415bcf14d8969111466729c97ec402dd278a4c8ab0426e80d77c6d73033c0c716492c89a54e12514081872b6b9b92a467cf0704142a9130de79314704fb38c9a721dac0c11faa856b9a6f574ef5a61ad8b1e4b88139a040bae7b3f18504b8c185542f3a04f9f608428c1fb679cc73008ccf3e5fe67f9f7c7eee0aab1a66fd54a0b0dc85d7779962b6017bc6d9d336ca9085c06d63a6407a6e3c6264adc939ee0f41af9402285a0f045f73db2f31bb13ffd70f4b1347e976807bc280ac7a697a2d3c317c2bbb9f2430899a5672474aa62b04a6bc3d0078661ef5490b3a138172d9a0b1c64074984b3ac50826dd4dc285016503bee887554c8dd1f642ce75ad3015e400b1e657865f8755dbf7647e563bbe6a3e5fb66ad8dd09d8138cece615d7a86decab7e853706db9239baf54bd86a6dcfde4d2a0276a3d6add7a87962a2e8591b047c312c0082973445f974bc329a733a2ac1114ae7c713c515c29e4854d739484d0267a55048c72e6e89bf9526e8663de97440d6bca5cd3e08af2c9211a8ccd1b0e4d0c295dc688722a7bf2a07e66c5001ff9322cf47c45bf2f1b74b18ccc46154ba487c1021cb675b77800a748b352bcba79510d263c7dbec1fd6e962deab455e38f93a4ee9a06d11bb9740953a8f7a002489744b7cf5c5807edafc0dffde8c720d95aa163e82b332e402c8101ff6094102a27320b3c6b8bcc2d8aabc18403f64940b89741e9572000acdd9c6814b17a0d3c7a754e73885b0da649aae19056e60de072af681a50a0dcbe29c26f732b5cb8562b1ae00f7a657bb3710ae9d4497de7c4339364e01f46dafb2a7c0d68d00a5bc560426e85adeafb862263ba1de484d451aec9448f577d2b448cd364d01cfa33a890712ebe7487ed304fbffc9d538eae8062f3ca0620e0bc8095ff5682140defaf2ff95490668954fdddd8179cd202492570b3706d87cf1b5f58c87727ce7cee83a0f0a343bf49446c3b630a654e4bca653de9019a29e87c89932c040f6b4d0443d8326170152852231cdddbf0bc8cfe9b927657972d8ee0d6290c880f4cf051789d99fe8fd9c38c144115fe285b2da3933e9f2beec99d65b9962a848ea9aadf181f6a0264864dd105e33d74fb7a06478236f4a2fd84556c224f28ded8583df7c8f14d1d3b3af39c7dcc9a1482e8660e60a34b6eb48d99064bea425b41790db3640ea492d7fcb839d59bbf91385a5d7bc49807f99f5a4043f5f4d71efe2618e83c7e6c945a866aa19d73fae72691092b3b8a204a0a08f1685992df63bc6a89cb7d5b4fc0172a8f799cd0a819ddef1cf50789fb606f5a58ae845a09296948bc8044036f4443a96eccd6b1a408381c9ce5a84896dafc801169da3d2a781482dc9cfeaa287b5e8773be0b21f8573207a2e896457ec1f4df6d23a62486b0de9495215850947510710ff330bdbff02eda4b2179de0de97a87fcdc57498a5001779643db46f1bf023cec38c5e4b2e0c9a8effc7aa9848688c949269efb41759a019dc264bdef138009dfcbbaf9e30a8fca55e160c89f2c51f22d940fb107c8cd14de8e26db23762bbff7ba29efc63ffad61843a3acdb4817121fdaa365dc6a8be55348a34359a94ddaf47303bca3caa2f13cd57cd1f80224e79f5abb6ec1e59f445bc4df94eb510732c2faf976fb217c2a0e6b6573a9401927c2140bbf210db77600dc765bb06cd9dc349094fa3caa6a0dbf47ce7063a95de1ed8d210f5f7cc94629732d8956d654d66d266976497c685a2b45f0407bb7937767f850a4dc9ad454d534633afedd91ac0b212a37013f1d6599294eac8578534ecbccdf2313042c304ac1d47073aa0488cd87bfd4a00ff625fe08e39a00972d038221389f91340b3ad2c7eda01a4d953c765e21332e03c4590e9054d3a0415da256f443ca26e3aabb069aeb2a5b12d08972e8b32ddbbe485b84d779f6d0fc008af552ec7a70a047cecae30eee2baf53118b2c17c4e10c349d00bdf248974c51848ef8cdbdbff81c24f79cf2f026d91be683b6157c9078c624d7a7e753679f8aea0ee66ab3ad2ed2a4d487f25f1c2305ea8620450440a82517ae09ee8743c38df7267c996a4bccc1e5b03add3771b891dfb1f9b469cb06179055882414eee20fb6af44a2a300e42b0c089d88530ef301e2142e2e77adccda710244eb33c3057269a1913c6ece852f2d9de509885377753aacc99964e5fa0890db2007e228b3c662dda3d89f11004a69db734a2e00b571a62bca862aa72356a10f644b0a204373aa1adaf0e3a9559e88398f965dfa5509ddbbaa16ba02e10c71ba68583e26eb67bcb5b57ff2010684984bbbfecab43f9af333ce09c10328574d1854bed3915a56e4855cbc72f4b322fae4e43f9c501f4a28381ae4479c80eabd15e3e5f8549f1a7ef6185413e902a95f1e4e830bfe71d16391049a3ae55e02f8405f9daeb389740a8211e52913411e31a75fc343abad8670021aaab878c639fadefd2c5dd899bde44a640f1dbf6aae685abb411771398fd014ffcc829205663ffdea76089665f3ded3a1a9c075fcaf4b5300b4de03c8b7e0af5aab6acc8cb0679cf8e1976010145b355d5c18b30299248be0426f17f10b6e2723b9ee0b0f97e1e594081eb856b94f4e49810a0e97410c3e6ca613a1aa672c738dbb5dddea45f306b730d2c62fb04bf3d32c0ffd3e00a982a0440a622cdf148620d61abb1510b2ea831cc2404a0bbee3a982185133bc92d7c4352800aa594688176e876ade417e243e7d66fefb6de4debfddda792a8f72bb662333ad6f99c0bb29796ae3c20d674957cf25f5f1177ffdb6a74137ce6219547bc086aece2ec56af3c9b643b9201f1f948c5412d62b85b6645cd49f6a841432b333c69cc1dc979ece2a5495704abe800473b8341af5022c779ee62d8cb21687d213a9596efb68ecb6a3713eb10404584895b31664d819c3378968b87c89cf2aa040991f4533aaabca8cbddea753e2fc8ab43de0401f4ec9b8136b3a133389694c23c6d8579f1ddef9e8554ab907804f1ae326691cf53f7391075de4f83868427ddfdf104c9d3e094631e0891bf03e3a30ffcdc3abad84a652187e86d4ee45fe918c295dd899bb942d2f5385307b1383b6f04bcd106a84dbe5723d7593a7ccf008e303cbaf59c76adc057afa2b1d68daec27efc800d37d53a13babc33d58ccd785f7e0acd4006773d7620f5f7572fb143f9a56f831f2d4453c6a85464572279fd3a852a66bf2e83d1f50574ec3ca7133a7bc0da0fb757c66515aac2b554b072a61d500f44ef48190a8389bf04378fb16b8974a0d6b5b7403252af6bba6b0078b6e0b0dbbb07ed29382cddbf2a09296c50f4139316cfb9325bf279a3991873e5e354980638ba21cc0ff6778039d105b5bfcba79510e3e4a007bc1f81e40b71b994798526fd6d5b6673c3e9974018a08f7a9b2989f24b4ea69de8b1c8c20d8ede7972cd04aa2a3e35d63ce41f9a21e2f6634102a2736752c2baecc2158c3a2fae5f69976d72f57296b44913cdd99dd64b17d950ff83a32dfb90d59fb2786ad9052560dec82aae815d2e77cbe6afff2d479aa04089d85b763aca13a89812945dbee974c51476032ce9b5c798721e77eaa66d76abb18a62a084e392997fea9e2168ba9ae9b4806f55d93bc0b2c12d664a565f89741818062f3979c61faf110a76153a0442015d0021668735a1b118d31e6d40824d0da0babbf5bbd1d2307ff715bcfd1a898011257672af96ec852d5678d842390426b963c30ad7bcc21fad1376e5e66262ae8bb07f56976debcaf204d93fa87ccfdba2304ac15d9cd70e46ea0a65eea2aea26de276a8a218ab6ddfd78d64b8c4a26a3c48a87722ecba060186bccff9408977e0f6ee4bf2568159d838260aa85d7ab4bae47ff8d8cdee99c117d2512a3b487f25fb22b08ca840956437c7ffd09b5581d221ec03708c09c6735e0c75809bdb92bf1d64564247068334af39cb8c0558970f48ee20fb19f4eb785e0e3db05f89d885670230c221d56db316221c84898eafd8012aaf7e181279c1cd4b93bac75985166b92760ea08c74ecb68120ec6dd5e6958917b7e426f9749ef90623a6c171c5ddbb4857042d6ba04dc9859d0989c38a45706aa0aa997f20b2efba1d8792318af634cad571e0d6e78c7c0e158f52a37e04ddbb973a3a8bfb6a1710ac49a7891917aa1e8ea53eff40ddb204c9e22933063f89da2d99a2b6d65f51e8c8057f7caf850dbafb64f50e6f636602b8c8f4dbee05d7c2705da615ab19c8c3e1966eb7975336cc4e36a58042d757dda0aa8c5e75fda8fb36b5ae30a7d9850b37a283e7771ac2109c49bfd6b27b3ac8105294b34211354423d78cf2e0730b74ff985d4ef7dcbb4995bf5f5fc12e2c190143054bbb34c866574f13f59720edcabe89749583a17e26a306accc87b6b6d510084fa2d71585a0fb383eb45b2329328ba30ca38318577f5f2f72c9402d71d1a5b8009507627f0441564fc11a017b7b12b7310ad6a20c621f1faa5b1fd10f54e63e174d05cdbba05d5d73caf25faf5a8f38cf013e16cd32c5c887404999c1a8df2b8504c3f45d007f762278072191d0a32f04a01901536297b5496bad90ddf9485365a79795e0ed06f55db4e82263c7a353d4894de21e943a8b1fa14026b212c92fbb6da4f4f96d3485ece8a102a8b30dde7448a8fb0480e2e8569553626b8106853990da321bc4514377300be2dd42e2d052ae95a0c3015d4097a28540159f42cf533cda8372aa854834a8c2156901cf05d889a0873e7fe7a6c11ac0330b853e5fda6189d157bc76522fd34085a1a042ad38811585dd4864dd388c55b2ad5313647a4a9e0fbf771fb4da9f7415518583dfa68f02ed27b39cfdc7688cfd592e86d49013c7fc984e190eed925b02e2a0cbdb3640264bad7fcb83c2ffad4d1385a5d7bc59ac79996277043f4e3b719be2618e04c755728aa8c2aa22d58a3c9e127904a6edc13016d9c6682cf2c6f1131095c9a25280b41f30c7d6dd30f5d9a668ba2bca9c1faad1403b8a3056810373920e5315a06b30293a4855e27c06576b0e21687d498504e21456787917a0d7cc10688c2f89aeec991df9b3323cc18b1242afd17bc5c769f4520d99ec62cbaf76e673e565af1738770910c9ba3bc308fcc83896949d3ee2850ef1ea5075a854b2902a95cbae5530c3cf1de33e10bade53144c345cdd45790498eb9f514233c332de8619dd74381604b0fd79c2a6968ab18ce45fe902d204ddde9b2d9c38a07c07f6aae64055c1113a139856305e2a2c98f26160c7d95414bafd13c6a8c1afa04fc9cfe04750da6d3e1022726862fd99e4c8ff0679ca8ec376f401b0ca3063301a3029928c3f0426577ccc32e01981b0ad8ebaaa499075bb508baf13a079df39335bf28974cd89497307be3c967f1790ddde2f5f303773d52c2cf50417beb2e2ccd3e00a98aa0440f172d9f148cd850e21dc7da63a042fd364c73b6d5f8761d33cb41da383752121a6ed66ecc934ad2e6bf997a37ccf5dfe9125eef504fb73f1d5a63f3e4b913985627fb4924031f56821686491d17997a84868658b26dd449d0de59f15f6c1a079c348f19ef51621740b9c5a2347c13f832638ba2c5587e8c0f215d30143e965ab2b167522edbd1863f4c3c41d8583652a42dade59ecd774db02c0d4bbd39c295d7a9ce800a4071ff54805175fd8c93b3ea00d7f53b3f13a0456e28554a73a0481aecae4cb66aa7f0ed39b7ccf3ee2b27fb4c97ec98c45b3a6a5b2d991f29deb47e76514a09513d9d317b7986b767a2f16403914866264d6c956870f41af9402991c2204c17bc3918abbb8d7d70f480a47bb49800bd219f6baff3852077acd14480bcb26634b4e7247e30ed495f131c80078aa9d62490b6b13f94b59743c37a089c78a1f0e64b47353d04d08512995893a5d5bdda3f2543b9923a6561583ddbb06c795dedddd443c7e7edb10cab38ad7029c77c65bcb5913e2818d835de08704dd3265a3d6dee6380e3d5cd6059f04dd89a1c7c7defbdcdb21ac492bbbac17aa977ba5d7b86885993cb10615b44fc5c9ce775079a89c59c98262a10ecd3440bb47ec3d390e22a46602e6d8f4d9b805d7a1e1440e8dabdca436e196655dda5336f1b9364469426d012a506df2e374328cc764bbfbfbdbf40b10ddaf3a79cf7eb1b249dafdd655553ac8100894b3bf1135d667b28c74e03239d148372f5461dcbba665bf7ab2c19ede99623bee8c7c1d29c0ef3cb1d3a63506dcd9baac64a717fd89a0d85df121376e8bc9cb7c1d919f03880b0d1abcab673026a0162f68baf2fbfb2d2387acc1cac66b48dfaab0bfed89741910a604ae5f55ee594d813b4f0ad3010143f99c3ebf4a6374954739095ed6ecaed9534d3eabb55511a57389d1c4b99e77fb7440c08b7ab29661b01130cfa3d8896b6db70f9862969c61044eade683afa0132f2e990a56447ad1f96a9fc537de02adf77207133b986bba66cb264b21e9e79c76f5a87faab1e22cbe00e27e89a83aaa965d13a879c51a79f046cf3363a06285fbaa4edbc0f9dab4507ee974071c01b7a764ba110271a4ec080b1ffca01e19c7f9fb158b99a2b2749100c1d48912af2aca8eaf8a9b37072124c19c03c187783e67af338eb48145038d1e3f0440e979c34038a8a60e21c356986a57e7a01ae6389c1e5790c9ffe2b321a533d9c8f248c2242d0218d9654801852d937489f6e8ec48edbb63bedd3deb5ca1d4e68b42243d06e25e4a2e491ec50f485446a6e98cb601db830d0b6f80f6cbff0e52427a3a95ba553826a7220b2168c275faa82c7b6617fc6eb4e89d2133bc4d05228cfbbb5ed624d796743f4ef4cfa304f04a2a97161f325f484872f58e72d8f77589b44d377304bf12ff62cbbea8f7cf89a83a9c3be33379e696ca5fd3b12685041f258172cc8a22ed820a3ab33daf97247681153899b1355bab45f57569f47c81a0623a01c11f658530b2749102d3d489a29f7389d5b1f813f18b4b855f0763aec7e33a9bfcc2dd190e6a870e0c53056236ed4fb19f57157bc2628b52bfd0e13aaf4469167684a4a387db313738f2148c8c75d7fbf1d3da16032961def2d1b336b23a99c74595e97795a085f707206262a5f4198505f20e42dedddde7972eddfadfff14fb0e046a6d29ee4d94da6712de74767c9ed8f1c79da0de92477ad90c9a6209fb04a415b2d3b8395f3090b004a038eed94005fb37a81e1ef9abccc2f228f241c989cb7c80a46617d510f451a37636bcaa97d94dc1e31feec648ee43299fef8ab13e104bfd687721dc09db077989075be7a6211765af73dbb1813f9bb35f0304dd0a838bafff8526f9c9e7f14dd33becedc9f53456b44ba01952f4e75368ded9e2e5ad5931b264c8831260bb4d53557667a53e1640c8a7b4f53ab5dc5784dc4b05a6a6dec8668ca08e8d8541cf84e8442517d8f676f559855776e8d789748f327933f57287e452cbcbcc2a0d9592475067a53cec619dd1edbca28637b8cf3424b0236d8b9c33cb40c73e047cbcf631c1e2c9f52414e8765432925178e631dbe872a8e4b15f7998f4d7bc4305cd893abc427cd274c01acc34b5a0ff854d7aec79e4f1e16acdb19ec13aaaed2a1d7ca6effb6130ff623a046407cd90d09be88b1ea6ecc070c6ea3e0c860c49acefdbbff3085124d53312ef36a56d1e4805582241487c38fb19019778304942b06de785a067ef3066a62fe2b3491e5a848956af77012a9c7e9596d28a854b47c219a316fbba928ab8623874ec553bdf8353612a85f94cc4ceae1f0ab1b53351a545a404ddb272e862124a0b2f21079c2e9f04dbd8482dca208504593e00488b9bdfaf659edbf10657625e306651e3c6859ca7afdfb447f9a4ba9999da9aa608b7b4d3c8cd097f2d9c10134074ed854bd1eb159c188c55badd637532f3c89643a3c501f4ec834dc308ba3487dd37ff42e298e85305621994b7b19fd9d88a55ec604f0cd445d166c8a3ae3ecc2f9a05f935fc3875f5402103085bbf1120a375fcac3abad84a0021968ab1e695e93683a08559e4206262af01368505f221379296f4cf059805a8fb7923b0aa1e63b8dea784e766312f513ad6a232d39da5b73b5239da01f443d6af7339e2b362720762c81fc981a08562d6d64ac6ffbc55d39dcdeaa7de593aa6892123ecb7973369c57ccd78ef6d01e7aa0412b14707ff16991757c51187c0bc53e789a607e7f1399cffc5485963b044bc92c7f987d3c0540aab9c73e9f2c466a13afb7485e6afcb04477a947852a01395f6fd73547c2aecc953cd6285f6f8bf6296d20e492232b11a87518ba42404ddca00de9e1f6238f90674598472ee74954891ee8362c1d6a64ff82c776f6295c9fde72162c5d8ed4054f12204a294450d56ec2c97ab1feca6f763314881bb7b2f5f51b11e3bc5406e0c97c9098936bc4ef8f6a01f96a6b855efeecfc15bbcb58d173bdb3fc18b3f9b7efc5f4eec0751d9f97839e67705fbdb19a60dcb098980361e2011cae88c4034390448e2290399a489e52d4bec3e818e51b226de98b5a540cd16fbd1f5f773a11e5ac5447b01cd374125c8f10ecdab68ae917096c5b7e3812b7fd24608c342e807dda0aa8ccb590ea8fb363369b615d9853c09bcc5bb40449e109cb8bf3b472d6ea685043002723c0e1f7264d6054896d6c98e982cd1858569818e38390bc12c775a6613de3acdebe04d738572e2a514625df6ca746e95ba77a618a8d3af384048cf6aa26ddfc081d60a0e196b790be2f7b2b0af5e897416877968a6d2a640ffd0206729e9d118148cef324034ff3bc92d98cf42509657bf193ba1a07cdbb5a8447abcba3698f8f66bd299fddd2106bab3bbf1aa60957ee3e281aa009c3e78947aec0b3c748e7fdf9967994b77bc11ee6a73ad72197dbb1dfb1f006a4d20b58c0558970f4ea620fb80f4eb6ffc297cc2b5a60479455e03ba8d89dbd616acb41ad3b21f63d399f4f853567f724a3be2132d762fd8d914899d83073974f5891540545a6b95ab4a9fb42df98949a7a547c1a53ade45456b04b601b7e79d85ece873c685d2eec0e35d2cc67caa9c342333f297643c2e2675de9d6dc8663819de715108b2ef04a03a9d7c364d9996a5402d497ce88e3f37420f5da00affdb5f51b44d51ed9c2c330bcda0bb8bafa3e6a8df94852216f0858534d14a9c333c4ef93da7d66ade74956e06bf0d2d9026a57e2a963bb20a666a8974eaec9981ea72a697488e319d4d5799de5f9939401f9666452eff7986a7ddbb0d207298d1ecb281e55fc12cee04bb17d62fdd1af20fbaaa66edfd1029bc43a376fcbaa604aab1ecf15963a2c9e7bb0feed86e3c049973c1a0c8b1d0adc8c50777015dcd76bc62dd927642cff90a27c5984acda1d83ab05348a03bc92d4ee7ae7e874c3e3a81e0abc0cdab9f78d789745bbc6681f69962a848dd9aadcb523da0a74864dd1073b2d7bb4d3a64da0f6f2207d972e28e9f04f28caf50177964ea8a581b88234cdc8cd2482ee8d48ec6c7aaa14e193894bea425b4c790dbd8dc09492d7fcb839d8ebbf90a404dd7bc75807f48f5bf04714ea5088c8cf109a822358931caa0133ad7b0323412dd0479f2c1125fd9c6776afd2d620a0ed220d52274952781ab0437a1c2fcbec1baad302fec6f06836d748ef70e1810a0bb7fa0cb0c2d0489a04fe437cad197caa197ee563f04c7894819958ba0dd530685a68489bfa21f706a85b1127f763c9b4ecfe0aebcaaf6403b4271c1d6ad387c169ad344e92904dd894b3a57a3fbc7c721dcfc2bcac319391e16a53e0e686b5504f19d293c480d89dadefdecb63b87d1b226de49b5af10a016fb64f50e6f9a6600cc3df4d87905d7a1f85d0e0dabc76b36f83065521e1a80cc9936a5ac42ab37dd2c288c7361baa8fb46d369309a3a853c09bc95bb77cab0109c49bfd6b2e63a63108194b3bf1135d623d78c74e00bb2d164730398f7c78949c5bf7139c1ff2f1901430583956e8c2a7cf1174ea1afb7e806710407387f045e99316e374f79acff1040e960ca57a2764df9d6d3d56e11cc4976ebf2414b89fb852a31d3a069ba01eda3e2aca24ad2db3bc1d182f6c24e48cfb41102dab13e10594eea6272aa3b9a2ecb794d7b46e2f4f4dab332a756ca3fef5dbc0304a00a5adeaf5e856281992d794d7e3bec5198a8915631482ca48bf4cf1acd89d9e2e5ada1bcb204fbff4e07108d3cc99133622c0e2415095f62c7b546a35aa09579a8cd6bc81e8c62cbbe4041cf84e844837777f676f5063af699e82e89745e327933f51f6650c39cb6466a10ae4d909f04a0db5c3ef161cdf146867bf6925f0ad86e06efbad91548a010407a90f68dbb3a4d4dd7e764e2af5a2748cf1f3d2cec252a32c685c144163cc1ddf61208aee9749518595d082d8c83f948e494c82c3acd6f0223aa7f093dbb5fa8821d9ac381af130645f15124eb171f4431c5e377f5e391a610b70b4b65157c75936ccaa06f60f671ee5ccd1655378d4648c532ff5375ff85a6394ded2abf75134960b88971d6076892b185629e37dbde1d054087aabacdf1c938dc4996fd643b15f4793b72ba837f2dfb724e31f154d5bc7c3be79ec036ddb7be371389e60e705b72509589cdd65b6bca74821a974198e27104408999d9042d0d6b9c7331c12f214d4da2c425af17139145060ac1f93f505dec56c5dd865aca4dcac6798c63c4e7f93104dddec9c717a3fb68c73840902f89c35b39eb20a53e8c46cd47e8c0991578a36ebafe3665c9f5b375a154ea97f1cd2cccbb47ecd8b2ba9ea4aa02ff92f45bf105d706f8440e0dab466b36f8e065b71ef980796636a5c35b56f47bef4ef2fc743c5e34d12dfbfbbff45f10dda5a879cfabb1b249317caf735577c8474f94b39211351a23b28c74e0b20bb5fc8c5dacc71489a604bf12b4182e45d8ab444783389feebfd76a812309104238f9791345a7d2a86296a266dbfbf2d39c40953863736d67d148a8ed3dab673ee3346128534b987f0e2de34eec9dc27cf5dfba5215a61d8bacf289a604aee6fb89ea915752e0a76923d179624587d38309104ee8bc2f236f6bba485b66a87cd28d307c3bce5c8917c24a7f1e66e33db62cf7d2c0620f604095e401b700ba56b6eb4221d8d08bc895a0d8f4528597b4ff3a578bf4cf1a40aa149ad9c613ece8b37507351d59d9c7c57917ee18857e3b87fda76b7e7e489a895e5b013b6d0785ecab7502a8b31589f274cc2110636dd3d3d13d8af4cfa304445d96db8a8d317880f6b1203d03cea0957200ff6b37720d1faaf1493c5048431fd8b439bf171a6b8d1f3bbe02e2b02928bc42edcd440b327e62bf12938d8974951898e72da33814d6eef6ed63153a8597508a667fe43fa34bec3c8b8764b226057f38afb5cd9dfb74370f5ecb792595af03f417a04b6eae76ba936c533ae360f671e0b157e33cae92e4ee14d3cc53752ea8100b4d512a8033693c633a853c09a28389773b9e219c20361a062d250e85955f504e1149aa66648115f47c3b2d49467f89fb640bec49f742bc38f9de5a679494c5ccf23112af4fff974894edb51a2904a2949937c899ec0ef763a27ccabb04e96b7873a6701338d6989294c8aea8a0aad2d3383abc331e7d65a6bc2c83674edb330564a20a912230758c01d3a243533a8937a22fa661741fb3333eb16b0d0431b69a38749cae993710dc386b696902dd37c907bf0385b894abf6d0c2954668fc67dd5bb0a01170382cc67386e8491950dbf6e443d1b4d5ebecac9985da744873f1e916300d4a5ef66b055eda95f402fc4e2da51add2d3016d2f1f93a4ebba0da33e9598595624157404ba6dc2d4754c961fb10042c11202a968ca86ac03b0b626289b8f699fbe9a7696a08c10736df94a1f56a99316e851564940b89746e95a100136bd9c69cb27656efbac6c21737cb3aeebb044a9f39770d100151a3b1acbc0beb773b4e2fb639748c48e76d11145ee23c10594eea3a2119cc0789b13bb5a21198661e22578762f172be56f153ce5c891703e3a699aa6f63106d8e4e719509899e194f10c397eb1068cbe4de6588d89677ca61d9790713a8316bdfbf3c0dff04a19618e2c6babc3c7a0a9d458461373ac3b756389966abd8beef1fc689623a39fdca13a848c581c98f46cfd7423a37bb04ab24a7b11a739f007ae9d15733e65a0c14741ba54bec308139e63df152f60ddd6f8e57a1338a593c33ca908974c4fa1ec77c991068cb64558224bb746e6599001340070a5347a37c43d58345e492c71a98eac9859ebcf5cbaf492a0cc450d6c7136826214e599c4f0e7b77957e35871a3550af0a2a517b313ee8d13c4967d229594b6ba27872f63ca31e771bbb1afb1265809c29b5949a33c3ff2d5e6826f2382e958a29486106ba95ee965e03fd158957e712dcf6a7a6e0b1b38e303adda777c68cb43eda3276d1e86b0457aa6e67afb2ecf77ffdb8894d13d8d652d55f3001d2f561663a131a99e948cf831130730662b3fd45c1ddc8b4d053c8040717014da099ec076b157a2c438b0afa6e1e4aa0fd3485c0f99940f99dad7c1dea206db532d8447a3c5f3773b4562e89f2beb41f52156685a8a1dd9aad0e5215a0264851dd21ff8aabad5ddb64290fb66f77d939b1da5f0464069c507779d063b46ff3f0234cdc1eeb4b8a0c84ccffc7b6eb7c680ed192ae25e2c790db57dc26492d7f3883dffcde811337e7d7a2758079eef52f04d74540fb109db8944d0cee6db26262893ad70d7bfc6aa1de61843ac389348d3ee9f2ec553313a8d80b348a174a6994a09c47eeaf90047c33c803d6315bd83ba532c0a08bfbdc771068a35d74acdef1bab5471f2f66332d05ef0989d5c215535d13eacbc0af6b53ad167359bbd942b5a0adba40976ded936a8974c565067607defd40cb99b617e410245fc17e666b6284b6429979dd1621681e0989c1469745d9ca24b2c12d6682b6e089f26e1879f6734873c1a5ab335f2c3a0442f4b79b0e1eaa5661d265e6bae062548b1e4074f162073d9947cd9dbea8f7430db2b3655bd9a48aa8793a4212e8fc89648fb572e8a8ab304115994e619a89a5c1b194c71ad2df2641378c047af3857c437731c067c0d64d0aff68263c957cbcaee05fc106f59fc58a870f33f65133e631db3c76f5c8b6ec49c9018e3143a33a8907ec42989df2e244e3c7382c32625d907e16a4f1f82c3ad24a963ab6d12a1d487f14fb4b3061624004ed07d890d09be88bd2383156708c402e735e86493650dbf6f308edb542ab599b46af125e7905eb82f7487c20fb80f49e97305e3db06d89d88567143096a6d5e24449725a848956afd801d3b37e18c1d2c1cdf7e7cacd540ebb2d44e3a83a7f999639129d4a009404bb272abe94a6da2962fd32b1011b8f2b39ef01013829c7ffba727aeaf24c04de6bb73d07f9f254e779417cee8d9526dec277042d40094d0aec87072152a59f7325a577730dba0613c03bbe00a5ecd29509e86e2daf2d1345b59a2744f93104c78997773a8bfbdc192140fcd4dec336fc0b03a53e0ec73a06ab394815b4de02eefeae50eef5af75c9ba0999f1852c6bbbe0bc5b55796f075600ccc8f45bf1050ba1704da615abdcae36f830188b1e818079c236a5ac5bb101aa25b4f2e3f273fc3474bbfbfb91f40b1040afa8f1cfb2b17e1624f19cb229cd63105294b39211ebd623338cf2e032550a2cd1282dc79589a604bf713947e6de99a03bee3a0860e7e27eaf4de4c6a7499db81fa841a762044a01d6b32e85a233b23885161f9fe344cd1309db925bda322dc22630c24005fb3810e387a213ba98f5ba9952e4a63bde8235ff487c421ffbe90dc3c8b3e0d5c341ed98a89112ec656271edd155e9744818c9d237e9a8184dd2ce508489b339d3e6f55b97ec85d1a37cb1afb804f1d6343950b68cf55b97b41e90abef7c3b9b419c250677fb101735ba2119b8613ae83aeb33373bf43e09a4c6a1cc0989af874751d88b4e76a085ba086d691011b142d3aae76d59f53126ec37cda6468b1da1406821481983ad26078179a823d7503a8f9c4dda7f303c12a042e264e9ae954019f4084072bc858553f51481c9fe5a2c898ab369f430391a7209f948debacfc8315630b2d9d68a5539853c9f113389d1aeec1e082fd3578548a042de498115853747eddd1073556dea2065eda4e8175fe089b5a8210765f276af5017c9d03d314a1b58238fc7a19dd22ec4d4b80ac7fceb486849ed921902b4a0cbd91940264b4ff18c839d8ead4466ecf5fca5cb160c8974651f7911b3e7f1399c37a0c66c07dc896b2997cb74a2323b8e7a7fba428389a02433baa92ef13b48a464639285401e873e7c37ec552414abc0223e5bd12ee631d5c272f5bf4a31eb59012abccf05d98917a207487674e2afb0e8d3c86204a21f6338d1aff6760710c338d807c3ef2668d234f67b62ff624004eddbd990949be8f9baa63103a90add3373da0c75ac83dbf6e4caf27ad5abec0d726276744813c9bb16eeae4a30f66bde5efa04f4258a8cada5f9a7bb66a6d5e244901e5a8489569c9101d3af3e18764ec1cd4be5c254f2fb0e2d9c9ef53a1e2146f12999809c1545206b7c86a06b6329b17d0d503912ed69dda811a27c4845c1d510161ed93eee1a6b1324d61aa6c144cb954864c07e7a17ff77ca9931c2a10132b10989740da256b7a4b662a6728d667c1df0c489cd8152e9fb626545ba62c0b32e0498a43c96df51c9f5d899ec542d8df642cfde4d2a654ae79ca362bb3e395ed0e9ae04dd3a355ddd0e96a5e8eb7976113c96a272497c52247a380e10b3787cdd0a4efd285ab9f864cf897f13a3098fe708d8fa06cb35fbddeba5512fd309a1cc36ac4bf289fbc7ad49bb6dd5a6309b12c21a48d813839d1fbcd259b80af58e8ed1527aa2c5097f6295df304ec80261decb2b178540e2813f7f1f764a2c21e25b634a14bcb067520affe0338eba4fd96089998b8ee055599966ead8d38cf57507f4f13ba0dd74760e9072a2b28b11a06174e8e3628551012fee9d2c897421460669dc750a8922377f19ff072de47847170a0d40ddfb042cbe339690a6f5418eed62410c85c5c1501a4e8e12b1f27538a831c02404dd8979c38ccc3a133b79de7c438b363eafedc33be0e8392de42fabcfa3d67814b6ded6c24e376b743133633604a4cf3e42856298a0acecb1da0373957cf25f5f45a032406b74737ce621c547bcb780ec1f317aaf7e9bd13b920148e748c5349010ad2c56cb074964a2d344c4ece23db1621bb2d211ebb6e8eedd3de2d08b2cc5ddae015240b1b4d840f67e5bcf1a0a4c184e66a01ed9a855156af4cfa33abb6b9f55499c48398b7a557e85b2787e39897457ecee4fa4873a3aa10942ad49813dcddd4864dd217332b20881b864b50f1eeb173a39fd459ff21551858323fdce25d128adafb86a681e9d722e8684fc0ac7aa984819ffedf66925e2a0cbdb1940094bad7fcb83df8ebb4dbaa84dd7a275ac79c9a82f838d4e4d719be2611183c73ec93ef5666666424f994d1f790447f2c11216a0c619a735a8b083f61717aea84eb4913b18064b10ac61a69af45139873a14066653a63a183a21dc804d0a63a009a653b3226285a672d2561a32625656b4cec30279f504fbbaa6c8106de66de072856284e3c872f5badeae4e2b96813e0d6b0ede9c0e0dc56de237ba2c4004d6bed6d8fd129638baee2ec05315c13d86944bcef6aad81a66b50f3a7319a03c42ee6296017abad8d36908eba029e06316683318e5cd74ad98c187b623af51021e1c9ec5c111c72fb6369178d7cd481ae69d59740849ccac7ae4124f039fa684890b24b5899aaa45472a2113a8391e9cf6bce2eb5d1383404e9c40fd3a50268c68adcc0442e0441fa58585327521c7c6e4e9767eaf445b8c2cf1f7c1e2cd0f073a951201b7ca8c627e3e3ec6a8d36d16b65d3a13b8e601338257a0f94ffc40ff72fb10113dab38dcdede48a8d75f85f7d3dd836479bbadd6dbbb357cb2ab6acd2feba5a00a95ae56640f0f563ed8cf0597e9774f5dff2dd1e2b350278ccff4e87a173804bf660d752ec6bc3ea7c662b1c7416a7b2c0a952c72e6be083c3a82f22a5ba595a1c3dbadffdd1ac95314d49704319406f569b74580e2907448cf9b5624b5e6f54d24407ca068ec873b3d5b3cc9ab802adbffebe387a07353994f7c1d02205f7348a89cfcc75e66e25d31154c3f722579e79cf185049e0a9ba6e76582a55048d8484885d8cbab66f2e30acd4d26af8a9f283b8d7f1f1fda2c218b5de073156ba77f2dca10ba6b745137dfed33bf9c95720b98a7637573f377e2cff90401f4bc838b17b7a1422add46ff6a96cb3c53a3cd9194b7d31668d8fd3ee06cbb0c1b3c9466c82dae55312f841a1dda16fd75f585a65eb75bbf3c20f9498e343abad84a00a64ee86dff6ee91983a085546020b1de6bca4d89fb40ee4d25a85215def21a90fbde8112326d74714e01430583aab670b192e0920036035819f7910db9275c4fc2924546abb4245fb8b685f24d8504ee5bbc338ca6bcb2ba2129bccf05ea896b2a720ef2ec333b21957c263e5f4cf6b157ca79cda60d13a8afa40ab02a3ab8209d4e31a040b540cd292fc3f4cf053aded9dad349afb5e2afcb95b56bd60bbe96d2a895fb8c7c2f21e6504ed2f90623e2e79ce831383a4eb7dfe848bfc2db25115905fb9fabe27b0b74ae518583dffd88146428adaf1fa7beb409b18c60436eeb0e5ce350b7360274356b76b8fc4bbb0efb7378036994964dea433a65bc9e63f1f2a5b4c29104e88a2c918d6dc91e3f43e3ef2ad63edb36bfb52db55e2d40148949c53d45d162893d6241864fea4066c35041a662de37fd45bce7533acad992b3f1210d95af39d5123b5e39a4060d65a0a62d10465d64802f4ec20de5993a68f5efde4dff6b4854667a92f2de743acba838415f33ee0f5d443b0832daf4f41d4d9c3eebe2d6a8c9620d1766385306628529aa0af137bc3efd7d0448839f3c3a2c79a344141ef5cd10469060e95081339f2a9c3203561ad732662689f23dbcd28b57aa7982f77fa8c1d6cc964ea1bbb4b7a0ff4094a5e866b19eba48ca65879f3e72a8b39fcd7cdda5857c4d9683d66757d661878a517f3811bccfa34777b510deee66317f7c14a8c0b310bc2b3f242c32d5a225a512bc224e010cab6bbb7457ecb1b71599f54706711f47e7884ebb3ae7e789fbddef7266a2b5e73a852ca5ca22d713a2b6694eecbabb71bf91cf1ad6da831fdea5e907bb33396194e7e4043734305d26a687b33e0306cb205572e0aa358cb72445794756381672b5fed655d469b24b775589ba131ac8c45393d8fa989049fb268a44ed2f1109487591194bd1bbfbc72d0ebb5f69a6b0ef4ec94d48770a95e36eb28754d7bed1abbb644737f981afb23083dfbfe699a48c85117e30b5854072cfec62fbde04be427c848978d801817bddd2b6f281c80148e7a0403a36b7b57faab139f9c65745e287f0195072f595fb387c2c6662c9ba711f7c1d5828bba05d8bdefba79bba66bc4753a0a8cdafd62ab2c6ece815baa8b208e09cb6570ae4fc990ab18142453f3ced768f8db1d81a66fd22dd0e969ce803067611d766e03975ba8b245598c256fd4906f18f44b61be45554ea470503c869dd94d928ad4f0eaa7777305f40481afa72ee742d38ccac7a699fad49bb4ed5a6b09b12c93b48073265611f31a138bc5044903d7dbcb1d13af9b351823e4961ff6c37d96ede40a3af852c0a7510c7ad1d6295c06f9fbc538b89ccddb34e96b3974fa1533a651e015d52cbcda25530e6a8783930585d07c60d9ae208d65ddddd34bf4e5422ada662e312ecff8e0ac055e2c1a585ddc910d8af6335d8b1fbbb09c317a50b9a36dfed06a8460b39769a1039e8ec9a9e353aff790d56f5f1063f72381d88b989db8a787ffd666fdb10c120763f04dde9a1cdadba40e321b1b62a63a65794e90d04c79101b7a0c2a28e37575df4cfa368306e9a1713c6313cb7e32009facb6eff18a12fee1485ab9c108be1ea60ebcd14481e53108595dda8ec3e1e02854f92de744b21384f6a96ec49dfa73138e7898aee5832bdffb93ac6192b414860893630e6e1c8a0b51279985f02f143b45b31168d68e7c7bee2e72d8c4eb8634e52054704a08999681705fbdc68380d5ee489ac368e30034de816dc263e04a64529034e3d89202dfdec3c538eed3c261a987ca540a0cbfbd1a8f16f637250ff42f4d98c053ea170520ecdabdcd836707614b7da810d7fc21908ac343e77dd3a728ccb75b5a8fb36d3693ca7d93ad309ecc5e74044b0a69cb8919cb27bd8f73285b3d5d6dfdaa038b4d60548ee9c0a20eac457f7de18725bc91840e24d3871fcd9de3a8530e04d738572b1a51457b3f6de749595ba2ff118a86d1a87b4b43bd339f690e7d83762aa036b790b964b55119c90bb648f28eec74806104661d07e4a7ae9d195658cef3240340a3bc9e938cf34506d57bfc34da1a0483797ecf55e9ce630c2da14a53aff40dd21064b9cad0eebeb657e0fe03b35efa50a35517abcb20c748e38679967994b77a211ee8d3cad66191bbb1dfbc9006a9cda11519a8ed9134ffcdc267410d704fc297c6106219548c17b034b3f89573b5fdce2e7d3e86d26d39901e153567f724a6af69e050a5040d918899d83331fbc182ec6a84ed6ad044824ee36e8bef9972c215b131a79e948e7aaac0b01018eaf32d7c03b8e78a4798dc5ddbbbbfb80f4ab81d3d9492d3440a3c6a6652daf59db0679103adef221688c2f740d745e1e68493a906be9bf24782c3cc84062a6a3d685c9850d77d3383bc762cdaab6d3a662e055a1d4954802313ea0dd3853d618a162f5e666222f21423e4ee43e8526cc2d9cfdc89eddb5c387fdbf8d893a8aa5f738a86dd620474e12bbb452777338edc051760026e948ca00d39fd7e6a8b311a8f18519bc6d3b715be8c07880e33a8cda75663a2ef9fda0482bac548977c2128ed1ec33f9257e96c823859e505dbf8ca8bb0ed6ffa87bc09ffec38379f504fbba7cf699f548993f72a6f94ce689775308bbfb090072aaeca63bdb623ab344b52e2ebcd3e413d80ae9e2a5976bc691ff990a12f92f1f8d9ed122cef6aad81a66b522eaa6879c732a768c7b3396a2b1cc485d248a7f47aa79ba1fccceafd3d89173df6ab2f9fd2c0ddd943af0dee7a66f77771630c30605c4c948740849ccac7ae49fde0ebb4e2f1003027e4e1a48078c95756e55d354558d9411de742acd8bca9c324267b19eff066c85658dfcef6f44e87e0285ab39b0c9241404a3d7353afb7926d89d5706fff6115f27decd3a128a4f323ac97eb383404faee9646e1806179d6585abaf10d87ccf6a7ab0239681b30b8edcdd3e65a6bcf6a2e2e2c9f511efe8e2a6a138dcfcd05f419fe9746ec5a1ef7377cdd74dba2d8ccfd5ef9677f6681a354048db38a85d7abc9ee4f170f6629999eec7aa51291d7c7feffb6130903a3a0400afe835947a47338f743c498212679e72cdbc24fa6a55ad1ebf7dbb81fb1200a49c205e8c055897f7487c0efb8001eb4a7b493d396de7d8a067ef30e6a62fe2d61234e21ad30be215d366f470ca569d871e91b02cfc37e4591a1489a683571fec188c72ec7cf9c98289347766a0bb8ca89e78941d92bbf249bb79f142127482f1100d95539da17ccfd87ec058b2681a0177caf6db3457b69018f2ba103846c5ab4ed9bf694d5bb29fbe0d327c3e4d53b6fd47620d3e91d317679a94a0d638e24d71ebe332c6a8696bb48078b4fdf5d2127e40eaea11d8cfe90ce56eb8693874e0b2ea0aa8efef3c0907a07f8b4d48c90d2c928554848504c3b6fdcaafd716463a76b27e65562aab7abb7414e21e7a9ce976c19ca026c6088c4b2210991765e762098106a83c24bfbee2a022c748a606f5cbfd1f3853f03e626f3cc73b9297195df43cb1743d1f014353045378c391211e7e985901b7526dde3a62af53e3207cff12afb03eb1090765c102d622cb121f517532cdaf429c6724b13b3d7ffd97ebd83073f5356c017cf9cd6262f4c1fd04cdbc0af2c800c19ae9e0242a89d539f89ef13b4e575fcd6a5bddba680042b52637451596cbd7a3f962bf945dd3da685b334e858bb7bfd1e1174444a4fa76606ae9aa37b4c7f1745a8cff7949fbf1d3da9703da4be9f26444343277723aff65bb360426855484295c8977ca8b89fb40474ddda2a8c3b5372de5407513a8082d9cfca885fd38ea386b39878d33b68352a3fb7fa15b89041ba77111e70c2afbf9736285c863f41b4a20af5051ebdd8bbbf1441eec3abbb13c691789645ea0533bcad355e23bda24507a89743a574e40cddefb3fbb32a84bed298daf955966ea8ba8951a06fe5a60896dd62cf4aa7ea3c262b37333878103038dc97104c7899ddba07cf57f7310c3c00bae3d89cdf97b21e71e3629e802484d89713b01b46296dbff65d163e81745e0dec94021778374799c94bb9a71ddf6eb5c0684e608c816ea99c10b6fb2981e95e348dfc748e72023f4db50be1ede74eaa041576a1167a59e30f5909ccb163289f218c179193afb219db8579dbc069ab49d53ba22137fbbdddbb4b06f9a2ea3f14d7b20a4b248f5120332c1e34f8b3be75f7ef4f41d3ba5739a501526067c1d39804ef4f416afe8634eaff1cd6598fd6254fcac499deecacd175de825fd7474a7ccea04b7ecb4876bdebba6444bd9e69161143283062af1f1c7c9c9a5b7e8067104c7eebbb8919c5156d6a80685cd6956381dc2a8cd2a72337c37bc550b1b047c9bb43907a00ede9c18d2623aa6c7498489654d55112a9ce878968b55b9ab37897492bcb65df6c2a6f7f77f856d44cbee4e8a89a25277d70e9415aa201fc66287ec6de8a062a1d021062e8981ff859cad637a35f4bedb1aea14e206c1a8df0c2dee374f4ed9042ddda7b3e8a27d8a0cb7d02424d74ad84b683705fb0dad338554642a8daf9548ee85054018d622fe1c9a8930a5e4011eb08bc9dd1a792db8cf690b03ceb2d91a8a323907a6a8474910acc0d2f692896b8b7b38a51e775ed300388189713b0124406daeffc26463e8db6de08979627fd9047406e7659179d03d24fd0d88238f68a15ed2b84e5e35c698da95227cf7c748de20b601db50d8ccded1c3a041576a110b446630a8ff9ccb8ee8897414c15aada5e7ff8ccb15a89d8abbdab7a013cb51be1920bf1e9085babecd544db84c4353bd828f6495c1a71020eec75f56f917c69fb3f9a61f4d2e9579641f7e5ea02e77a54a30a10601e8996b89f2f6ecb55292aaf5a60aa3f26daf1c277ccfe0a43db425c2138c62c0a52e04792632c167d17937bfaaec542d6af62fcf054d350266e7a5a362bb5539cbd0e7ae04ea344ab36b7f87a51ff1940bebdb1f5d31047977f5e35b7f10b3787cdd0a87e06683b6f8d0cfcaa613a30903e743d89906b5bafbdd8aa5512f8e0906cc91ac4b74bbfb57de76bb6d07b1853a9e6bdba31d051787834883fcb80af58e8ed1b7d77e040d7fa8a0abf64ed6d6cbde792b6b858587813fa61f7636631385a455697bbf672f64c79c4e561ae03eb190667639b08a0440f106403453fb46681037578432dd68eea60eb05d9e4645c77276438ddfae12a2b67c75bce8b2ad40491441d80796369b549da0ad2610c80aca48e7fd1db0c3c1f401c0a5322fc081710008e003c5dd3c25a3af61cdddf94b087ce7b0f9ecd179626987ec72629152f4cfded9bbcd6d86e9a1ec5504fbba7942103d3c1f2fb2852ca624f6098af53a2140ff668c492e5e7940952da06b8159a8e524f68d0b6b1e40487c9ea80e4e7638e788d70d22336881afaa83559c3c8774718701cf1a046ded5f1f0421a808c27f1494249795ded9b4b238701348d6a1ae51092f4040aa99b2a6eaec3ecc7d04a6bcae9b971f91b2de74ec39ea99ec7547f473a2cfa33ade3447073849741f9c3c0ae2096b04bc1e9a7cd19cae063721ac7c6b69a4efddd9fd3a5b7b577994b0f6d0d218dc6816dac7bf2a090ba98c2c9d0c86e875365046151bcaedb4d5ebe0c306621674480a98e98eee0d4a8af6a01afcda950125fc068bafa3a7ade8165ef1f9cde64c149872a09977a8af3e181f068a859e25b537050e59c795ca6bdd44ba85a57f021fb1f063b69069c3efe3467ea75f7d2b7b114a517f24bdcd54f429cf433a049615ece8cb217e3e0faacdc61a06dec9cf00035f3e0662a51eb276a0e4e2945215c509bff44d85aab4a0a042daaecff9d327c5a1762cbadb407b9269f4e7533abb3778b279ca76b11a9fb2c1373e20782e8974d8ec1f52f6d2628548dd42e938ca3d3a094751dd10733e3ebb087764da416f22c8d8b6871e2464f651852541fdce5094fa52b356db68065e798a869a8effc7aa9048680e9492a402b4c7cba036dc09ebdef138839d8e4f3b0aa85dd7bc49807f8cf5bf0473e2a0bf8d6d4eab3fcf20652a9ce8ea9e52a51703634bad61843adb89a08d3e05f2ec3e15133abe3e34b069359a94a0af79abaf8c95c9339a78d6306ad83ba5e8c1622f1f5d8d89d159a62149c3bcb6c28e11fd8a7ea074ef0989a7c2be535d13eacbb1a56be6dbc47373890d77b5a02dd7a89712d1e76a8964c5651e7607de8c400ebadca309897a9c6fb7789cd302cdc84e47dd2210191e0989e2466f45d9ca24b26d2d666f1e9889641818eef67348c61fa511d7ab2c3a0442f44f9b0e1e9956ba73227ce2718326790eead18d12f952727e9d0f15a2981a89367b2556729c1fec3a2d563377ae390426b9d5193213bcc2b7cdc9cb500d0492da140fd673a206078d6d2f83e83ea594a12d9cba6283abf1d7fdd6e63e4ec83a043002f9b1619966ed162e85b315af971128f971a64e660be4215244780ac862260ea3b3a613a074ed40dff233bfa5c54855980742f766f89deef948577bcd2fae09ba1700abebdd1990c8e20e0c5305a89194b3e20b19ae1e3ebc17e773d42a94d2634fbe3e162f9ade1d4a16fd97f5a8215eb75b3678dae3b6daa1e96464b7363e774b3a1314e97704dd85f707204e896bca5d89fb371fca250d4f8d89f2991085ddfc4db66d3b1620657ebb646b2b6612ccac986221067ce22c21b40b17e8b13bd813e0af0548d3a561047cf2e0568a17ffd9afb65f75a1017372268964beec128bbf7262489915397c1dce308977444fdefb378313ffeac1d6cb0448630b6d4a64c9f59112bc542d3ff6691ddeb3eb654aadd61a26083e3976d04fae04db3416d6db7f969c73169976119eb1a2b1798c8b243cf17f47440bf1dd0a9620b51c41e164cf89a60aa30927e75d2bfa4e1e35fba020caed63d30976ccd8ac4bf2bbfbcde976bb4e2f10b59b12a14d48073295611fec20fc488ca8388ed14f7311c5dda60e13b7b0c267ae49de599a173a6be28171211eaaa4a71385a4b2697be4672f51dd9c4e96d66bcaa1eb85951e015d4fcbcdbc3eb672ecd2e6019e0b1de90518622d0ebfec4278397475905af2aa893a557e2da3d2f5ba73629786348ef9ff48ade7c72d4bf1ab78719263eb4fa0c6ff170b9487a5859e62a0c8d2481d7262cd7baa3e4e40bce8971b04a69bb4553a09388bd69590f5dba646980dbb6e813c244ab3b22a964d390cb1c889745bec968107990e54df38cdc1afffee488a89b45217ff4f173f2a91f6c66239ec6d320d40e6d1389838bb8bff85afad2f0b290115c74d636ee206b140df478cd7dc49c93a04addd6be73031d4f4d16ae5d8a441b1ea55f6a54aeccc76f4e866a7ded16abc9608bfe6f54e06e41f484dce5c89a0ca44defbdd837987bcc98bc785cd9c8bb6b8ff31ab5bb1a24b083fa4a4431a9c302576e7a5a3a02d3cdacb944f2c04a0dbe3d6db0e87443e3306797a9e72a239597c8b2445f1fc1ffdcbc9cbfe440ad4608a0bc30a897f13052627de4d17fa595ee3fbdd8aa5ed63876b0675d8c34b7489fbcde949bbc169a6b050c1a14d4807c683616eb2c0220ae45190896433d9f944af3e96c2b7da16e23b5520ef9f89f26b4d948b403a31c11a8dae3cab564685409ad913ffe033a4ffa8c0bc11b23add794092aae6f549f3a4c01da3b36714aaded6532ea87ccdecb2121b0448ecae9b671edb39ded1a23309133a2ae27a9eb7a02ec515668cb5973c39a61d0067af141e3a2e6ebbbf952ce8ab6389d1a01aec08cd32b7af34317b8538d1b08d94d2184668fcb6c7d8b007b06c50011393b9cfe8e85bf2f1ad991873c4e354794848109db5675b69800a748b0f91cb2695101e63c7075f1fa5caa72d30455e4853cde6bba0da03bb068595078f7a002989d14ba8fbc5949c63d20d8ede7960d8951e160a4ab33266e053f429d206525f0acaecd3621f22ac6a24ed1f4d51649cc7fc960d62892daf0e8504c91fd8ba3654cddc89a62db55e962c6a68a30882cd044fec127207ca2d7fe7ee99ad77dc1861189e207c984099ffddcb54c1c1624b8e3468759506b0dba34868ba9dc74f2bbb7be7c2d6b0a5d702154210be019dde741814980374a348d3b39ec54852a773ef0aa1f56999bca17ac913c19c7eb20b1585952f01b7007f1f72aaa6c64148e2be83407f620e55c13e5792385711ec45d3cd6bb8d121baba898026bbf942a523562d6f4a2da8578983ab11c737b600d6e03ec3baa0973aeec976a8cb5696a63b88398567b268f98de8820007047c64c1c1ab17b5cde36e0da679635776e76a9f45679652d68a2ec762c20aabdf3c11b3fcca74c4664bdb79a110dbcbd05e671189d19595fdef32c7d8ffd64bdeeecfd5ef8ac315d94422c7f1a713855d20bc7519f1703d6bd266abdd10a1ebe74f0e876c957e35c08bfc50af0a82517abc0b86748e380faa6799065bbcb4eed8b6ad1ebf7d8953fb5900469cb09848052a9741a17c0efb80f44a2afcfdf1fc22ba957c7e5e03fd3f8917e712dccda710da8aaf3c1257dd6319c613b4e8d3fc90e3bfdcebe7a020b6cc74bc0a4d0cbc6da257565f340634a638a1a8fc2131e87f10e6bccf0540e777eb97cbf2bc333b10c57909d3e2ceea0bd9f9cc0da66b45a89c1545786fa038b6c0b1ec40ddece8ef0e3264d70dff04c8d3cbf520ca7c964d2e04b56bd6c092c1726295fbe67c2f10ab506dc94406231f089caba2384096b74b86f191353a2503cbcafb243213ddcbf2e0367cf55d492e9d3a8b4fb37e6392ec63b18c60e7c5220eb1e350523602f20f6bb1cb794bbb2efb7355396951e24d8dcf8504a2666338749cb43e9aacc548d533004d4aea51150509dd44e8690b15138c0965a019958949043d45f26289923a4181d9a840663650417c57de6b5645a2cf054b95bb854fb337b507376996a68b4ea83a9c81203effa2d7513f42db079061a066dda375a889a0e356bcff490a9f33c976af85ddf1bba4bce7f94210c11526df14a20397523eb5a28ad3cbe93a07de6681eba211eb661f199266a8c9487196a681f0b1bba0b0297f76666fd510e603c13d95dde976dbde1019fcba10409de4e965daf697373be33a796b13a8e06b82365f17ff04fc9618fd2e13ec33786498e3c28ea80dae5d39208796aba4c325c2ffca62cdabc0e72ea8061481c947c3cfb24237a7bb0494c0b6b181739f9b7a89d16b4700aa7d456207338dbce2813316923853be3add3530854b738a97b2399c3389744c30481979991068cb64334124897465959900b8a0c80ad647a39d4363830b19bedb3b753a7c62d2eca8cbafcce6b9e525afc70a57a0a6ee59a5bb16eb86957e35e08beb50af0a2a517be033e8743c380fd2291f97cda2b472f6eba3b6777d891dfb1f9b804dabb4516333c313deb919dd74384904554a486179a60448985e03fd3f8934e712dcf6a7a6245fb33c3057dda777c69d313e0332352d3c0704e4396e67ca0aec60ccc75c1275f63c6943cdc5c1be313e9d10bc33a610b0bc430540e777ebb1cbf2bce83b1004c963d3e2ceea4a19f97507fda07362d6633e6d5607ff2a7e99bc853a48c785ab2f36f4e7053a8977e0e89dd6b55fa52e04b5c7d6c092c172f595fbe6a62f10b0ef47c9440623564f9ce85f2085b152f7d34e9105682529fca3fb5faab4565f74ae948525dffd8f5051d3a59c1fd557ec63b1ba60e7c5220efae350528002f2161772cb794bbb90fb7378fc6aed6d083d1da004a266637964afb49e9104d7452c91156d4e1e3fcf208382a5e6db83a71379e6b97419958949833d45f2f5899285548606a84066575041a6d8de346616a2cfde3a893a924d38ba0d18af39eac13b5ee6a4a10d65c77f89621ff48e6af69808742b47905412a140f5fb32853a15b0c0cf056e40bb7cf1521fbcc50a0be312c1bcbe534c0ad9819f3e4ed221a85416648597e83a04ab255396a13099649e9da831117a042689793a8e7f621381984f7ccfd680b2af94d8e7fdd3c0def35be2e71a4d821499adaf61d2c7cd74ec32093604ac433cc840a07c2e6a9f993b4e75957ced875fb0a032db2664ff7cff109547bce76aec1fec76b3e8ef74f93df4f181a14b95382153d649a885493066e2902fc2b0c9caa885af3b4a45c9c63044d373b1a7a0c5e2024d9e490b4a51783862b363b36778283b3d7fab4a879a214db39de8d5850da6adb321138595a8bcb2f2919be2a789a25f2a89d596a913a6f99d855f07635ba0bad965d5ebdd3720bfc00ee84ff9a891945dd39fc7f68a3e3169ad301be6d112c84f573ee00d1aaadbb437cc74258c8c7549fbf1168a168ada75def2d1b3345f77a13ac614e93604dba8f7e4355c896bca8b89fbddc1af25a844f689f219f50e4872c069b4d659a8cdfd386838e3f0e6882d3686c7f25f05d56960f184896d19f4d63040b5aad11aea017c810d373a6952d27f661ec03b13a87856e0ce7750a1f504fb13382c72f5487271aba63b588789db4dd6bbfb26c5c9aabc7c53a040cdb3f9875973ecd709ffa8e8a31fa5b6a02ed8fc482eb481151f3f86514bce8d12d81a660ec2dd7f879ce803998cb0d797a272757c5d24b03861aafdd706f14744d3f307b222eab2a3aac8bfa0d03a28bb437faa17916f5fcd061ae6c959742d0eccac7a7724ad76bb4ed5a6b5021fc91a48d83283751fecd20eec5008903d7dbc4794684daf51d363cb7477816bdb6e89a88baf85859e7521dcad5d3ac5c06f29bc538bbb21dd9c4e96b3ba04f155d5b58bbcf6403bfdabc1dd5bb4caaeca64998590de8b1fd84692a0eaf9c21718141299c740fbff6b85f676b0cf53959579de5e08c2e00498cc68c94eafb73cc93f04a0caee3ad221a854906462f73c4004fd02ca72a19972f24b383a249d11c52689a168f17f2c131aeee77ccf08c3739c646853247ee2ada91348f9972f94262f628542bceccd74ec3215360480cf7ec8d8ddfb04399fd3805bb5576dec11b2a04048947f228c8953ff854dad6324da013d17e70714c113ffe0b2bf370f3766a004157b256f44d3bc1fc901b7afade43afa145decf5f2b8a854d38579cf07e06d41b4ca4d55cbc76be80448ec3da2eee299623118e6c07c2210acebd05523b48974c51448ef8ccdaec68b79ca8ccfd525b157ea173b4707a626c6624d7a5f7936a6e1a43aee9eab17abed7b4dfd7f25f1617b5ea8a00450af0a6f517a31390c743c38df7267c9c9073111285b55ad1e692bbb3bfb1f9baca5394979055854414ef138fb80f4972a5eff42aac0e7d88530ef231e2163e2e712dc92a710e087af3c3057269a1913ff5f3c11ffadc987a1a840695daacc99666dae783138c97e7b95b95e937c21858a565db279a7bb76ae013b11c71f0b74b3e99de2a52e047cd130e0d73a2ed9af4a47d2c9f43c723789748d311eb75b996248d23fb1a6f9885cbb078b4fe7fba000981eecee817785a0af8116c659e0e8bfaaa2822d6af6691dca9c822566add6a3ddbbb2daebd0b7ae04dd07e35d6ba6969c322ad18c7b5572e01f618c4424117fa1d2799e068efeafb657602ef71947caa613050903e75d2b7659cbe3fba020a5642f5f6b72cc91ac4bf2bbfbc7de0ebb4e2f107e027ec94d48d91395791fa2350ebc504f90637d8ab1643a3b3d4ff9526d57976acbde59302cc5fc67e829af3ed53634a6c05bc74a14bc0367523313e0b2b02e8b3ad4891e8b45e0e645991fbfdb10085229e82f4062bb7323da1e2a7652190d96c775262a7496e73ab28a5353c9620ab0a85432dc2e6e89f1adafcdbbb5a63e55bea463b9d64038cba4e0d1b18bd1ed9c57334a85dd8908afad2ea8f185a255617d04f1003173a0097f2d9cc58ca8c710dbcc60e9253b8ab44ad6b203e23be886aa0989d192bc6652f6aba6df488e319d8b571ebb32063e40666666e4118a227a7240f1ca007a9f5572f5cab440a640a5cd484d960281eb1544cc878a64fd10b0ec43a326dc4f0e0494b6ec985963a2c91abbfa30b1d62a7c19bcc0b3a640040be89b7cf90067ca83eed8794e85a00e2168d4496b046d254e7b79d9401335100dfc2c8936bc72cf1aa53c33e08b96ae9cedaa8309bff4b7d8d2ecf50e40d5753e2f77b143de04f401bc838119b779b03896649db2e2403879a75061a8543c90978379ae3cb991cf1deb3ea649de9350862f27a0fde6044ed7b4519aebb3eabf03e3f9b5fcdc3a353a4a002199e887e6e45fde02fd04dd8950aa9296f5381a07e67c3b6f65a2d106f55203d67bd7f2e97ccf006d30b2ba40b39fa898400dbcb1d68d2f3c7efc808509d53a132ebc8ad58ccd45a20339cd40b8db15fd20f561575bb143f9b329831fe79c2d2ea85494a82279fd408503665b5e18d1f5de74ec3ca7133a2ac0da0fb7a0c66515aac20654b0727c3b002344ef99c7c61489bf0437c4b16b89d13ad6b552c73eb7af6bf23a0078b631b040bb3764d2382cc7bf2a09296c5001139316cfe8325bf279a3a11873e535df794838ba7fcb8215778039d105b5bfcb266e10e32c3adb5f1f813db171b994168562fd6d927673c3bb974018a08f7a002989f24bfb7fccbfb1b0b00d8edeb5c4d895aa2ae882af0a87e081f4b0301f525f33cab4e8a87222e36321b13cec090fe33a329515878ea8fdafa64eafa108ff4dffea5476e7a066e29a3002a372f1cf3fdf69b0bc3e8c595fb2f6640a16c462c5119e11bc2de7897f629101b54da03a6287ecfd26fb741f3b125596df3e294db8e7748666223afb74cde2afcb047c7a94204407e665ae72590ff133ecf18b3a62855770bf3a96d276380a00f1cf0180b2a551173b87194e0ffd852ef999a0ddfa4819740e104f9c76f585e3a66847170f368b8879ded6082e54ee94512f4353e829cd4d3baf730836e4a1ff8ed489afe2126468811f1b0f621a2262997ac4c9608977bcd27042cd8787380e55ef8ccf1ff6e0b08d68f937717e3b719b1f617a5ca24251db3bc08ae2a0f6b14f5b897495c5ba442da32e189c730e46263c044845293c998d89fca34b5fe81a8e513e26050ea6af40a020fb64ea0f38a1062583e711f4cd26dfeff6f17993600837e360f63f874757e3b6f6c352ac5b3edbdda0728c7359baa8fb8033173309d9853c09a295bb7744b0109c49691a992d020e62046d5072b09066b1648115f4a6812dde194e7c04760bec0e7cc540474da6930142aec04e8308a35698f32624ca5a444362043092bce8901031337f2139eccfde3ade6b30b1f174a2b2d62104f1c73eee8f5b663a3b613479d856bca0ddc86dc8e71a324c958c8a6bb8d8855ea446f4e7de3a89cddab27fd67c5f4dcb65ba6b8b30d896e6f504fbfff1ea21b09bb4d23b4b22c05dafb2ec7f2610733ed7de811394b5671e97dbd966e08e5ff21551852582fd8f1464fab39c7ed592b4d5aa8c0d1d18ebcbfa12505de4ef7416d9b6b8eb61bb0efb2a113380009d8e4ff92ea8a555a235acf106f55b045545a70d8d6d4eb03fcfe3ef2aafe66983e2d13753b5a3d9188979d71545f2f5de3d855486e63a8566c3500f7c62bb62216b1381992df1cfb0361ff401039c39a7c13beb39a4a17165c7a6404023f442acd5cd57b8603a90a1ba50e9a5ffd876f7663992f2bbd13acb8985df4d33307f3acb6bbb57297e6bb69a6b2ca62dcaa848850d9166383bee62a02996b27c62bc3e591b04a683e05f85097f2da51490621910db906089838133e097e7b203e04dfd929e0738dbd3202f5789db8ab7f77fa86dd690964e12deb4a5a02e6236b3943beed9dd7cca9b8e5f5572f5a59fa8f126a5cd7c4d1f02d6678d4f79878a644b66622e1a9906e92ad2f789d9c24a8e64ec33f9db111ec7d7a5044a3652d1d185ca3bc6372ac0fdce198376f504fbba7c6a210bb1c14e1f6bdd0776bf1fa83889fbdd00a1d2ec483bcd853a9c449e2e13bcd3e4c6a80aadc1a512d973d8909813568142d3be9e944b8ff6b1d81a66b52240b0dc85d717dc3a1e01d30ad92991b724457f497679ff1fcbfeaf0ad860734b6ab2f978c80ddd643a28e9937ffd7757355f40c91ac49d59740838ccac7ae49f2d3c317c2bbb319fc289a7d272aa16e31f95d306c0a841e5a1726e79063a042ddd098172a80f527edae091d15da7647ee2f9330b57f1538d8540aa7b3a72abe6dfd35f4d7389d14c72a1c3f1ee10dc0eae85b84b10db8c9a89e4bc66cf81a53efc1fd687c8d6512ac5dd57f48ba096bca88eafa1200ce56ea5a0ff3409109922e7bb909e8695c135c0d6789b440a35029762c2ab9082959daeabb991cf53eb3e10f7ad4f83b93427ddfab80406555f9463b0c3ff2d5e19347410d704b0fd98ba22a60498985e7efd3fbb17537adc6a154ea8f15307e27c1d6f95a2d106a8525d074ab70674fdcf008e24e8ba62b30bad850aab91ae96576d3dd198852f4de630af3899d129d7b1835881ca62033d7fc610a87a61ed896755810a80d76d773d72620607c8303ccfde3e852ae8404d123e6d74be6d01cf059557c5b80013c7d84edb10c77a162cbe896bb752ff2dd1d3f9c71587443f02c17b115ceca751193b2433e2dd5be0938de9d1956e8cb3a3ad5e143b995bed3df6626b22258a4e0ea73fe95f8582cfc880539c0a98d3ba64c020fbf2627573cb485a04e77b01cd37df02aef1751d2f533a6f34f6a48a28db169eaebfac59148647defc0e62109ed6ed2a8d75ff49a7ff898dcac8d93daa85a8109c8ea43b472d1460bb3667c81e30a1496df5200d3a5486345746bb10de4611c24a9a53c53890b26403d9fffbebee3195ffda67724e30711a4cb2d93b9f3e1f901040971651404b690d04effc770cf572aadae061d105070905f74e10fb5b0151aba6c662eca15dc0d69e36919c339a093c6b79e7d489c0fd44a5d80ac7e65459c6bcb509c6a817d81fc36730eef5e4b1ec37dd92b46acfa373fa18b8807f74313963ff85ef6e323d6b260eadca7ca1dd075ba841603a049141e208afb2cb68cd48d36d18562afdc0e97495e2727ab3cabad3e7c6e3fc2ca08272f5993a83e7620d4422623cb415e4963a0677794748f5ff72397c3b4c3e850bb2d93baf7bb6d59cee3b09106a4d2e2404263a6c5c6e7e6ad53bff852a5f9fcee45006a804fbff48d51024b18ae2966b0909aabf96f57cf9bf87d4e2f93c85dd7fadaf79ea04b2c6bcd36a383a334f5fa54a778c349e72ffc1812f6dbe0cd14b888d1f771a668e598573c3850a5bc93ad2018a0acdd3914dd2a0c0479a16684514d3a064e7c955546ab28b039169c7d03a5c08430e97e4910b5fc3721afdc959742d2ed7ac7a77b4de03247c0789249f458963d2724716497d04a6bc0d002a569da8490ba013b3455130ae796ba0328565eab0efe3a5aba2c554333dca24a2edb794ed7648aae8e2f739ed5d2e6304c7b206aba8872297d521f6a5552904a0cd062d9c798504b07cc6e2d630abe2c8850496503b0bba661ff2f70a0d9c09af236dc23b3d21aa660be42181089fe8c8a0090e2daf38136bf2ed85df51b015af18795598a76375d3f813f1f94e3a7acd63ae3798db02034a2646d76a1f980a53de40a4945d6de019ae1e3ea257ad30d42ad1d2c853f63e319a9a051d35fd380ff5a8215eb75bbf76da1603da4b4f6464b336e86b59401318bb1904a0cd590920cd85a501173adef2bac82fe2f4cfca9853a6a8796492e8da09b8de2684e7668a2fed3af91132d30ec79da0e9a4787b170c9a3adda62dafa899cd85c872c91aa04085a5d6e355c6bce878c274472c8c2e54cba883b2e0d514d669c5f1cd78ef1f013baa834eb1eac23de3555b8ca8bf8adbe669226aeddba5c956a5ff04482963c01aa29240f97ad3969e3303b35ede7486479940fb7462e2b3cb047c7a94784fa00a95151e7382f7b585c09cff954ee9e5ef9c3aff69907913c03b87ed8b0d24046b89002d9eaa622e1ab5740fe5dc3568950642ee8385c1afa64ff442f624a095a1fde9106295ea62a2b22925625292bb7406107695e6aae07fdf633148cabbc1163d42920817a99d2af8975b057dc0fd5c5b30a96c820082f88615d6d4c11e7b488b9c7f620445f1ffe2af39b2c1c80d04e2653bfd49aa96517813a89c6baf41112844be214eaae3c810cae7e00c3dd86b984faf1013857494855451d78dca148c399834427596f89ef13bd2857ecd63aea035db50d5b626372015e098e853dea891515d6d0bdb92985fbc2fbbe61b5894e6d553ae3ee02f84058b3575ba61f540215e5d5bbf16da9703da9dde6464b3365f0d59cdc665bb360426a859e42027896b088bdefb26e2af140db715bbf2a3f585ad2c66ec7fdfc8a24881bb367e50961fe71eb407e9106b953721dc36cfe89a6ba0a6a3b335a8857910dbc9cf85046e67c873a39eecb2740d02d384897eaf4ad6b0d6339b9234109f96e9036df020730fb3733ce29c7f40041fe2370fa73ac581bed6aefdb16638205f8379cf3e5f33f131385e988ce2b321a545d9c86448597abb9b65d9c5b5016be94d74de8d3eb40694bb2f3fcd64a3c9e287b6b5af94ef991c9e95c15f342fa2ad8c8ed70f4be62189fd4616d280f6cbffcb52427b3a181ed3ccdda74be821468ccc85c56eec30d6b857cbec139585569c40fdca5d4b1959f5cc0442764d1fd6edb00f24de742295066f7c0e3748769c5dab988d83078906376121625479ed854b458504256f2f0cf5ee9e6f57a5edee4f3a8ba393dcd92ebb2d10bab131c6b8339fc2b5eeb3626bf12d36ae301ee410ee6a6adf025fb0e35d32ffbc32e4136217d9e2c34a9699f5b166eca06b1af514f999fe5060e9e7b0d399f59187a285651501f1811785625b31a25774ec0a42383aaaba8bf66b6278456222d3e2954e78fd7a897418e2a17aaff9bae281579ac3bf6b64cc693a04be766e4aaf3eec61240c6e91ca6b04c1d8a23e9810741f9c1c67796dbe04a07f7ff151af45a40910bf4dab9f04263a01b6ddfb77c0af22ec4999f4e89ea78974bfbc6652c8aaf57cba71aa7cf9ceb5896bb78189fb2c0059997eee4d7762854d3bdab2c2313e6a385733ca4ea54a7713bf619e32b4d6dea0de0adacbd04fae04dbdb6fb3dd7f874de803d2767b9e87a266e3f1b724b07f6199459ec98ecea533d42b5554c3558b03d869a0643a5c0893fd78c3bf6f2008ed348a6b06ccd8ac4bf289fb57ad76bb56d5a67a9b7ea11a483a1304e36e5fd3410a3dd190de742957f981b34551d8d648f29e4a8565eab0654a9cb230200fe23253c8dadfee26b13ae1738f1dfdb1e0c0f91591e6c039ac3a09093a131347453dff0d7a8a45d33a26723a159690f5752cbf4e4305b32a50562dca4f38f54885ec45757dc579a2f6500b305773f9d1bcb2e4c6a878b8e0674da01365154e4879df3c99761a9b41af02eedbc6c589bf04dd8f1e6bbbd140e7bcb7d9b24db3a0a27b628e94ab8d9476c5dc573567a7d82a0733d802f40a5d2acfe8c45bf279e996ef73c435f761484810bacc823d778039f20575bf5e269538d2e46b0731e2afdea7bb5516d24853d896e9cd5f33bb06409557c4119b5fe9744bfb38a6948d3397d58edeb5c485951e163c35afe887e081f4b0301f8b5f0a81bce8a81f870bc81e74df54fd32421da36889c776d3fdafa66db3139dd986ddd75489a68c0901870d925972f1cf71dfc316ec3c8c1e5fb2a5644f5e84d9cd401f91efc2c9a0de401017c6f91e4f7ccf126912f4f47a4d3e8a964dbe65e7a29e04260a25a3afcb85a0caa108f1cf7af9b4d19ef5db99474e855b8bf4cfa3d989d9e23c2da1ec3204fbc6f19a10a4e8c957b2622c0e245b09ec62d910197481f268c37ffb2dd661f5a85921c77cd9b48da520a1e79cadbaf74864ede4cfde86b06b443bd63e51e4298733c0f271e2f4430504ec839b4b0f85b9126e10c538c73c96cebfb677f949eaa62613854dd5d3b06fa0132a6daaec2cddbc339bffd7ed11178c652caa90f5a6af7cc19c8e0438c7d66da4e206a895fb0af16910ab50b4c21a06b96d4d9cb2bc38a04ed6548638bf353a65299e53fb29320a07cc517a367c62b7ba7399a88bcaaf7ec7f6ec63d3ba60cf956fcb5ce350d6e4eff20f6bb68c594bca8cfb73113c69ed96e73fcf5765a266d579f29cb4559aacf0481d87f6bfbc50db4d37eca8a86666463c13a09858859515aa14359c7ebc9312fdf4df403f9460c8500f1b3249785bcd5520021153a73e5dca1b8ec5d3f164ece162d54314c61c55444abc3a2d10a09557a640db433e0785dd0ecaca22f5859d2119c9e70704effc2c73ad4e31e8f2349be207897aa56f8b0baf55c55b9a1078c0e720c1fa35e622b3333c87d67f8504966da854a707041aea5317cb128738903e6579cf3e5fb220a23811790a969c10cab26bc8647c35124902c54018a101d82d5d7489bf3cbc7994bb2f716b64adc9125c2341afed02fa1c3504c111c72fa24fff8ed70f4b0a1089fd0d30c2ac0d2e133808427bd865983338ddd5613e21c7c278859525ecb65db857cbbc13954056af26798cb1744046fb380442e0781fd6513c0f24de74a310a117ba578cdd2dc89fdacdd79acda0fb042fea32c05e1fc0b2568a04dd494ed90705fbaca84e96475579d75966209575fb16857bbcaad9ea2101ed4f7636e0fd296881c1773512cb05c9cfc09f1411b13ebafcfddc689d40d184d948e9a05be77c21176eaf330dc1f93f9be731b004a70c6ede9c733a3781792d79cfd33bbc9499f5c8567efd6234d6f4cfde68bb6be2e54f72313274db9bc0098944811176674d3e1617c809a2f517b5dc488109dd1a107268c5080909d61e40b9243dbf3037a1d8a6f11ef50e307638e788b20d67b23af98d2f677ec6cdc0ec29ab856276dc7f482720d2b661591a0a377bc9e0fedb6576f504fb1348ea102487b5b14a85096935c8b1377c052fc160ee533c3add7f4f9cbaa004c0c040ba2f3a951a924d341eab4a7fb84e13ee536ad38d325122ce3db1d81a660e594073c3a0862fdc62d2f403ba073c91b7d285c0b42c16ac4514d7cdd153c9b8454123af9465fa5a20046d556891aa19576fd734c905b6c948744f38ccac7a77b42d0324a60dde312445bb63aa1f66160e7d04a6e0ae006f569d624bee62138179a048d3372289d9121fcbf2bc73af5f8548375da8f1cf96143b82be52d63c83e299e2620f076b04150b2567af0abce2db21d6b7208f0244cdc65bcb72ffe2d63f0044bc8704dd0c6ea39c08e638eb18f2f5bbeaa841a76b042529910c62b68a0b09105199ecef1f85dd6f33a006d3c106157eca6e06ce5b1479a89c2072822697f185c840bb47ec5b39ccd2a46651d20e2c0ddedd44da0315394c990a2ced98ba950afcfa951788748f95f1e20176ef6df235743c49c7f2adfbfbdb017a10dda5a8f1437eb1b24924fd44d7553a927659c305d745a4920711e0b206a8b696e62ff68cfc4560cdd983de98d8cbdeeedd3beeb5e78489abc0d64de4c6dd479dc1e2a841a72c0430f4d65dff8531e8fdb1314948f445ec1d05cc7989cbde875e4a25c1ffa74825547289d90a202da31ef5e67b62415ea06e95bbbadeb3c72d757cb2293f57630fa5ea2ec52f1fd19eee2107188beeba48cfe2a431395b681ad53fe244875ff4cf05ea896b6e15138cec3cd5328596428a36e67773c51596ff8d083ca8df517baea514d219dbad9026443e296bc82557448d8974fdf5a63a5e312a80d5382cb37a1195dd17889762062db1a7105ffdc755b13bc1eef5e02630f5d910dbd919726e97c59807c96ea8e2f9aa0aa813397ec11b4f31033b3b2ae787ec79c901e8b14289f2ea5f99ca3d12f57c487172ee8bf02889a0814d89fb62ef064eb4c91ad83a6bb353e3c613ecb22f66ecc2bb712f424305af0f25b62db305a0e7b239cbd0a3ae04a0d9c244097f874db203648c903c66a2394979b7247a794b1ef1cb1298ce9cd32b692e4bea55de381305c8c45308179999a1e3fba087b7eda45f0906cc91ac4b7489fb40de76bb562fa67b021fc23b48071383e31f148706fda8546eb87568a6c217952ddd6be730e0f7a17b3dd6029f6e04e494a540974095f91385fc1f29febf6e72f5c5fb0af1691087e2e2c0b63add84d23d99f57c05691f2bc081e83add7fe9a5bacd95320abc3015320d32a34e441240b86aff4b38e281156d3f0ced22ce5bb1d8f966ba413a73dc62e842ac571e017e0a6bd391b78c6b2998637fac45143085d1ad1255546ac20503db69a0643a28bb937f6f342f785fcd721afd724874e938cc697a91b44f0331f19a89a2c0c2899ad26647160e1b95485f3d506f569df54bee3a2eb3454246c82df7cb818565beaa656744d38a7e90513c01c0b40b8514e6722d108565a0a60de4433e6385dda6ad9c2262854ba668a6cf57042535dbc42d72ec3e04fbfff1d521c00bc9e25607dd2faa92eea876e92cb107b83b3e856b0e08d67f8504e66d4022a707041aead669611296384955ef7ccf325f3e38247c11f18cb11a668e4185b04040d75bdc851e018a2e17293644eb85b06d2f16683318166b64adc9765c4123afed02fa1c9e95ee11c72f24ad9ed7d70f4b0a10bb760d7ed2e4ac7a77b4de3c31a62b89315fc28963aa4eaa4a211362038ed6f6bce2eb9313954056b326483a9a194946adcc0491e0781f3bed5e4124de7406fbc219ba19b8dd538bbb216b6c01f13bcb5718f1a140cb10a8f70ed18554736b04257891c4a84e96ee11798c4f286ba113f549fb738daaac7f13cd31d28bc01a67a407af0ae82246e0aa294210e292634183ec038ab3c6c6ec301f90de3760891f3b03a27bcb1e4e36092129abe69612622ceafa3d997fa035a668e66089b4ac673e683b9f0be2de10dbebba1046902f890288f6990df94b34a6c738cd1117dfc33c3aff83619918e206e2a8dfd3379d492d7983bf99d78516f6a8824d0dd3d6ef3617e499a848c7e9f2411610dc2bfd89e0d6d8c6795d339a3b52b54011ec8eb257097238a7d66ac16a10b70831586e9cdb32aeeba1c6e21a3d02a5bcc20437e825e9b3adba48491451f5bbbe37df603a0483fc5b86f5b1992a2c21514eb402b16b4030daa0c933c01e15112d6eb8ce7714fd409cba798226d23885c8cbbb6dbc1533f16f2f7251fd382c0d4f0df93cc4155527280ad5ed1f489555fcee043a58748e047fe2f487effdf29d743c5ec764adfbfbdb013010dd9ca8f143b2b1b21611389cb22ad878aaec3add0b5550cf057385673ec7f9f4d1720acca748cf50767a3ebaea9c41cb4008c0e90c5f45b2049a6914bc3afe1e4021b1b3f2be0e7ccd98779df1d2f58e10bce89da645bccf05eabb3a4a22206431e8531004a6267ec14cbf66341a49d9a6dd38a8d63db25f12d9130f6d66bc6bdda23c000e3ced03c79d0457b1b8f549d6b596caba04b56bd60bbf87a1a804fb0aa62c10b0004e1e4406b9c04dafb23138cdd3b7f7867c199dd965559ef9fb56321309f1f2a2367c624f4978fda88bad9c1f633dec63b18c60436ed2385c1250d68002f216a07659794bca0efb2a110369517e4d3dcfd8c5a21ed5f1f29cb4329aac957cd539004d785b51d5f940ddd6e6db782f1e79094f404014897fc51545f2f5899285baaacd83789e29b42de9897f8560f44ee7b86895e921089c37b56237694e478b99a83a9c8b20b2d7bcd720920869b05908cbee134898a676f17556bc32490a5fe86d56afd8264804b63feb3663107e42a7b625a27b8ad639b5a2b2e872a3790dcd95b601b7a5e685ec47394eec3a09d89f17cfe932e59576e40ef2ece8a4ffcdef83d763cddd7fdea54e720dddbed8f79a07046a4a12e7afe80eacdd3c04ee00d51650554ef55b04ab74af05bab1afc6059d8372ac95b8ee3a9508a0403b224033cc2c9296c722687c7976f5b8aa457c1ace3e40fc0a193b9c773632c20479f2c16d7a37ffd8bdee054f627eea18106d4a92ca6295652a9158e906ecb2d1ae9b5fa7de5fa582b7564de8efa49a107eb1a59e87766f55c2afe6da6d4dabb08d763f952cbb22d90979f579cbaa667ff1b2ef7c4333e2b27f9fc98ef18ce29c10ca9e0717f27cba6dadef141795a1012c4f5df2bb92b63179ed2da78dddaeaa5c76d40c5d91e0d898c00b2ac129349124bb9ed7d7df480a47e949ac7ed2800d2e13b8e9577ad86e7255cb260d4b3e21c3a178b95762da8791fc6e5f559d1029bccf0518f28989c95ebc3e1f042d07623bc2cdd7242c8d123a1ed9ba7698f58caa85c222bbb4e717d704a4128c40c2be85df438985629c1a163379c6c0ca1155b13d85c5c16e531e61b666ed98aa5f6207bc339bcb39ed11772ec5e4872ef575e401f13b7762a001c11f0485ecb2749100452c891124738909b1f813a68b98625fae635bdd223765ab4add199053fb243e0a07ccf29f367c62b7bad74b3a8b5291d1e1dbb344ae1676846aa3aadb3137f174508c9079d7fb79d3da168a29a12df294b334323a973a1318e977f29cb43e9aac04bad5eb004d78f694a4a309dde798b8a028ac3a13620e04916d398b9a38b15d05a204a7fb9e17f1c79da0def6297ad90c2f6209f14fafa8722c2cfbd1b1afff04fd42b2e2829476f5ed6d3922d52e0aff87dbebe9a6792d7395e88ac72f2fe7d95511f6172e909a33eb12a7d7a8bf33db2aa4c29a51dba5f11f3b87326dff66113c590304a0bbeed8481e5762b810dc7d0e3795a43e94774d5f0b1f49aa557e4305cdbbcd12a5f7f13ae2a5cc954e53e525a53a2e2c9079324eaf49fddda792a8972b296255773b8b9c73477850c6f2fc57b5628536ca874972c2e66bae9bb1b8bb400d9e6db732a8d2953b06fe461db2c885093afbe69c3056d661f537e310db7ca03e92042a5de0c5647eb4e70b7ae4904d9285099e553aee33c1415573af2989744c281ec3f19910685ed103829f89749518d250ffc7772eb3b2dae244e6174dd12a04dd69f4528596bcf549af8e33c24c65a5a02ecd09104e499cad0eaabf957e35e01a789baf0a2a647ee03e8f743c38dfee20ab0642a2e33e10492d5d6e4c3427ddfa790498295f949a0bc3134ffc68dd7410cb95b0fd486106219579e25e03fd3f89175312dc120e107aeccff9976e2e49fb6a120e620ed1ec333bf8529e8a1219bc91d6181605b8a85433858ccf4220c0df96caafe84940403e04ee312c9f87b10662311845e2f75fbf517ac411693e06a8914eecbaff6bd80a8172adc943076eb15792d91a7507a6260a62b77abc79a49870a4a0ab1ec1a0aaed2a3b489802fb4b7b5ea8850494c77790d09b0a819738ec11a98c09abee5ba2ccaa6a7ba3e6bf2bbb1afb129baca539cb791a58974148a60efb6a0197786d4942b05f89a8626714231e2163e2a5494a7c7589e0a5cdb5fb4f71eb6eaa66b47f4b63bcee3bbbf081aae6807cc9bab0a5abda0a4211ef1e3a063417defb3d2db285b551b0be9c959d8a6bdea8953ba1ce1c8489c0a53401aac0e79eddaf333cb18b7b035b99be04dd89483aa748a87f8ca6dc8a59f65be9771ada38e71e915ee8007cf989e41a01b5a80b19ff659415b2db9de08979627f770474a1e7edbb2f6aa0bfeb5c06d4e693c831e4e6c15e6fb8975818357c54347ce99db6f4db65d81ede6436a022cd6a5fb6afd230f52ea55e8e0c897414c15ae7a5e7138cfc6e8ab27fb533bccf0595f7a67fa0569cd7abd115ee01cff904faaa8c1bca64f20e342708f47d69e0f956a1fafb8eb7f5741fbcd2cf3a04e28dbc0bba38e03e35aa40733bfd4f4ecf005ec03e72f5b3c2328a62f656d1adbf042c69014f4096bca009c89fe4cf8be8c4c54866eaa157627b0736f4cf533a89c7da397fa5a6b13b9f7e7e0d3c56ab2e89f28decb14d1556623a48eaeaadcb81153a404851dd10733e55de53136429b65622423aaae2762464f694858341fd8fef645cb3affddbc306fc722ec42bd2ffc7b65948578cd192a425b417cbdbd84026ebbb7f38839d8e4ff92e85a5d7a297467f79a891043ce2a0bf156dc9ab3fcf67ef35af3e9a14ab1191da02ba2d90843ae389a0923ee9f2ec555dcc95c97ac136abbf3bb6dd216b138199ffba84cb85a0b1316626fbd1c1afdb0448373ed3475172f569ecd11aede2162ca5dbebad990a82d9e2c9c3f5fb1385cd5b5e7843de656e0d574f6412b404ff5e67aa9db471d6b93c193bf48e7855c66242c8874682c176f5666631373ade626e3b59fe1c8489a547b206a8e4b6e06295eaf4a6f9d962a06a7e0b40f2ec3e9a2e85aa904d8d6b0daab50dee55b1c556787bc0bb7495c0ee7ab3f97cd381f452803cd964c9cf02b0c0e879f5b39fa8f12644627c43eeefd62abfd6cb8766ed7f1039ec1d057546fb8904aeaab8854992a841e7f4639663651f32c61888c137bce03b8e7b8dcbb7be85402ad3624b8ac00fab7a4d2ede74b9b19768484b1019fcd0304a9fbb6495140600ff77ae138bc92df1cf9aefe2a43d684d4b6ba6854aecf55ed61eeb325825a5a0ff37dda6a179d6de479e03c57eb6e21aaaef9c0ac2947aecb28fd13338df1f29ab7207ec11ee6a03ad28bf7dbb1dfbc9ef80a529b4519a8e68c62d2ac7dd7410d704fc4af1fcc9100498c97b034e8d89db3b16dccd091078e2af8ee25726097713325fb2111ecb74bf3a65e4aa6e679cb2ec1cc97ebd400e01913243a0c5c1be7e3efc1031e8a610b0ec438b40dec7eb9e16f2bc33531083f10955c1cef6d219cab5d9f1262e3ab3153c7b5677ff2a6db1bccd3a1edba890f60d01e7de3a8977dae820d67c96a52e04bac7b7c0d8c1723704fbe67c2c10559b6dc9440623c04f9ce8317fa0aa5ddf864e694b1925299ecafb0baafd1e9ff292ed852582fd8f5064d34f9c7e6357ec63aaba60e718220ef01250523602f24bd9b1cb794bbb0efb73780380ed1f8beacfa095b4d26379f29cb439918373e6a757a46d4eb03fcf20ef8244e6690b3217798c867419188949381545f26289923a54b64083782a29b4088b89213a600179e7a06285c0b4aa2cfbd187caafe8c1dd2c5f5d8d89d1747fdebb785242b03cf264599947185e180681cc7ca88206a5e438812da08b89a604ae99fb89095bc84db415800f51b5a869b63195a0538c40b810dca309897ab3678bda9cd7c5c89a103ff411bbf21818793974f9a6e2a54904a6a363556e5579f591d2b4a1cc45ef4881008ad683fd77fb10577521ee99562138227ce2718307f179fbc37ed53407102fb3b09f04266b8fb6851e2dc163211112dbb2763bc172f58a26ecf5d921468c99cbdc059572bfeec585c0d6aab06b0e30895a3103025fd331343daaccf5f760915f1d05a56f2597caa5a313f541eda8f798b9850dabb1bf8c9564f589be854b2b40c50297bf8f409612562caae69ef71199983b000fe783fd570a6edebf04dd867263bb74a03b5f44403ea5b362743a9b12d311b0db8907ede3cb2c3a4fdd8b03d73d1188288f26eda17c747908121490c461df79067ca620900f5b198039f20520915ea795a675d5a0dba2e24492b1be8664cc8526a66d240bb43a070bd702ca053c85eb3e683b446325308dd26d1a117a9b248974d881d64e95c79f06df3c00afae4704bb3a4d92dda37482f9c923fd983f95ddbb4817042d07091a5985f12cbb91a266e15b0d0b0b3873a12e96537150cae03904260a14a3a5dec67c902fe6b7ca7a040789a137c7defb681721ac9e84cac317aa1e5ea53effc76b32047c5fda5f483d8986a359e0e89cbad2f72676f14034e6bb11ec15393822a46600ff420137ee058aa1e14d0e8dab46c836e1fd18521e5336cc2836a5805bab57dd3428906161b5a8fb80474233db017a38ddb3a87ccf33b10a4911fdaf55553a634752edaf4211c2d667338c74e0b25bfd8ca7586bdcc5bb4995e812ec18992231383bb895890dc866a02d13a8a6ba1eacd9a6db64a757fd89a0be5d4821376e444b9079cf5b9f7e880b0d1a5d3367d81705795a417595577fb86904ab4ed9ae2faf6a305fbec7baa0632907813e66ec952e8a820b4e7e3f53dae8d98b01da4a7b13a82f6beeac6fe006f5d21ee0a026075f2f43de86b9c572697f74e0b2eaff3a02835fa707dd7f2d9c4848dd7774bc7363ff85998c81bf6226aa474079d796144e2aaa7ade7414c1487a9c05a6e2a53aa153d76148eb957642ee83a8e29c471d016b2c6da01872aaa3103a18ea62ecd31e2562caf689d1ba2d89a033aa7e0e4bd5ec793be969ec781e2acd8a0aa897305ff4cf85952597bffc8bbaecb2f25b656d2fde7bafeb5d8aaf5f00c8a456f57c056ac1f35653320da0a62daf7f2c95c1c14041843a953b8d539159d2997f905f837ccf3ee23ef1daee90fd8ce29ca6523307176448fc47ba0218a0188ccdd391b7cb857ab42c7f681195d3a0644f12c9ee4182af9465281c3504c17adc91a2ad8cd7d70f480a21898c0dd3d2800dbac60ee9577b3a1448e838266361c27247160e7d0476e0ae502afdc9a8490ba02e8b72ffcb2ff23574184e6a7c14376daf21167a33123f298a55d9aeeea8483ae4563e4305d30de3b2178111b2c00408dd261a1e62f19aded8ec66f8ae3a991f49493c50bacfc015bc5e5b343bc871963b710087eb5ff0a26364d93b788a960992c09337bbf21895fd4f2dad0e95a58ab8ac6b73047c6d4520723d89034fa1b5338b8764e826de38b5e7a60d16fb64620f38cb4850c59c11f43a37df25f6f161532c53076f845771b15c5716c2ae36ad6969abd8dd34b1baff20b5a8fb465fe403633a850b09bc65bb3a3bc2109c49a41a992d1484bb77b5e46630a19756f5cb9240540a8b4bf7f57ccdea11ab4abf71b256ffd819011d534695658c2a7c983aba48afb739067104077f5704e60db2e2cc998a0aa1aa04090e4857a005fb46c710402e65a0f746fbf5cb91e2393491243046209da8a2b008ab1a4a77914db5e8678debcae60d89e2e24d08f6ffdd38827e4e3af703d2481849a8e9af6272a0a007ab79818c85a0aa87ab7c85a2e88a6e5fc1950decf13ba03a37727a73f5b1666f63a617b2c9c83362a07fe74dc9c8483410ac03613d8d89a05544df7f85e2af49b6764bde11a57713de2ab7b02ac85232c0f27196f443de65e1e8665df1b133ab413ed1a59dd5306262847a44a3a696a5c6534825ebd989a035969064a2b23b5c1167c1ee04bbd86d327f700a799cd70e402ce80438bc2c7ac0b479f50b6ee88a543c8ded11b9a242b2baa8a48aec4b48f486bccf8bd989a0a207a67974e2af8e73ab26a004e072d57c649cf61ecdee99c1dbabed031d487feffbfc30cb3a3a956409c7fcd0505544b5a6ec6da98cddc60c5e0c75c383dbbee4cad1b4d5abecdc4740d3744813f1ad8e0b0d4ac219f4eb7820ff42126d89d8a067253072a62f6db3cb22ee75897a520dfffb23e055f9a4102cd67824046b77301e5430328aa0d8c164a392956bbf015340d2bc62cdf9a814d622ce5a9a8976af5b01037b1a97a04d592d48cfc8b47ef0b634d6243287850a294578bb745b7eb15392d3623a4826d5de0e4f1540094864dd1073b25691ff976463b2176de0bb97cd7f3a83f2c9afef1779643d312a1b582388c7ba5e4b2e739aba47acaaa1ee572ed192a425b43a9dd957dc2649de7fcb839d8ebbb3fd3062ff9c5e16e889d1c55622e0afe7483944370840fa4f99896b2999cbd1bcab3b28ca017d87e02956f991215ed1a097945e20cfcd04143591d72da1ecd304fb38f1691020e2451f7685269a6fc896f54e05bf1f2cc0f90a3adda6ad9ca65795e2e03a5460a00481925d078c1e767f90e6837ccfb25fe6389fb8117c8c7e1a66fd413a734062d777ee621f017bbacdd319b7d26b12989a7fac4595d3cd74521276d32341e7ed02995a58045f5e3491a22d8cd7d70f4b1310e9fd0d03d280ac7a69b44f0331f12bbb0b24eb899aaa7247eb0e7d95f15f0d506f56c9a84b30622e3b9d74ff3c1940d918b86ac918626daf214ff4a4c85662c572aaa3a66295ddaaaad1f915017c3b773a8569b75ea687220b1a3262d3c18ab9368306f595fbff792f217ad35f4e96cd372b6f5be6a8481ac8ab2bb58bd762a07f2daf0e6204b213ecd7e4c6a8e8d6c1afe3a00a17ba4bff1f5315c18d32edeb88f61fd81a668e41a0b046628f17c9404a017bc63a2917cacb40299fc8f1461114d3a0748bc9554beab2f978c8bf3764c330bb4ff1b634910fd7cd4805b6729e74082eccac7a77b42d3c7ef1d4bb2424ab899a56aaaae3a613a839b09c8dbce2e38b38833a56f99cb2305017ff1a93404065894008a56285597521c7de2b894e7eafb75b8c2c8e97e230d841600d041201b7ca9d3aecab55c6a8d33916165d3a1313b6be2f82034f94877e7517a3ebbaabbba0b229de2d48f5d75f85f73c06c73579bbadd6db2d75f1e8203f2c630fa5a00a9557aa74df54563ed843054be9774f4f735374e2d626bee23b7e5f014353db89a0506a2effbc3ca7c662b1ae0f19d32c0a952c72ff8dbb0ba8dfd17baea595a1c337ded726f9c953142c979531940640d3d7da96eaec3cc1d1e44501e7e9c5013eee524866d3b1dfb251a55edbd262a00911d6e7ee12af8c2df21e413a8557b7560e1e22e27bba35b5e0d10a3c166d449c22bc4bff341579261068118e5b3d89778108badef26de75afaf1cfee923dec6eeb2e133ae2d6ff95f163b2b10f644e627799ec82e7bef6e44de9af6f65aadecade07de6621093d2d5fa854cfa73653b3138cb1cc940b4917aab331959d77f52291baa64d78f1a786c020665ab5e1644dbb7f1305ea4ce74deab1991e35fb267b08ed340bafed2a6a751375a749bb8daf07d9f69e853aa137c84f1d05d987aa48cdfd4821348e38dca44d33a78562f513945de6e2817bc0ef7e89f26bd369b008a8315faf53ff0f1e94d17c819e65a2ed48f5bf99a27fdf9abc481dbbc5bb77243347a9ff381a99d8ed261585857b87e63837bcb24b7d044831ae9b674736e8a374a29e91473075a1019ebcca053a8934bc924e6174d3e716e896630d04e04a633874af92996b21c7485709c302a76879075f03854994b08dd0d21846684a2aa0bfb0c711a9382c7373e50c59ac50db15f393f2b4d58ebcdc726b2a74481379bb1630aeb55e5ba005cbe595f402298c08a505dd2db2165e48f9cde6bba0242989978595620f574020a619a30cc3ccc7adf104bf1120972fb885916d3b0b62eaa690f6aafbe926ae6a44760736dfed59f56a12316e621564510bde74c295ba0213cdd9c69c3e35565f3af23ab58c05dc21f58523a240e23be0554ebc2f9fc06979f587e0039163d295382439369ea48b23dd1077ff4498def143fc36c101015fafb2a7c0ca530a625494850f382762cd639497af5533c0813da752f6def29514729240bbcb6244c9e94ecf5dcec30206a8c5fb32eed510ea3c06693c8562a676c8095ff5a8ee99802c984061b9ba853aa4cafd49ee30c16be400c1b2e9858516c0a538570695f9a1fe46cf32d562dd85ded53cbf56f9112450e089d185d336e895dd205bff8b9dba790da8f1439111302356819c330e40a0ab047ca25b116d6d8cf51118556d413ebf517ae57a42d74837ea66304b720103bc4da3cdbbcdec5b7c7574473b61c7fda713a8b390a2cce4f1f8f6cdb199c1a066ed2a3b9da62548a13090a8859551db7790d09b3c4475215f0bf838ddb273730c7536ef80a4f393517ed5781f9b464db0988ccaeb0f4b487c20fb1901eb786dcb42b05fe98585fc0230e621636d9c904a5a848987b3e4011eaf306e76fdc1854be557223a38bbad9c22f5a8cc99965655caae17ea2914562aec14163922ea8c7289f69ba89595208957421fa81ecdf61e32cfa38a626f55683b9f33c1643f6df4cf05040d6e9902b83aa4993a994e0e903302b8431f15bcb0a4cd1a6a71561a8d02c02912faa215ed6844fd8a4ea02ffd818d89749514c9444fa373953b975b943df6623a6f6e0fd3a663154fa1bc3eca11ede8260538b5af62c79dfb6462618ccb8c50049c110117404b25f679795dd4533ae360f67196476be303aebfdb59c58647dec2ff3aba8ea55116465f69b6d56b3a0b09a265bb774456219c49a444062d6e84bb77b5c897b2a19756f58eea6254867995f938bbff52c0b04a9aadc57c90b2647a17730dd21231047c98174ec99c4d3906be0407380e04399931958515ed51908964fd18c90013cd42321a723af25ed70541a8738e64b3e88b4eff4b258489422af65db72e3738e23bbefd19a42ea3fdcfda1102da123e21594edc3a2119f2dba048e76b8da57c213a6553ee5e7ccfc11531b092683b633d1ff987b401cfa34089d8149affb5ecb2916631a18536b7f4cfa3cd89d96de52da1bc32d1c865c16089443b338a4a4d3ed3402c25cd5d8d89f2fd0efb40d3c169e39a38f6af7a9f04dd6b88eb2cfd2de2f656f579852fb1e82e89745e327233f51f66e43d13de8c813a04bf876efc443cb49d9700319d3a6a7e3bd99e3acddefb3fe93085df51eb15e7148cb63af9f595b3d7ef4263bae096afb07ef0da3c67b30a0b7e3b5e8e6a48be04dbbb7217ddb5f59d2e100d5e8aa4bf896b1a0321e71e3620e800c9f989713b012962b19120df00c51795480185e95dd1e78d32ec4894de633f07d8e6278cd4e61d91b40756120be37398b518977cdfc748e90e23f4db50be1ede7436a041576ae067affdec37f1dd0d4b0b21688c7858853a0366172e18b4b6f1107b5fcf0522f289382d76013e7e64716d01cff9c5cf8b5118d2f9b804e6d1cd7ccfe0eff92a8d52d6e814d3322ea2ab6313a8127e763e0ddd7968c8e6736247609145cf05afda6e6653b32d73ea22944054794c62a0d27677b814edf5bb8d4022a78595252adb0c62ab4e2015aa79c2417339f11d9b67d6141e17ba9589a404dd86963dbb74373bbcb3573eb39cdd9d859b78fcb46d37bb2c94fd8c2c0d2dddd6da1615398f280a2cd1987cf27944a1188ec447546148f1109d906715773639f205752b5ea765a6d22fcddbe0b5f9576dbeb994fd3a09fd29f666ffc3053e45d8922b11e0c28ca8b6c1d1665db456290d59de79608595da160a16b30ae4509a10e292098202318a20b7c6b8bc3cdacc8b7784bbaa8139318a20564aa4631044e729e81585ddf5fb30b42c369e1132aaae2ef24581e36237d101077c108589f21046980a79ba573a48c30e777309e95b9f3cd90c63850dfb95c89233e2ffe67a0b167b04dd9d7634a64e3a07614eb1d1b5ff857acc24040d897968762185134dc9dec9435d8047af51401ac0e812def377b143059c976eb6e99cb84ea0a792d854842a62fcc73b3ba5332f2952443c836d170476f25f5f39a03217d574137cff21c548bc8b6a7e1f31c0af7e9bf2f93df47cf9ffd9f2ba382dcad240a8e310c738a01f33d89599501357f6d2620b66f1cb0a007c1deed8a2b0f668f94271303b719bb412295cbc09943a3bda0ac1eabf7e9392e7f2836ee6b72dad0e6e44c94294090785cd976e474e0ee43f2d59bc3c8b8aede8c8f97ff1af10a020fb64f50f38a1b56e95e70301cd09df14f67c9e93f353622a8415a4c0285716c28d3d4648c5734905752e3a389ed6512a3647693c63d93a0b3731838977cab0109c49bf1a992d50ba85045f02728a90b5b1641a15f47c3bd2055462fbba414ebcbadfd5bc7c3b89acd32566d3caee3140ca383a6e6221acaccfe8633aa77f4fafa1f5575921c3a64385041429bf16adfda2b2f20d9bb16089b0b3785d309c3300f63421dab1a5b08a584a33829c3303b49c7f0d9576e24097a73a0481f68117d21f87f1cc3e9b7ce73e5fe6a6da7c11eeffe29c21ca3c17c8d17c1e47f16565a083b501374f5dd1898db2e079d1bb63becd64ad12568741c2af9402995ae3045673c72f314fb8d73c0f4b131089760d7b6f800dcb13fdd6427ed818483ccbdd63f7e821aca17885956eecab5dc6570ea2139540e2b340a03a5dcca018e9f104d8c0781f4d51da416dde749d7fa119ba34fcdd2da49fd342d79acd37fb6517eab2d3491f2955568a043449c2d93a05fbc3a84e96805f2da00ac4743aa321bb7cd7b4d3d9d521f451087636a26f29d9815f811eae790638e7c09f143cb13338fcfd68d99ddb2684d995bba092e7fd211795af330de0f97100d6b4da65a0e85a8bb3738537f979e7f143d33bec5199f5c822a206a091d601cfde68bbdbe2864f7231b2f2db83e209894f81119f674d3e1637c809a2f5172140e9b6b8f9baa8e9de15b18c078e8d8541e784e8448377d85b12a84885f676552ee974e532793e408787e49ab82dcbca3a95bee66e67443cececa6c78503c8112433cf5783252a42e5e9fdec8a74db00c0e4bb56b30f4d769c73006b63107ac0af7b7e88dae86f9c3e297e533c395ba1be04dbbb7219ddb5f549499612f1790a0038cf32e23e7fb4f18eee8c1fb3a6a5b21791f27c750b086583a0144801ea2d5d64e7be32bc72d14f6a3f6be4585c48d4e61d91b45756120bfcc15e682f24de1373d70f480a47bb0eac7bd2acf6baff38d6077ad883063ecba063750b2146c2788785070366e49018bcb6791020bc430522f28938ad76113eb104a340dd3b0685c45b293ab582b197ffd8bc8a3bbe91e8561280cddd63c31313b43c6313857e7eb03ea0dd793af6e673629e60c8b1e705afda6e6653b3ad73f53885bcd7127d0438bcae504a1f36b5f9f2ec3e9a73a87b569f0f52c71304154eb59941731f761d0067af141edbd79589a4c5dd32b1eabb74373bbcb3573eb3b3071503853894b0bed0d2c5dc684a4aa7e42adbe66c02f4c643161d47c4aef279b71f188e273554794848109dcc41157736b2f2cab5bf5ea765a6d22fcddbe0e2a505dd2d30165efdf9cd96e9a02478bb4840183a8f119bb489f2a18538ff673fb1df0d59deb560d8951e160a359c0ae4b12f1056f6638202318a20b7c6b8bcb2295ffc259a101e3cbcd50f2aa08ceee4abfff5eb0701c981ff2cbabbfb4556873c22ae2ef2cab61e626bd101f69d1085897410dc76e83a8cfd7948c30e7773072d05e70e377701b51dcc686ea6061949a6ea4149eda8540a2c95b1258156cc1f66d1b5ff85b4e0b504a0897919902185133bc9a37c435dc33c9c51401ac0e83953a9ba793b22f694635ba8a06aeca2a074bc33a4365c83ac0dd96ecab8efea27b6fc1b78a3eba4dbd96eadab00c3d3ebeb7d751a7846a4c702a5abc56c8ee0bb","code":200,"abroad":true}

from musicbox.

Catofes avatar Catofes commented on September 25, 2024

然而并没有分析出来如何加密的。。。 有矩阵运算,貌似key是64位的倍数。。。

from musicbox.

darknessomi avatar darknessomi commented on September 25, 2024

(⊙o⊙)…为什么要加密呢?

from musicbox.

Catofes avatar Catofes commented on September 25, 2024

问网易了啊

On Fri, May 8, 2015, 19:29 ZHANG RT [email protected] wrote:

(⊙o⊙)…为什么要加密呢?


Reply to this email directly or view it on GitHub
#63 (comment)
.

from musicbox.

Jasper-Ben avatar Jasper-Ben commented on September 25, 2024

worked! thank you! :)

  • sent from my mobile phone

from musicbox.

c0da avatar c0da commented on September 25, 2024

Sorry, I mistakenly deleted my last post! :(. You should open src/api.py and edit line 78. From this:

action = 'http://music.163.com/api/search/get/web'

to this:

action = 'http://music.163.com/api/search/get'

and reinstall:

python setup.py install

from musicbox.

darknessomi avatar darknessomi commented on September 25, 2024

@coda4k Thx! bug fixed.

from musicbox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.