Security Research
0day Hunting the Day After xAI Open-Sourced grok-build (Part 1): The cargo check RCE Chain in Grok-Build-CLI
Thinking
2026-07-16
10 min read
Research Dossier
#AI Security#Vulnerability Analysis#Developer Security
Unlock to view this content.
ba118f25c18b1867f00f8233cdf2a56cb2dcf679f31df15bafbfb89bd413643907e06d3a0af475541d1840796d99124003e0fcfd7e568c34a64bdca29aebd1c719d05e63ec16c926f3dcb2f3a0d8659e52dfe4c2f9a5861e607421f28e061755c8275f81c734dcf1ccbcda81d957b658752d6baf72a911eb60289de951a86afa879214bf3c1fd5d14b269a3ebc0e36ea33322e3aae2c805d08b33d347db30ed4305e1ae36729e72363f02deee8cc3ce88e53583e87cbbab8468f8b1b155fdd12c651f293d3b17a85f8164c69e764efba9ab7a52f226c4b3c801717fbcc2b078e1b3e58f1fb24f852322b69d0b9573195ec941ae41c9133fcb1096534f9dc4f562e7bf149dfad3c4fc9dee54bfd69a76ae40a0e8266328ac115cdc3a6cae0fe6cce00973c13284e4bb8ed0cf16e5d1fb5b260c94bb166369fc0366c021604a7e3b922127c1fa0c9513de34d1b0407a227aef1f342b31ee2480761f10ae25cbae21a48ba3fbe8cedb77abad805c789fe4cfe8efa487229e600c68a831098fef7c5b3315a23424c9c3b701da578651274029a70601f1ffd7eb3f00c2bb1aa46efdae4bef34676a9dbce10424678eb8856d786d4f1f14593d19dad3df1f1e8e9c7bcad5bd74304c780f82ec6aa65abc253e48891ecd07d1dc45c359f7adfdcbe4f131b63124899c976c2f212ea21272cbb38a40089575a2cf3e6bdd0f9a00951978094bbf80b081ee116581ae5e3acf0f44c4bf11af457466058326423b927c3853be0f33c34992ee0c87badc24b2b05a97f72b04891f244a8bacd06c158b35657ba12ed50fc8df9a3d31d4d65ba724311fc43c8b0689e8b34fcb3a94cff3f22c5aff405e67d86ea7a021c3f8d7a513116cbcf40370a2c57f0468a082d2c536083217364e2ffa09d9e34b6dd36ba69f0d120206c2aec3b2f87cfb3552f9cab2777f48cacd0e575c9b55d5125f5eb1587020dd9e5930a1b8ed6e02c1aa9631ac11baf20e4aff3476ac0987db2473179f363c3c49302b6bd6bf132625dd0cf858bcf2ecc7b3fbdb18d352763a461f8ebce9678aa464de7de0fca93186e2d4ef7d0b0b153bda9a85c6eebf1cf6f3d630632f5e1c87cab54fede962ffaac95272c830ef7a66faf5a55310f40822aab4800a74531b47e32933cf3b3215b628e7a20e69fea38353ed044f91c9791e2eb937ed69041e9de96de641173aa7ba50a58fcc838b858ce8122205d0ad16003931dc3af34fcf894bbd6647eeb0d0619730fb5b171f7ceaa8d405f201d5b37ab86f6762a8960b83dfdf6769f37ceff3e8f24cb8121e07245348298a6cb43ca467c8230fc02a83067c0b61e1ddcddbac9d2a6f720adf4809740e499c4383afa4adab80444cac6031ee23ab8fe5cb15e16fd3dd3234a715ce0de40452528d4445d4f1ae2c3b5c378837b060a347fab98064eba8adb391fe568681a42ee1dfba91fd28cd26f41379104d367622a42e61cde03c0d0878a87780a2a2d9743b969981f083237a720acfe8faddee1685f09b5b3228c16e72062d83eac8779ca489142ff16938ba54416bfad8363db263a31e11eea624843145f29eefe631e131743c58e39446583c5c6b28dd669c23962faac387e71c9e21cc73d5681d537171edb3a4d82ba6e6666223bd42af6a8afe92066653a3cab317997e0eb453a7312d5e040c42de3cc7ee7925769e4d1a92b655ea21304b22991a979344ba7dee57f3d32836b6ef07f9e0cfec16763aefafcca26705d9ffd09356488c9f791c64675ba2caba40ad398760e5cecece8cc2239506f1619a9b9c52ab1088fc6cce6a14cfd05b749ba548169280f1f0a5aaf2e41261f12dcc6dec7fd3ede59aa80f8373b8dde5cdfa858537899d4c7071f6e026519fe29afc4a6fa9a81cba4939a7189597121a4d90403f506ec5af4a7ab115af2fa95304f2848e523310c6ad4916db578360c031924ff6b14f8a35f48c094f8d77073792a916e77cf90a4ecdb24ad5ade64c142fb019ee207e702e049f5b7e44d547694cd537ed9367b1ad3fa87872aa9156c9ac2b5c5498f6dbb99fdc23545c0e9d759bdda69d76ea65f1c950b80ae83dbb9d183de9c703695ec42ed67a8e10285d5c48d36f5b32f12a83b996624d2ecd848c5b7e9999a81eb00f9bd29ef75b78f1ad211b92ce26caaee479f2ff978934255de10081033ea82e7a001dae61e969efb07a927c93c94000c483085307a4884d3cc00ad4364874ec9febdc9c4021a2ef39d3d06cdd4d0bda8f0116824be2cd70cfef437bae4bb4f29bde6506ef6904282b8d12d13783bbe4a0f7ab302822246d2ef67d54aa0dee39bf21cfb09849da36357257b9cd181a58e778c9cac5fe67a2e25b09a589df7a50aae4e045fdad5dede3752b9a92ddb912944fffc1eb0e9f018158f11905aa1f4300449cdd3cd358ebc0514f547c3337fb2ac4bbd26bcd988f0a3411714b09ca7048dcc398ec4c0843327f3612ea97fb4cc485393a09a83c81c85b6cee7754be3ba5c9586ee6bb1e7b0e2dd54c98047bb7af12d8ac98a1b17f6a8f79247e2a4beae22d3a8a3a9f39edb25e25cbd057cb498f5fbdd919d928473d0fe9383ae0422cb871fd5bab143b2f4e13284bbcd8bf80fa95a1dd4ef0cee7686e23fafddd4a994b85c874f712f0335aad3281e5c8e36fcc24127d6ed81fd385a21f8b9874232eeac9b15a448924d1b8445c1436204b5aa38f3b9e313372344370a0079de39a5376ed0fbd7410f589113111f5c704b5c351ca5e58afb3977190775b70e30067bce077470449db2c90b38ff9b95e2fff19c6fe1faf3afe4f1250b20348feb64192170215bbb5c126b9de79fffd728f5ce8b50d64a612963cbc2515f8910c797cf43633b34d56c2eff9e8f29d3efc3a80eedece8590cd3fa223357481c1680534087d5c3a750d857718faf9e03555d9cb11f3a292cd5aa4d5a45b43681375ea217f7d9d2c284a0489426d41754d76851657626b559b7943c04d59f06a13060cf81aba53561d3e52bdf346670d5cbb9ec357e68a4a207e88db7923985453794ee2a42c96052156dce0315e5d862ebc82d3b84007b2d032882d3f17b1abc930e2afb9a8ad565d81cfb31df1b80c18a08e27399295cc099140a2c024678f5384202f2ac39a2ef6c1a1d63e2c130092ffae5acc9cd103fa3b91ba81a92f24001ba739075b22f1633adc4a2257e5bf2c5dce2db4014ac66004c68d4929f87c4b76ae0484dd6845f5a6fa8fa0abc2c58898f0583f0790c008f1febfbe84fcf59df05761fd8df771f61fc758930ce645296ea16aa1c75efdfa0ac991ba0417349d46075532c96493251404890bfb1f9b26f2cabece65d8b7571e35026f168d820f617a2de1561a4ecf7d82e5f3d4cb5a263708ded4e4d469bd0ffb8676350fa03c5502dc0901eb3e09b789abe37daf80841e623efb851a8a80e6f567244ec8ebb8b19dba56362225609b206b51bc796946e45aecebd4280039ab203ea84ece6de35d656bb6c85794d1d3b94edc5d68de22711bbee388fa05b3fb560117cf50b7c4179b6be70006e3933c5f848623a1b4dc0694da65ad1ea48c8c9dbc75f9e2435e4a466c40c4940088855137f359799f94ed35a9ce27e18161e2530ae74e6664689b4176e61f41d5dfc5b3d405e754d1b32a3fec918fb0688ef3eade2d233f2b7d7be84fc8489454f7a5ced932999adf18e435fdf5e7fbc3aae8892555b78fadfdaa435f9c33885f5987e12af0b85edb4f001ead2178422460f2d7c698aab7ba6bec84d1c5ca09da99f5e5e3faacec9ef8770044a8cd6b48c58b00b1f71e75f3f47813161b7c3f12500f3d42302eb1093548e391388b0a3a96b3be7a1e75555191359ea5cd4d20169bbb7312f7e5dd9542fa3befa4532f29cb91193bd6324686b0c76a549d3a95b4fadc5aac5d0ca1e0e3cd67041b554b6b38cea548f70c6abc4dde3adc6b85f3d03890cf75f6f5ca26b011a9c6afd3727399f84b1f86fe36e10f2039ddfbc4a45223f4991de43fa7f8a1c81a99652c2432d5b8bebdf189d87d4e1c9b015806db67b5430225da1ab911219d2a1734c824fd685ae344af37d9614d81898fec7c17c73ffc20986a930a6fd692ec29a75b56d77220712c29448c05d54207cb6cb4989b31babf6a0a0f584edaff3044256a7a9057a8aa0e0819e3eac86d30e740de20949787457195a6b1aec967788b0f4d13f5af678b15deeec73be82bd1409ab6086c4a0ad00c5ea53c536bf0ca2b4649fc0ac097bd86505ec6e6b46a19910c2837bf4a1ebf2d8260378917eaef45aadc43f5fbc7fbdd93d0058fc6b0cf1ed1c338937ba9b750c1714242b439b3f53d563bf7c644430182251cebd764430555bc4fa56c8fea50e71238848e05c4267a78f470b99d94debed2690d4b57dd4ee13700f8621bf1f251fa2f56269ed65f9101d6c839fa3949808f722e976d4bde3f56f45dbfb601cd6a294fe299c57384ffa7bfdad373786505f0a88ef7731a6d8cbee48f2d9d39f8864ccf915045be98791e159a3369aa9149f5ff93e757f4a1cbcf345f1be530a6192d6ddfe704d1479e3b6ed725d2a876ab930639d297859115b48e1e2b7dd90c73212915f001ee66de7921533e6f60e178788c55979fb1ea8b9b3aee3579bffad0bbeabbfbf784a123d818758663eb264d67bf722e5546092ed1854e445e8f40ce089c956e13baa90d2516e87c986e5af08ebce56cc724d41e53c753360013b0c962ec33f577d7843fa9dd73772625c82938686108821f9f3c005ae222f016a8d257cd913be197bf4c5072154514a447f4f64edbb8bbe45c20ec1fda7a6a29b00e26e06509328981a0486425f6677792fe153d6dcfdb044d242b9efff437eac8df226db1e1ee605544e60e78c5d63b58f3ea398ace1cbc52a51178e3313aff19fe4292ba7e3236bc7f09166c846abfe572e97bb2e33598fcb54ab0094faf81dd98c6e75f72356b514d7d01c8a651e68bee676e3a167bc952c9ea3959d80932c104f923744463d19802949e1f9a713580a634eec56e8eb9f6963417b5d51471724c36112812729447003b202300af006f0d9cfc319d65119571184cd08f3ff18b4a89604edd4579dadc078108942ac6476c528c0f3c203d62c2fb8d6f5de4b11c079b7679ee8d24ca78d8eee6cb605d522dd9ff55fea588197b969e757d1c27e762e1d80069f52890235e47566f2f14a79e809bdf5acddf7482c4550f8946ee036c2ad3671e9e7761fbc862848f1eec145e8bd3caf3f32f9a7d8213c679a15a7c76251860aeaf564cfab18a3711f12f58418c019eee4c0f856f6cb356d1cbdec0995870a553a329d40521603fe13de523c537632864305daa1daafd53c24c273f3a93119be1354964d648d918822604ce4be88972b531345cd0fdac1019cfe1212a399655b2fa1785bf7cc9a39e2f184cbc8bdcaff7608d1aa9dd692a8351867e708d7e7e51de4dd9b33cc58a8127d03cfa4c016e4550bd7c0d0e3387311934cc52e39c76ada8bf348d2a7dcbf2ef00e010f24ec74b2e64dc0d14cff79e66ca41028d420f441b5e447f42e52fccb78b19e702d5e988982fc442246b8b1a241cfd584384197b419bd19c8b56989336b3dc3f38adc4ed0217b72ef0933013115a9ee9b9dffae340acf0037ae5725278692a8cb2d7c7ee3f419aefb803c8cfd57bcc8c10249d1c97e2cf853fb58fffb53f09d311f539bbaee16f22a9729ad1dfba8b4a22e6f815ac7893adfe4a6632008618eb1828a9f559b146aa858cf645134a07e93a15d5c774cfc8a7458f7098e424a0161f1f1e87ccece2d805a2eb53dd7e35a26828c3ebae90e6bce099fd7d59c02bdf15b2ee1881250b7c4124c388e1fb612823132d824b2ba0de7ea8370e8aa71dfd1e1a7023e1b51c3b6f1c0ccb394411146b54e60913f3dbe5c2e74622fa962fbe871a8e7bff280dbae377c3127ff8727128801bd074bb78ec567717778fbc45a7eb7df260879c7c38cafbc7b7ca128beac20cef6557be2b7766392f485f4b1bbb88c41e2aced53f07ee5cfdd36925e278ea6f0a6b6d8b7a54c63b09a4c8da42c41e05c93e7d3035a006b979b1f28177f0928f9d6b1ccfe72c78ccbb837f63474ed1b1ab934098173d5bc9e4d1f2d0671971e05390f2776bd5ad2ee97ff21dd6ad85af396aaf84945bec1269efaf39171b4595553bd25a520b669d9f091bc8f00cef6dfb53934556f1d0c033999b2fcd7015f6125c25e4908de55b41328b2e89ed9ea24617925b087b136fc25c7cd6ef073dd740672cc88bbd9efa93e7a917cb7e41cf554a46ebcd57ae14e5f2ee9038d2128c4ed956b21b2dbb9fc24e4ed114b3b72af67cd487ebdc82a87016b34f4aea78dfd346471f0edeac7c525f4c23d23a9cb1729ebe0a4c2a02d794dae3cae9d01b66b983f87fbf0d7b2e6cbb574837296b3d98105501755e6bf099957e0cee68a10aba9d6bcf552118368afdaa008099cfd979a432fdb5f8e577431357a3b421ed1d76cc994ea18aa88fbbe35b92247f19e4d22d2c1d1e371bb48fd19cd45309bf1675da579ad7bc2cf1e296885b5350207d14b0d21e33d3bb9f77245f8863736937bd074959e5015f1e8bd19829ffc703fb014c1d6c562a1e8d0bef6b24ecf1c7196d4d51935a60d8ad9e60cc74f16480386816d09d5a7aa6589b2f5d1b203c6bd9dcee890090f7267975eca2a2662865ddfbbd3106ce5837ef4d01b647b710122a19e5267cdaba1caa72894f74fa2c2853cd38390165cc4d4b85ba9b6f620668e14e63ef3b0656c8b09c93a43b22cee2c6c6803e3bdb9ef260864b4dd63af5ebb5099f26663d75be15125137b5764746d233753b3406f36cf8e6481357cfa47a46375d3705a62d09ef2520516ccac87c85602e819aee5099179e2601e3feba1ca48927cf0b209ac2b92d8d42f77b19616e574288506a696c7dcb671b35a3f044a98e09a0bd99e7feee547b0627f99b07fb915565e0458b76cd1c1080522b34cb6dc31a6f8f7ff7c0df5f4e3a1c8fb9ee6a0d8f1818db98e974933d895299beaf70744cbe45d846ac4235ddb9ca88acc1eeade80963119156f5d7447c0ebae94de3e0b22ce010e22bc14c121d7feebaa59a5085ed38571c9ff41dbf016ec56aace080407e3817ec6218f962f08fa2bd146fac45b4f89680fdefc29aaa9adaa66557667805c4b54ed829da9c24e8c1acbe0da06c239ca5b2ec5384b07f4ab0959bcfda423ece4c52284cf498d2f7334b45160a88a06c99e0cf359edd356e3450146f06a2e4a21faf176f84c515bad5df75bc379f9272275da0e8d86d4a9c6293d1dd1083e276692400f88e50c0cbefc9d0eaad0deeaba4779b812d9d1d095c62c548c610b873b106c676a82181a765ba41c29ad7be415e6ad6e066bac2deb6490f5dd996f426b20fdae62d14777862be41b7dd651b333d02b9c142eb05c72da59127dc7676e51c0877bf986ec704eb864f8eb07840bf49d2ad4a89fbd7066096991785317a647d0c3177676cd9bc74a4cb69b325ef46359439d6f927516ae944ac9d42c570c925dcbfbae7bee5a63e130dd113f09ff59feef368be10797fe637ca4e54bd2f5beefc115c5521ae5803e5215064b7d4da2cb11247a8b3ad47ffc93b682d172d7ba15a43182ad94dbbd47aefc88b8f340dee03d1817f985071c8095ea02315ed6b2ba50b3d46aef76587fff88686f8e93fd6780e07a6d981b43c78841e6b73df54a7145747e9da7bd9ad2accf813216c8ed3bf234f8b5d6fed9f011d67e45c70701c5b02b5b46fdd949ce9a1f8e390ab4bc6750b2bff42fe1a7008cf562179cbb5184f30a07256bf557b5e902c2a6d31738870cd182b9601b43dc097183d980f5acd39f70312940841e26559c49543a4d9668390460423419cc4c83deea5fa4e536ec60399515cef33d2c812ca6f8090c0ae5e73fdb0de496d94e261a86bc95b14134900214d1e68653c8a9644fcf29ec2da1e04d04abf0965ba959a1f0ef849679615446b61c0d73f630af8dc458ec963a3c906df2d13f3eda6697ba70160afc7e7d91bef2ea7aabb2f1af2e985b0c0f6421e557a55b03443a5ea966a18f60b6b8aef0429b4b6ef867820e905f8e7ccf991d32457cd2ed6d366b9a6470cdfbb674b0d1bde483ece12aa9b4088ed64860a7f5d3514cd307319b9c8409a1af72c9bc95f4b71ea3957c9391305b3e2051594db159111fd61ed0f57e84d800eeba48aac4f8e7df70610c282a48850cdc74bf39ea9152a780365beed0fb3eb00b6ae0420a99a80ac773732fcb661d93dfb36e40dcd81d05599e06198ae02e533513f054f223ba1d7c64feaa5dec6105df79def757389847072900467e58b8ec5d2ae0f50d358481937b738927779439821cf31064cdb7d188d2ee72a469d9b37a271f354fc6797bd6a471b4ba6af1e01ba4e91c787d91b90507d319573c83e9375e54f4f7c123f9c46adc70ce2dfae5059fdd71a09f6064e16647af101933b2a3905e396f76568056ebce7e91cd6d39a99a199646c26454fb8a509c7d8fa459a56cfe8e371688b7afa471282a16df8981bb395bcc73edad4eda539f6fa89f78ce7f2223bc3214b52f4fae3f980662f16f5e106ea7f9f2ca2688520b420ef4354e4f37e5c9542482bda867ed3a750e9477ee3703a0c15e2ee07f6770861ee3396be120ab318140039af42c528adbaa1dccdf0e75fc414d3db81cce3cad3fe11a03413f1914d04c19c2f4928400482789699e967ffa0e93e94a026288ece201471eda2998cf65f58140fec8efd5507e740fdf1d6c6d7fa36d38da9cd496d1ce494d701afa32099f4d67404a0090c4547325b48a0abeb3fd606b814ffce8fc2160cf86370fce248245aa8fb39f876236e95aa95361cca1d00b8db43510dc6ba3c4d64b60794423c9b7333dbf9fb212857c7d6fc5a839af9e17e20cbe7f4d04bfddf4d434cde3c38486f1f0560679c725e2f93a21f913d3b3804ba088faca309f5bb7906812e2f15995933c07ffa30a25a2c8353043ec2d3c6cf5225f19b8de12fb7e1d736c29db815ad0721345d7a59ca46eab9e73d48bfd8fbf43b07eb1efba00459198ee600ee814ade95ff32429c1dffd8ccce1a7736d5b4143d625f691ab8b89053a9be89292a4b9622178a2ea26bbf1eeace1e18675c600daafcb5c0a6330ef0e01314fcf8fade2166086cc479a3d088fdbf87df90931afbd1507cc7623206877b5046573eed4c6b6ad3636494310f4113d9bd8ef1a61f7530932cf83bfe40c1fed2a3c1f7148cb1fd97f4b673546b58acef44bc66785f77d0a90575a7e084deab033654fb0cf6a47b4309ee2f6aad978fe1f949dfc267e896d81115afe3a9ed380fe3e85ae142c2a785c53619aeebf9de144f8b73852412eb461ccb47dda392ccc31ebe899a6c5d8199d236e1faa5d04c1e0852a6de87caee832955c4f5a6d4516c39ae88ff48fd9a5c8077e64896f14650b6dc977a8be08f8073b8c21c895b2fab26170f9c1f466f20bdc4a4486407bd2352a125200e52c58529410d3a40438b3dbbdb800a45e5fe5c657dae0c682490267e838e8e757acfaefb8ff8d839a05239698cf056671630cf13b8fc40573284685208876a0fa27a5e2f1c1c752001bac6eb33aeb9fa70b8434847b91892cf8e20b51a1a9631f16ec4af6fc159a4851555aab57bdf119c59fa1f49e7334b8c265ca49313c595a656f0819e8eca03609b970aef3291e90778c32d88b06d20654ae5e0f5dc0f1b802ec22e600440255848e27a9bc91642b53771dae9e1a74dff1e2bc27968fc5751b5e873958d8fa3d266d3ba28b936161bbe4ab4597832b948ff982bdac79b552d8d377931d2097fd7cb52e70422f05c0b7ebb8a2632548746f82aea231e735e3f312282a77cccb82ac88da91ecb7fb1d7a9f7aa1de6043d6ad432a411c0261aba06a2e10053d9d29355a35ac39c9f1ba7f3d8c23b3571b6fd7fe7142fb0e229758118213d58482cde63d2dbc06d0ca02eb116ac8cdfb6e82b6cd3d0fd28f76417715276a79403dcf575dfcdfc6a0ea41d1aa89f71cf8693098f957fdd749f1937eb608201b3cbd03159211186afe32f16a0800485d701da289602e9bc9dcb5cb5c71b1efdfb5d41ee08c002b6d5a31477c86c1e7938ba63db21339934ceca9796e5847dd0ad6def181deca1e4342f8f090a10932f4e238c895ce4faffe88208364e89b8ec8fc2d2f00fcb24fd81806320b85ca2123873b33e8bd190b76598028a1df0cd079352ae127bbff4d32b52016b58ef02c6d0cb5ea46af2d17676fb3a3057ec39660c6e9984080a556dd40c6349b7247585b3f1f91069f7016ec00ad19aeabecd0b3491bd89c3d61294e9e32f2df332bd6ee50d62f6091ea4ff1f9a45ff7bcafab08b6df038cb51ab80cf409a5fa4546e626c78d69272012db48f44bd698e95b37064b6d6d6895547510c27f5f532bc0c1a04f147a304f90d0a8aad6160798c7619a99f80af243fa42717f6fc858385b32e493deb046339d7a2164066a7862190e713d85bb56e9c5c73452b4f4cc08062d3e1757af5b2b82dd3213a14b583b27962a41edf064aae44a8b5a00e4485fb4016a4a6db3dcc12abe30f95ad77f62e2551b4bb1827634649b2794dc273f340ebc0875a2fa586b5c7df955af9b4e2d9c42cf6383a07b8cc6599c8daa8a1b82f4729ca1bf16db511907fa6dd1d07e62235bb26108dfae106d3ce95945d1d5273b0c661e786989c1b689d613acc153d710af7e03b50d3e0e6cd9b3b37a6e18bbdc245889e342f625df308e24d0f457d96c6216b5704c75ac51c454985088fc2bc69501387faa2f86aae7b42e0695b82f0f608389e67f04105bb349fe0a351d6796bc341e91514df36f08d42603f822a96b539c547e2502e806b46cca63e455b54f5d1e71f4a22b734e001f00cdc6b2f82787a1bcce3938b4dee80e4b17617f117b79d3de4c819b4e4f0c2880b0875a5bd46c3cd566c1ba325cb961a8fde7dd409c28b1cc97e64d331c3dc980b2060ace8a3e996e6faa2a9ebccf5d6e9758a8635df88838b5385598b28b226fb1b5cb496571b69f9e2e023bba63ecd56525657a43e5d2a6db71170db3159cf0891c2b8172ca13dacdf1a7e71c14d0580c2c9a8fd6af766137f9f24e2910ca1e7da14ebe206fd0efd87ad7565416bb1c49a38a8f1f4cb0ec3a66f4092e7e0704c839fcf1222cd67bb5b1e32c80c3edb3da9162a3d9f75ba62a4306c92f3b2ffe1467b3e4e53918c2985a92cc091380701b488c7d5b9d4c5d6ebdeed798fb0ee2eaa5ccb6f5fd7ab8dc0e2caa2ddde5120b739a0397ccf8d42ec61e73f9c0cbdafc91320b41668fc94e7a73cfb3c6d36b845ca6497364e264d90ee0341eab570c9b021a25efa44f33ccc63d064ce18e3ef8808b1fbb404c4a6e3155f870f1d6205fa36b6eb10263272e24b93b91e0f1fbc00c315027fa6a65b6094eb426517a03c2f17228a05b11c34ec58089a6e3f392145b7ed3c5cd21a2a9badd8f004fa645717458259aa57f897ed48387877be44b5ae611d17a099d4f49c76e1c083249ca56a306046bd4ec21ae93d2bb99005daa209a7559336d77c958762372fc0e5ba1554a917b28389e9badddac9a19777a2bd42a99dace5cd49bedaa1b444a043c54d78d73a407497ddd862c793526e95334dc07bed420d1a9429d04fa3eae6228364cb27fb565e7d11ebec799deffd5cf9c7437281e5b907d341213adf17a26c74c02f5458e93847552544efb6bd7909a76190bbb469691914abdd4ff646023b04a6adf2543948bd0b6b60cf6924b0f2595225e96f864bc5d359d0b7622595413f5d8ceb6ba1fdcfa0c618a29b81e18c10526cd3f545e1a531dd7c625f86148aec10d7ce88b4684f1c7b96ca1f7648e9b71058f42d96d53eb8277292323f2eb80ba4bddc8b515fe14e5169e87929ba3ee250103f609b1707c32e31ca5b319ccddaf8af0fc58b5afa2d239514f62c2b203332f6136aa2e4e62c2a12540decf8fe4c76490828c6b9cfb549fff8a876ae111a34aabd4e6b8fbdfce0157f4519cc9e3271bfe76c8adda64af46f56ad3875776acb11bcc2167491b84d6b748ed0dafdb6d20ce609e67113966b9507f96d1a5430b81d60c7a9e61ac2c2ffa4404d13f00cbcc30678f32ea2a02e257a4b97368df2076676cfcea5f255a46aae8f94e1bb5217a82ea79adcfac6ff5c7f3d0a8c1d5b39af5c07736a107a246ca364ad0c0e08640427510e0f7344ebb12ff0457a307999a2473dc4ea007af053a073988bfce62a5f011f74ea450d67001733165a376b40ef4acb1b87d13bf8cf6dde012698f1e32fd04b9cd5bb22e77006d49c5ce678411991c7803662fbf97387fe5d35724629c8efaad13a3fecb8f72831cdffaeb545332a23fe2a1eefb113ad8799ceae54655b39d22ad1b8cd0393f0c5120db3b4e2ad4597741120c7ff5b9728de1a87c351b00b0d2d42760357b170c4526c7384d6bd0d185e6aa728f612b10280fe246dde372f5ac7150c4d4e01be865435c3cae37f8a82477ef4989e81044f60452110c9b25e23eb9036d8f444752c29aa7ce29fe0369698afdcaaf02dd4eb8a1629d240d7af5f6c384b34d703a995a6453157ebfea3be1b08c88e64718ef67cc386f3a187ec3db4dc8551c72d83e1a53bf99d3da480c41972d33292ef0fbc0ba918551f667d4475de9cd685d7660886dc39176638f693d5d955a1fc06a63cfd983ebd1dd7071bdadfb05ac377037199899c1321d76133fb3a9779532525644a9d52753c1b16c9b249407d9ab1f4d66ab63c8c621d536d6831a6323852077c2acddeaee1b0c6cbe5163603bcbaab0538a551af3e3c9da30de712cd9711cd33b4baaab749f0b4befe3c74ae9fb5818abcf239863b872d32397728a9be749c56faa451485a94b0c3b35cddd852b397de04b45246f3146b652d237ff4f481505368b6cda49caa0a1736141ae0be040232d12ad4033530340d3e40391c5cf6212d591083a8d29f468e781af78b6e5e6befc41327e516ac1d66ebe372d7703b6cb8f95077aa63705a0fbe1c21f9fb9ae0b7009eda4e611a3457be75f1e1e419678a7f6c9f4d5facb458f7cefe5c00c4173f3e8d51f18057b44aed5c3a45120a4fef27f3082970c92e2c674facb2b27a5328a6a22f47e0a18160373abe96f8974ed2909ea64ea29a178f6f153d49f1dfd4dc3bd853cf74116104fe2e54b68491066a2405289b6aaa682a92cc71304a5aa5e88d8de29c988a4faa490ea876c4846af0a5d38195224fc7ce7d0362699ca9ea8a82ab843618ec74b6b26df4af38e9bbabdcf736050a0ec500104184e58c815f106d1c57292cd168c0936ebbc7f70222419462666413e97d200f34a6d8cf22068e3781d7e5476cadc8be724a38f67e8a4856faf8b18f7f6348a56807cdf4236d555be0e87118811a1da721fee54fd88e77bc75f84e95ac3c498231a6ce83c7a8d88cf89452ca6c44eedf9d5a6ca463356fa952760f7d81f381dc1660cc610e9c0330e36ee09d9d201be6d771c5c48adb8c198d8b97f60a5c5617350484792018059d37dee0e8492cfb7662717bfd53f979074d8136ec9ab5c2b1030faaa391566191a323011b3def8f819e16c55e9473b337e497cf570fdbbea468be77974aa23a11c25a4caaafa4280ba3015164ba26c1c38ff7b7941d89a7c39f404e6a99e766aa1273a34c19c4241fc35db079f321ae9e971ce3ae2e9a1372e2f5f548cd3d279e17dc5ff71c3ad2afca92b3470af6930b353897eb194bdbdc9374ff508d7a0e4c50fe6ca7f9e0f8ac83c97d38f56c9331280396a46004f244d5aadc812cae89a4ccc6b78c0c72685da74d633fb534b2543bde817bb7dff1928368d512fab34426ffd7fd1baa1cc5bc9c4d62420c9e6fab5c98d3237292f30c52fbc326f976eb71e80d67cee8ea99292232a599bcd27c9e5af63240d1afeddc2cb9c903beb2a88866d46515e5decb59d0aa936c7e857b21b8d0d16019c7f35d9fbc0ab505a8b46e023396ddecbe6498c6d055af451d5d76cdff2c6a65423c7b7661b6f35e544e0f3b3d35e788d54c34ad327ccfe436630a91afd0f2f28d028486a3ac279bcb70706c368b0a67673aaf0d48c1b27d1f6ab9297e7613a064f09940e9744f26f0261b696ff03dcdb8667a060b54edbf8007bf52c47f41c7b7a9c19c29de65f191111eb4c9ae953a6c586ab03123d9e78803014f7d17be6fab48cfd6f655248846cbff06bfc96a5c45038aa9440e6d444ed158b46ada6c3d278f9cc809f3ff102b6eeb150c061b43a7a16b5da72e185cc2c57283fbd5db9b55cfd6c20900b58e8d9e10eae4356ffb2b02e51c3d5b7d0914f5c7631e8a80ce453bd38e038e08dd07f59e9bf40a76d8e7374d698d91be7ff90482bfd6e8cd799d93f4ea6bd26518e244e1caf994c4f89c68ab6e0c2e55f6f136c32cb11d1f55e1cb94b23a4a06e417f368e39ef40fa12a7488802b37b5c886471c57b8b09e9515786f03580092aae9db4425a7aaf3fec38a351256fc9e91d6c85424957ff993ff944ce0d9ba7a4b403b05dc83bc643b612d3e67a7f6575571970a81ea19fd1910074b8e8f07ee4498ae35ccfe30a242acc63275bcaf550ad7cdc598613c33b9121fc1fdef86ca8381760814c948e8af3e74a0ca888000d1047c9002e95fe4a421a5f5c0395ee4a129e0645cda8077483a28d6c3707cd4b3efb6ed464dee371c2d494c91fd6b8f640a7efaec390b4357e3424e8d9af4df39094e368b657e2e0a826efa1aead4edeb054d3e1bb2d56063b1d9132b46087c9700f16a6146d847f0754256d912c69ad30686f2e65fb21c8f5156656bdfde96a5e664e4d507d29bf11867ef77f874ab0110b72b900a6458ad5fe1ba351fb2ac5b1b1e4a3997e7b50303c763e1987af62a55400ff0ff53f6a4b0c0ebe98002b48747a15fc5ce3069b51dfdda614fa722b2f60288d4c7e893e7320322f6ca6180e8c318f53c1ff91bd40d5c9334795c915df641b671c4f6d700f7750e8795ad619ba26ea84af6902b6646bc3a1a53547a2632619eb767797d1881f76a9047a92f965ec2979779bec18c2b6514b443070cae20d9f9e92ced809f6d83bcacef7b40234f627a025a094768b7661e38a3aa97a0f2381ea9b1bef670ada663f68d14df606d90e197c6587ae546dcc0286abef335238608661540da8130956ff67f169df3ebbba1527bad71c410261530a9a98ca83cf443daf454cc69e492071481e7863fa0bc8ddfa92008fa93864b06b2293078c536b306027d8959b1cb35d6b7ace543a0862809c94bdf328b609094b4856a6f6bba925b1975ea84ad9aef569376e87db8f921a7804dba6b1a83e6085ac3c29fea37270e048eea4bab64f5fc44efdfb00e6bf7b6b7562f453783f4577e00720b93531750a524509c69b1c6b0fd0ee22fba8ddc61fa9e2452752306e41dc3a033564c25562b91d0b530c6973c655fd78cd5b9c407a0125e07fe03c042e969272be6dd10316985111e3846bb5291a42920152e59efd717c16632e18c6e37a74b433d1153c88d1046541e5934bae505f73ebe83f1871470188a0e0afa95f23b12bf70c9e5eba752eac8a5869cbefe5a2faa8a25c80bc3b05ef8613433543c88cc201d513b20d6d1c60293bb3827f833061254b14822f6272945d6d17d201c5f1b4ecd510f192df64fc45b056c2dc43828904dcb50699f150705dd04c88c93c787fd8c67c595c91904932cf182b8beec17ec1185b0e1287e5d03d65b11a37ef8a6ff9de347ea2a39eed249789f2fb31627dca9a16671d1003a54fdd3326ca74025f699624eb955462825736e6923e54628576ed8475da045376dee91e02b90dbfd49a900fba029e78a67e22d1f138dcd8bd43b0045960ad975227e1c3fade5d94c1c349d4519ee5fca96ae1c6d1630f56c64c2824ce20f09cb467f4b68e7d92926cb7663f305b204175d1df036f029391ce56998f2c17eeb8d63a52483aa548e17b07e7cc050907148e5b6e3e18d80fab674ccd2ddfd105ed60fefa4f4f3b17c12b286271433a7a7d4b5f1d3152e0aee9b9ac310e1aea1d538a2dd8aace9a07469727e30cb246e85fc43d2f777b1c77ba27128bab4097154d3ca08f4ce910270a2e6eaf52576aca95b1a842479388a4592eeaebb6725511f24f2c8dbc347d83e772ae200c0c8c74f7306ffd719264bdcae8e77ff0299da54a4b4c80101a8028971ba812d3bf820d215e1a4b904b18b3940eb99e1fabab75350e32ffa376dfe0f2dea66b2b9a525871757dff74d6373b8d95367d63df029e83c79f9e963f35dde3629c66be0b585541acd4c543f3b8eefd54655b02cd10d7c0535a4078197c7cd0cd6b8ea157fac6a63f28d0284777fcccffef58b434f2a592f017c4ac67053737138ca83494ef78740fdfc7032d7531bd592499f0494fc64a443a06cd83b3f7d78671b3c0de985211f0fc4f6dfc0cdf16d01b198e871cd897be29eab0b515733bd89eac4b5b7bcf7849043dde463016390a1e07246f30ee8a23a4b8044eefaf9db04aeed7536ce88a5ecaf9827c4770864391b1fba9f3e75d6bedc0ef46eaf850112b25d1bcbcb0d68204411d53b8bbe5e73d44a7b2c281dfe592ebb0d749ccc05d6a6df7b85f74d7652c6456f799bb9ce614b85bce1aa22ba24e6c530b84af81f9e9af7e6871616d8a0bd3307990d09597954c2854430b94c279ff6f01658d00505aca2b6b785e87b2fef61284a2ee0ced419fa838091f6d07459c2da8c1b5c3f9882627507804a02cc5632ee08f50045df2ee1b93217a690f73ae89a92cf8d7ae1214b452c3e9579f1a5966b94c563e4a940baf3c6f6474d3d4329ad38d7db100d88d510250191eab6716cefd78fbffb736621eae2f8ff6e7b13a57868d25472057bd159d1ce8cb48513796e681cef504dd6cfd832bb756ddd0f2433bfde635dbd152a8b9353fd25c864f01c655ca9e2a5eccab8e5113bc4ea82655f1f61c94e1643d4e113d54691af00bc1e0f554d39b883bbe6f6ab8a4d1b0767316b76cbf7e1ac2a4eaeb737447b1a742f83a5f6938f66e22f9ec4daf1bf5485fa875387174edd9f5adef4171447d755c3afcaf5d291b15328feeea76ebeaa1c0598350b2f8c5efe812fc03d5d220903cd6ae0338f01044a703ec8d6efdbd88521116c5baa9f820a65bb224366bc2ac086d9e090ace56237c05d3f761ae2051cc856f8f6b18fb4e3859e6f06ac386610c5f15cb3fb82d42b2d190465fc47a2cba7f7872fd337f4a34c71bda6f5d3587c493c1f141c3cdd898f391631e18d747d81bf597e2883f31df67f874709aa7c5c54c31013a067ca1e45f7ab49fd9e74e7db29a97140657332a8ae44d9d575b8596156aaa237f4752ed6b1c9a12e41edf0524acb1064b486cfb696dbd4361d47314cb26b239d676c007a05bf88b415fe28f336ba3da599b704596de8802342680e0a99231b1270188a82b2ffc683a7110f35ff33365e6d8dcba819fa8ea2143124cc3be3ae90184d6d02a316889ef4eb7f9f36116a0fc2789419c4e4ff87eece654bd8e273147f811afa7056a25ea3681f505621a567b89536b848936d55224ea05e18285c8c7cf0340aa284a628d60a42e0ebc832812e970d0850c31c635edffb8920e04458a98c1ac8653d3eeff3933ba7a04fc74877d8480da17f653cb83d70f4f5f6d81179d2ddcd22df0ee1f7a818758ff04e4b2b44ae59dbbc284c5282f014175894fe647df8931c21e492fb61e4d3b5c798ad6378b962f93b450b760e549e9a902b174a33ff75b4729b82a7be26dfea7240c8a8a10f97a80d95989ec3e26e2de60620ab0d1f60c1d70db10d4de3f68478ab61c2b06766b1a884ff85fc199d87c3493a6b8452c8bfaef127cf342b91348b4d28b2cbe8c695c6cf52904ee55eaec6d95d43da004884300d87f34b80c1d475d4c35f34596fdeac0459c681c293afc4ae90c8a3dd3233bdc0803737aba7be290e23d4c776ed46512fb1eb0c83693fbdbd6c9b7ecba52635d628d012c6418ce3387ee114d3b4ed5a88ba6601d93e25c1257aa509696b8ef2de8751ebd5908408fe23349d829046728a1f6dfb68273ff731fb6925fcf28dfade7e31ec3c2076f0f91591e130979573662c75bf3c2e1ed1a1b3a2bbd81d0510e33d944c09c729d37cb9b9d20d2ca59750ccaec0111c9c3724c03ffcc1edb1a7a87c1c27007382aadc64e5bf38a30bc28c9a97b7a334cae7facbb6ad2e3d805bfd74ee4532ccadb15c15b283b7fe8f2839ac9d6fb945d9e128a26b72c76ada571ec73a02b0c932d8ddc55a69b27947d00c8d7751f7dc35b244cf5ee4d14d458e32d5ca5657b706e6bd30bf9092fd37321825649b11892373fc37a85236df8228eee22cda2dbbf1017fc6c4dd84d8ef599bc9815795d7bc805eecb7b88367bdbced381b03a9861c73f5e6367b624c063afea5973b27209d5e235e813607c4fd829272d77d2f383d45aba30070fe0a47a8f55dc904d7154cb41938383c86c593fd59839e5ad595f29465e482d58aa6af1787c219a5a3af835b67c065108771d8de58c064dec879eedf31e5acaac1a5b6ae1ce196f40a2c02e8c9e7e69c427281c627f94d6e23549319bd6dd7c9b2f3315f626026c15512bb86978442bec7f1837f676755d6f50b71317453f782c294bea191b863c607d51d6c52cdb3d4fa4fd417639d0f343b2bbf40bad7372381683fd92b9911692d8ebaca9bf12bdc5d3c4b521c9e7480c7f933279b9a5776b5b97e4f547d7d89852e68a205806c56262160a43282132b99a2bc03fc5c2e7deb29e03f8c8433fefefcf18c6e17c263e1b1636382cf0f0f70ca093f844d675ff8c272d9e5525f4afae4398e10afa86e8252ffe5dc629429239b654a4e758084435288b7272442440a560b7301b0af25094d421c7049cf9aa18945a6f61fb86e04a97a0503b453ec8bcaf7da881bd8498ffad4f8636f409bf96b20204bf9bfcc6cd7e42613306a8bfbb906debbd8706d7cf0c67d610b041168ee130bf0585ed3a0c2cf94c3d840937a582ff759e513883dd733e8620c8375ecd9ba8da8ee4a86d7d4f003e1dcf2340b4aa4819e055ede08f79f7a41af124029e164a0b278d44564553313125196d3787c3eaccfbc28e9a6d6c369d1a0c70d233c064983fffd5f39d5755bd86d2635f1072e7d84fcc74f3f6d4a4755ec7ec140624f69c3302e6a4ea8742dd5519102b04522e51afab47d20b89d700fb2ab64b5e9af3795fb7252b11b68efd62b78b979d9640dfd25870a5471680356e269a39f9e1819a8297dd9a2ea77e361179dc165d6f7df533b5e36068eb473e59814a48c7375832a975b9ee34d6c0cdefff0706575a2441fc63bbf3cb1084634fe7264aca8970dfd6a0fbbad3c498c6ab28e2af1cbb5b835e1cce3f0e2844caeb2edecb60cbb4513cd2a10822937c8dae4e08f518f891a29113bbd710bd6f5474c9fbc3378d518a29a1d397323caa56d396fb11f0beca63e5ee852f0c31acca10cdf5dfd7ad56dc9f6da06f31eadd5876f50e6a340a2470b42afd322bf872b1cecc388ab80e5f656629fc684a1ad7d835bbda5645cfb28a9b4cffbdfd7483eb429b8aeb3463c1749c06431900419187a3db7c24a327fd9952764523abfb0853c0788360f1557f4b861f40d51a81abd987863cba8ad9057e34e334ba448de5de303da57573b538a0db56ecb319cfe439b8542b1c98ac8e5172d09f39f61d28cc64e69ba773fd63a680cf0bd2bf79df10eed186bd68c7fedfde52be3f4cd744a94e6f7b9663d15d6c5ab9b6ca809d82b58bd4455fe6494dd4322fa7cd0ded7e990870cf8b0f5260917ff5d06ff91a4751fbdba66da2ae2fa79ba84bbc58824d819113309db2d7e4cb6477e893a350b9a3c0eccbdd6610cb47db251930d56b503f5a9c0ec7d01ff291a20cab2036c1105cd3b5b1d2df34b5129077f6f3ea9ceac2d80647ce12121a8c7bc44c8b5f3d75b25345b6247af83fefc5c008f01e8a578e608384741ed8af292759a14bef213439d4dec2b4be60d0d0abfb486fc8582129a9d59e733c6968feb187dec1b33fd0eedde4333967021d98bcc4820fdb8dff039d15649c5d7cc2d9c2dcb8845fbc99a84685e27e171091a17cc49817c63a46e08b8cdf959fcd0f9858ce5f3ac51776b0f5391146846d1ae2c951591a2465db5d1cba0ad64d203096e5e643d52b51cd44241fb30772dc5f9341b8b8ad7fb330ed70dff23f01b9958e53723a1d61e614b12cc258b234deeab974f69ee765aa3fd1891ef0f8803baac66e309745d3877a114963ccbc5a7a394c22bbe04b7ebc2e9f4fc4829019a30a7db14039928f6084aeb30bbf963e46245debf258e14c5c7bede93dcbaebd8758874ebd1495af2f158557966dc1d1c0e39c5434f69c75dd89046989a882c5ac69e3e27c178cbe5a9b0956fc15d75ea6fb5263a3175776ae957f1af78c8bd6a6c49adf5e484e304ee40736c1a24cec349e1f0ec4a97dd4f92ebcf2160fca7f2cb5bfa6ff3d5739b2731317e4c0c2f9d4fb70d9d6c87e639d913d631686be116727594ba3ceb266a29f0102138638df621fd90c25b6db1a34ddacfd1e23c399b74cd5eb5c5041ec021274315c20aa9541023f43bb6220b00e075a5aa023691dfa678fc53f186844e419c15d48131d010f6e8cb8e3f4eaf5043873d99f5db406882a709cb5691a013b1428d2aea8f2bfc9ac42c4215f81049e5cf32562413c0cccd3bc8e71511d43b49a6fc3dd8cca6d42bc8535e80fcc3702acc860421c3e43ec41f6d922db7c61170ab9859f978cae814b49ee6e9d11214b95c4bcc63ec11252eabd86a1cea94809fab5fbc5ee9668241f0f852ed57930464e86b3233fcdfa4ff489abe65f2297ecc75456275ddea49f51ac41364f70f37e97a2f2a617051db02defd9d5621b158c5075509ae9ada53538f3496267caa45968cfd65b29e488422703213fe75193889495f02107a651913a770c2764a6218556f410fa971d62ca5acd9d5a41f5845e394eeadff1394710ab8048867538c34ecf5370a40b14b848c5b473aa9d19c7b04e2e938322c0d146a35950c5a69a1591a28229428202a237393cbc1261506379b43cdebafda328837acc254afb58fe25ef1837f7095c3f2679aeeb77954676de7693b03b5ce76b2bab0da6c0ec91b11ed2a7d45f5b7dde0c4ccc37a9fcc7d4c07707fa9ff51c5e45e9ef34bbbf2d23a8e3707970d3ec820f2e95b61e2a044fcd5a4cf7d205438a5f416d0c3f25ecb6f67e4ce8ec886fb7b724351966f42e2fa745a8e1337b8eba4734067aabda48aa1b4b441798ea002f80ebeaba02d8628041e489c4cd5da4ec7fe7f378c318f6fcb8e30aef1b73ee05340f0b0963aa17e063b5c22399c46c56401b3331ac087eff2d90de689038f94ff65d38136c6cd35af52226c0bd3713a167d360447bbae3430d2ef41e108a8354773533ccffb8e4c961888522b2b417ff4f3ab76d6befc08cd9c6c872831c9a3cf5ac4994f1eb8625f2a6a80391f2ef9a59312d40e7ad8c4fcd93c171689ba3113898157e1cdc158b98a6ab6159a46067f42ef9fe1ff8f13035155f3c6dc13e2b2efbcbe35263a71245c8072cebdb7dd306712b904755fdf3af913ac7da04c1a0acced0778648923711ff14576996efda22bad0ed0230afaf2e456df53b04c7e751077918294290265adc91d5bf793d3792de19dfd0a2eac1ca9bd4dc30134f7de2bd209b7763f762b267425ff4b1afbfeddcab22f06a606b720b3cb118a3e9eeeeafe0231a65e8a602387f0d101222fbae6d13491e7cbb1e4d49c72b3599a856d2a92165423b2d6c6297e82078e0131b9b24f8725149e8046a3dc6a90d8c970e675325ae54e69c1c7fcb123d5dc8a7178346183072118c34d37962c8928eb5f714dfa055a9ed8630467d4dd837c7d89d653400ea70efe5639460f4c3b619e8418fa2b2c6ef998b2afe31611ff713dedd784a8bc0b3d904a73124f12b654ef0b1510398205ceaa331290a72a0a3d5372a2a9fcf4dc928aac0ca9ec3f4420dbadee4c0a298a5a747978f7462b14f7f9ad681ab37e8b0550121665d73b76bc4abef6c259b0418fae6fccb848427a3a95cf6f114078ad3992cab79bd68f72d049dd433f0bf9480e8e7fdfe2b6bea29279aa044bde06d571ca78e5b2973f7aa7fdd3e61e420973cf3f3cc7faee8e592d027fbf29846d3ace87b70241e6fb5ab7f74c0ae5c58bf05f038695d13de2e571846e281cc7e08bb5201993ada0bb018c0db7af37ee7ef420a6f85b4712f383ddbac95649d217825727e8beb59e18e5493b679627c57cdf199c3c653d9fe24a26b2ffc9580de9ae7ea82e898ca20ca7103cae85a2e9eeaa1e2ddc1e8c9ceacfdc8d98657a5e65dcc0e170b38cfb300aa0ce5812e898acc9019c71e19d828574dec135fee4b2739bcef64bdcd3a78d5aeae695888bb0cb231d17817337a493c246d8faa71d7c72bf8bb2f0fc7cb10b8b1515235bb78a0e9455f7936de111d4b4296f63187abaf7e2c41eeee356200b2acc7f15d4df16d5650112ee7ef3aa5b00b0c9073b0cd9c22b25805dd443b6b98977796784452a7f2925872381fe47a85e799ea3e2e77eb00453e8b0bc5492d0ca64864a0ee4c445f48aae95cd6e882bccc81b4310722d47b6478a40d0f91fda3a3f81c4706d5267806490d13ab8b8d9f10347a722513eed180a6c700d27509630944faabdaaf77cec99ecbaa8d658c46258faec043d7c234c90fdd222b40edd8357a0f398c7cb481b5e6a805051897b4acab441867f0c0520377a37328499e6a3ac45209dff553ab1486a27bec12414f096787c5d04871811a42a2e86fd737ce63eb426c813d3462aafee5e9773e87166171ef07c91e10e731e603928fc9dd497811a45f0cd7dcd11d7464b05acf6c15a9b66ad401c4159eed9168d5f4532531cf8025a60638bfcf883f62e237f4883827a8bcd0224fa00271ced89ebf425fe8e9d33bdd49facedb0757b479c331a59b92aba7747038dd7c5664f255339dbba74b6dbed95b4c5cda6fcef7bb6b17fd390e01ef33b75c1000e7864ff09070f6cd0abea3951de11ebc3782bad5c59e4464f4859a6bbe330066dfc867250e1faf4e60d2044e8d3196f5d94c48527c5d7120d92ecae57bcf734fcfa3d2d28cedc819ddb1f91fd35d6e43fdcc92a7b4ead76e2b8104e4f334bf60ecbc5d95bff22c20f6d3e3bd1c320e7f572f077ca7bdf1566f23c4e7b6a307e4aa4538aaf33aa61c2195a2ccfe1dab22b2d3ae660bd61ee274fc4388eca4c36a37ae849d5230df1fb193e07255029a5093bdad376a7ac57a247f2cf37942c1ab2330af2dd343cc2248fb9e96d1aa8b57cd