From c987b8f8f4ee8b419e114133e8782b7b9cd59931 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 4 Aug 2025 21:34:58 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20EmailBot=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B2=D1=81=D0=B5=D1=85=20=D0=B2=D1=85=D0=BE=D0=B4=D1=8F?= =?UTF-8?q?=D1=89=D0=B8=D1=85=20=D0=BF=D0=B8=D1=81=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ Основные изменения: - Исправлена логика EmailBot для обработки ВСЕХ писем (не только Unread=true) - EmailBot теперь обрабатывает письма независимо от статуса 'прочитано' - Добавлена проверка возраста писем (игнорирует письма старше 1 часа) - Система не отвечает повторно на уже обработанные письма - Система не отвечает заблокированным пользователям 🔧 Технические детали: - Обновлен backend/services/emailBot.js - Добавлены правила в .gitignore для артефактов Hardhat - Исключены временные файлы и контрактные данные из Git 🎯 Результат: - AI ассистент теперь обрабатывает все новые входящие письма - Создаются новые пользователи для новых email адресов - Система готова к обработке писем на info@hb3-accelerator.com --- .gitignore | 18 ++ .../IERC1155Errors.dbg.json | 2 +- .../draft-IERC6093.sol/IERC20Errors.dbg.json | 2 +- .../draft-IERC6093.sol/IERC721Errors.dbg.json | 2 +- .../token/ERC20/ERC20.sol/ERC20.dbg.json | 2 +- .../token/ERC20/IERC20.sol/IERC20.dbg.json | 2 +- .../IERC20Metadata.dbg.json | 2 +- .../utils/Context.sol/Context.dbg.json | 2 +- .../ReentrancyGuard.dbg.json | 2 +- .../artifacts/contracts/DLE.sol/DLE.dbg.json | 2 +- backend/artifacts/contracts/DLE.sol/DLE.json | 4 +- backend/cache/solidity-files-cache.json | 176 ++++++------ backend/package.json | 6 +- backend/services/emailBot.js | 22 +- backend/yarn.lock | 255 +++++++----------- frontend/src/components/AIQueueMonitor.vue | 4 +- frontend/src/services/dleV2Service.js | 8 +- frontend/src/utils/wallet.js | 2 +- frontend/src/views/CrmView.vue | 4 +- 19 files changed, 233 insertions(+), 284 deletions(-) diff --git a/.gitignore b/.gitignore index 1368dcc..c6788c8 100644 --- a/.gitignore +++ b/.gitignore @@ -144,6 +144,24 @@ backups/ check_*.js debug_*.js test_*.js +test-*.js + +# Hardhat artifacts and cache +backend/artifacts/ +backend/cache/ +backend/typechain/ +backend/typechain-types/ + +# Contract data (может содержать конфиденциальную информацию) +backend/contracts-data/ + +# Temporary test files +backend/test-*.js +backend/test_*.js + +# Environment specific files +backend/.env.local +backend/.env.production # ======================================== # ПАТЕНТНЫЕ ДОКУМЕНТЫ - НЕ ПУБЛИКОВАТЬ! diff --git a/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json b/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json index 924fcbf..7044467 100644 --- a/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json b/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json index 924fcbf..7044467 100644 --- a/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json b/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json index 924fcbf..7044467 100644 --- a/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/backend/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json index 5f5dd0d..abc294d 100644 --- a/backend/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/backend/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json index 5f5dd0d..abc294d 100644 --- a/backend/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/backend/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json index a53a44b..92e356d 100644 --- a/backend/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/backend/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json index 7044467..924fcbf 100644 --- a/backend/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" + "buildInfo": "../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" } diff --git a/backend/artifacts/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json b/backend/artifacts/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json index 7044467..924fcbf 100644 --- a/backend/artifacts/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +++ b/backend/artifacts/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" + "buildInfo": "../../../../build-info/5f658ec7c83a39083e0b58539865c835.json" } diff --git a/backend/artifacts/contracts/DLE.sol/DLE.dbg.json b/backend/artifacts/contracts/DLE.sol/DLE.dbg.json index 569ec40..0cd1250 100644 --- a/backend/artifacts/contracts/DLE.sol/DLE.dbg.json +++ b/backend/artifacts/contracts/DLE.sol/DLE.dbg.json @@ -1,4 +1,4 @@ { "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/5f658ec7c83a39083e0b58539865c835.json" + "buildInfo": "../../build-info/ca6cf114dd2b9a54ebfddbb4ba9a86a9.json" } diff --git a/backend/artifacts/contracts/DLE.sol/DLE.json b/backend/artifacts/contracts/DLE.sol/DLE.json index ef7fbac..3316a5d 100644 --- a/backend/artifacts/contracts/DLE.sol/DLE.json +++ b/backend/artifacts/contracts/DLE.sol/DLE.json @@ -1555,8 +1555,8 @@ "type": "function" } ], - "bytecode": "0x608060405234620011075762003e8380380390816200001e8162001168565b918239604081838101031262001107578051906001600160401b03821162001107576101809283838301828401031262001107576040519384016001600160401b0381118582101762000b7b57604052818301516001600160401b038111620011075762000094908284019085850101620011b3565b8452818301602001516001600160401b0381116200110757620000bf908284019085850101620011b3565b6020850152818301604001516001600160401b0381116200110757620000ed908284019085850101620011b3565b6040850152818301606001516001600160401b03811162001107576200011b908284019085850101620011b3565b60608501528183016080818101519086015260a0808201519086015260c001516001600160401b038111620011075783830101818301601f8201121562001107578051620001736200016d826200120a565b62001168565b9160208084848152019260051b820101918486018311620011075760208201905b83821062001134575050505060c085015281830160e08181015190860152610100808201519086015261012001516001600160401b0381116200110757818301601f8286860101011215620011075780848401015190620001f96200016d836200120a565b91602083828152019184860160208360051b838a8a01010101116200110757916020838888010101925b60208360051b828a8a0101010184106200110c575050505061012085015281830161014001516001600160401b03811162001107576200026b90828401908585010162001222565b6101408501528183016101600151926001600160401b03841162001107576020936200029d9284019184010162001222565b610160840152015181516020830151815191939092916001600160401b03811162000b7b57620002cf6003546200127f565b601f8111620010b4575b506020601f82116001146200104457819293949560009262001038575b50508160011b916000199060031b1c1916176003555b82516001600160401b03811162000b7b576200032a6004546200127f565b601f811162000fe5575b506020601f821160011462000f76578192939460009262000f6a575b50508160011b916000199060031b1c1916176004555b6001600555805191602082015160408301516060840151608085015160a08601519060c08701519260e088015194604051968761014081011060018060401b036101408a01111762000b7b5761014088016040528a8852602088015260408701526060860152608085015260a084015260c083015260e0820152426101008201526001610120820152835160018060401b03811162000b7b576200040c6006546200127f565b601f811162000f17575b506020601f821160011462000ea757819293949560009262000e9b575b50508160011b916000199060031b1c1916176006555b602081015180519093906001600160401b03811162000b7b576200046f6007546200127f565b601f811162000e48575b506020601f821160011462000dd857819293949560009262000dcc575b50508160011b916000199060031b1c1916176007555b604082015180519093906001600160401b03811162000b7b57620004d26008546200127f565b601f811162000d79575b506020601f821160011462000d0957819293949560009262000cfd575b50508160011b916000199060031b1c1916176008555b606083015180519093906001600160401b03811162000b7b57620005356009546200127f565b601f811162000caa575b506020601f821160011462000c3a57819293949560009262000c2e575b50508160011b916000199060031b1c1916176009555b6080810151600a5560a0810151600b5560c081015180519068010000000000000000821162000b7b57600c5482600c5580831062000b91575b50600c60009081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792916020015b82821062000a495786866101208760e0810151600d55610100810151600e550151151560ff8019600f5416911617600f5561010082015160105560135560005b61016082015190815181101562000660576200063b816200065a93620012e5565b5160005260186020526040600020600160ff19825416179055620012d5565b6200061a565b8261012081015151610140820151510362000a04576101208101515115620009bf5760005b6101208201518051821015620007f1576001600160a01b03908190620006ad908490620012e5565b511615620007bd57620006c682610140850151620012e5565b51156200078a57620006de82610120850151620012e5565b511690620006f281610140850151620012e5565b51918015620007715760025483810181116200075b577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208562000755966000940160025584845283825260408420818154019055604051908152a3620012d5565b62000685565b634e487b7160e01b600052601160045260246000fd5b60405163ec442f0560e01b815260006004820152602490fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b8261012081015161014082015190604051916040830160408452825180915260206060850193019060005b8181106200099f57867ff9e7aa11bcdcbb8ac33b5dba92fca799ef091e54c29270822065501d8edea1a587806200085c8989838203602085015262001310565b0390a1805160208201516040830151926060810151608082015190620008e160a084015191620008d260c086015198620008c361016060e089015198015198620008b46040519b6101408d526101408d019062001346565b908b820360208d015262001346565b9089820360408b015262001346565b90878203606089015262001346565b91608086015260a085015283810360c0850152845180825260208201916020808360051b8301019701926000915b8383106200096f577f11b248463a1620b36a975da8f250009f56fb5dd0e9d5027a90a834d0ee84d6f688806200095c8c8b8b60e08501523061010085015283820361012085015262001310565b0390a1604051612b1590816200136e8239f35b90919293976020806200098f600193601f198682030187528c5162001346565b9a0193019301919392906200090f565b82516001600160a01b03168552602094850194909201916001016200081c565b60405162461bcd60e51b815260206004820152601360248201527f4e6f20696e697469616c20706172746e657273000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527f417272617973206c656e677468206d69736d61746368000000000000000000006044820152606490fd5b80518051906001600160401b03821162000b7b5762000a6986546200127f565b601f811162000b39575b50602090601f831160011462000ac457928260019493602093869560009262000ab8575b5050600019600383901b1c191690841b1787555b01940191019092620005da565b01519050388062000a97565b908660005260206000209160005b601f198516811062000b20575083602093600196938796938794601f1981161062000b06575b505050811b01875562000aab565b015160001960f88460031b161c1916905538808062000af8565b9192602060018192868501518155019401920162000ad2565b62000b6990876000526020600020601f850160051c8101916020861062000b70575b601f0160051c0190620012bc565b3862000a73565b909150819062000b5b565b634e487b7160e01b600052604160045260246000fd5b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b818301811062000bce575050620005ab565b8062000bdd600192546200127f565b8062000bec575b500162000bbc565b601f8111831462000c045750600081555b3862000be4565b60009082825262000c24601f60208420920160051c8201858301620012bc565b8183555562000bfd565b0151905038806200055c565b600960005260206000209060005b601f198416811062000c91575060019394959683601f1981161062000c77575b505050811b0160095562000572565b015160001960f88460031b161c1916905538808062000c68565b9091602060018192858b01518155019301910162000c48565b600960005262000cf6907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b386200053f565b015190503880620004f9565b600860005260206000209060005b601f198416811062000d60575060019394959683601f1981161062000d46575b505050811b016008556200050f565b015160001960f88460031b161c1916905538808062000d37565b9091602060018192858b01518155019301910162000d17565b600860005262000dc5907ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b38620004dc565b01519050388062000496565b600760005260206000209060005b601f198416811062000e2f575060019394959683601f1981161062000e15575b505050811b01600755620004ac565b015160001960f88460031b161c1916905538808062000e06565b9091602060018192858b01518155019301910162000de6565b600760005262000e94907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000479565b01519050388062000433565b600660005260206000209060005b601f198416811062000efe575060019394959683601f1981161062000ee4575b505050811b0160065562000449565b015160001960f88460031b161c1916905538808062000ed5565b9091602060018192858b01518155019301910162000eb5565b600660005262000f63907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000416565b01519050388062000350565b600460005260206000209060005b601f198416811062000fcc5750600193949583601f1981161062000fb2575b505050811b0160045562000366565b015160001960f88460031b161c1916905538808062000fa3565b9091602060018192858a01518155019301910162000f84565b600460005262001031907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000334565b015190503880620002f6565b600360005260206000209060005b601f19841681106200109b575060019394959683601f1981161062001081575b505050811b016003556200030c565b015160001960f88460031b161c1916905538808062001072565b9091602060018192858b01518155019301910162001052565b600360005262001100907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b38620002d9565b600080fd5b8351916001600160a01b03831683036200110757602081819482935201940193915062000223565b81516001600160401b03811162001107576020916200115c8392838a8c0191880101620011b3565b81520191019062000194565b6040519190601f01601f191682016001600160401b0381118382101762000b7b57604052565b60005b838110620011a25750506000910152565b818101518382015260200162001191565b81601f82011215620011075780516001600160401b03811162000b7b57620011e5601f8201601f191660200162001168565b928184526020828401011162001107576200120791602080850191016200118e565b90565b6001600160401b03811162000b7b5760051b60200190565b9080601f830112156200110757815190620012416200016d836200120a565b9182938184526020808095019260051b82010192831162001107578301905b8282106200126f575050505090565b8151815290830190830162001260565b90600182811c92168015620012b1575b60208310146200129b57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200128f565b818110620012c8575050565b60008155600101620012bc565b60001981146200075b5760010190565b8051821015620012fa5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811062001331575050505090565b83518552938101939281019260010162001322565b9060209162001361815180928185528580860191016200118e565b601f01601f191601019056fe60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14611dda57508163044bc2bd14611cab578163057b207414611c9057816306fdde0314611bc2578163095ea7b314611b235781630c0512e914611b055781630d61b519146118ff57816318160ddd146118e1578163204c5d1f1461164e57816322dbefbb14610b3c57816323b872dd146115565781632ee09598146114bc578163313ce567146114a057816335324eee146113385781633b60288a146113095781634114509b146111ef578163456d10c1146111095781634b145793146107455781634de184f6146110e65781634fa76ec9146110eb5781635221c1f0146110e6578163548d496f146110b75781635cf0e8a4146110995781636cbadbfa1461109957816370a082311461105f5781637ce288ea14610f6b5781637e5a9b4714610f3c578163893d692a14610e205781638c7b04c914610e0257816395d89b4114610d175781639a49bdde14610cf2578163a9059cbb14610cc1578163af89d2c414610c92578163b00e073014610b6e578163b0b6cc1a14610b3c578163b359451014610774578163b3fe8bcb14610745578163c51cab3a146106d5578163c9d27afe1461054e578163ccd7a49014610388578163dd62ed3e14610337578163e49a62e914610310578163eced3dfb146102f4575063f2c26a471461020557600080fd5b346102ef5760003660031901126102ef576102a46040516102308161022981611edb565b03826121dd565b6040516102408161022981611f7f565b604051906102588261025181612006565b03836121dd565b60405191610270836102698161208d565b03846121dd565b600a5492600b546102ce600d54926102c0600e54956102b260ff600f5416986040519c8d9c8d610120908181520190612222565b8c810360208e015290612222565b908a820360408c0152612222565b9088820360608a0152612222565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b346102ef5760003660031901126102ef57602090604051908152f35b346102ef5760203660031901126102ef5761032d6020913561278c565b6040519015158152f35b346102ef5760403660031901126102ef576103506122b8565b6103586122ce565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346102ef576103963661234c565b9061039f6125f5565b80600052602092601784526040600020906103bc825415156126c5565b8082015442101561051a576103d860ff60038401541615612711565b60068201903360005281865260ff604060002054166104e5573360005260008652604060002054156104ad57509361048e917f78b8e65c466df05ea5ddf0593b44648eca1f35c039f180e31257a6f1bdd005dc95336000526000835260406000205492526040600020600160ff198254161790558460001461049857600101610462828254612449565b90555b604080519384523360208501529315159383019390935260608201929092529081906080820190565b0390a16001600555005b6002016104a6828254612449565b9055610465565b60405162461bcd60e51b815290810186905260116024820152702737903a37b5b2b739903a379039b4b3b760791b6044820152606490fd5b60405162461bcd60e51b8152908101869052600e60248201526d105b1c9958591e481cda59db995960921b6044820152606490fd5b60405162461bcd60e51b8152908101859052600d60248201526c14da59db9a5b99c8195b991959609a1b6044820152606490fd5b346102ef5761055c3661234c565b906105656125f5565b80600052602092601684526040600020906105828383541461255d565b60058201544210156106a25761059e60ff8284015416156125a9565b60088201903360005281865260ff6040600020541661066e5733600052600086526040600020541561063657509361048e917f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a995336000526000835260406000205492526040600020600160ff198254161790558460001461062857600201610462828254612449565b6003016104a6828254612449565b60405162461bcd60e51b815290810186905260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b60405162461bcd60e51b8152908101869052600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b60405162461bcd60e51b8152908101859052600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b346102ef5760203660031901126102ef578060c091356000526017602052604060002090815491600181015491600282015460ff6003840154169183015492600560018060a01b0391015416936040519586526020860152604085015215156060840152608083015260a0820152f35b346102ef5760203660031901126102ef57356000526015602052602060ff604060002054166040519015158152f35b346102ef5760803660031901126102ef57803567ffffffffffffffff918282116102ef57366023830112156102ef576107b7602492369084818501359101612263565b908235936044358181116102ef576107d2903690840161229a565b9460643595336000526020966000885260406000205415610aed576107f883151561246c565b806000526018885261081160ff604060002054166124b8565b6000526018875260ff6040600020541615610ab45760115495610833876124fa565b601155866000526016885260406000208781556001938482018851878111610aa057610869816108638454611ea1565b84612509565b8b8c601f8311600114610a2b5750918160079594926108bc94600091610a20575b50600019600383901b1c191690891b1790555b600060028401556000600384015588830160ff19815416905542612449565b600582015560068101336001600160601b0360a01b82541617905501948251948511610a0d5750506108f8836108f28654611ea1565b86612509565b8690601f841160011461098057928061096a959381937f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd639896600094610975575b50501b916000199060031b1c19161790555b6040519182918583523387840152606060408401526060830190612222565b0390a1604051908152f35b015192508a80610939565b90601f9392931983169185600052886000209260005b8a8282106109f9575050917f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63979593918561096a989694106109e0575b505050811b01905561094b565b015160001960f88460031b161c191690558880806109d3565b838501518655948701949384019301610996565b604190634e487b7160e01b600052526000fd5b90508c01518f61088a565b8892918c601f1984168660005283600020936000905b828210610a855750509160079897959391856108bc98969410610a6c575b505050811b01905561089d565b015160001960f88460031b161c191690558f808e610a5f565b9284015185558c9690940193928201928f9290810190610a41565b8460418a634e487b7160e01b600052526000fd5b60405162461bcd60e51b815280850188905260138188015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60405162461bcd60e51b81528086018990526023818901527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b346102ef5760203660031901126102ef57356000526014602052602060018060a01b0360406000205416604051908152f35b346102ef5760403660031901126102ef5780359060243533600052600060205260406000205415610c42576060602093600583610bcd7f8d5c76b09b9c1f4d0453d21436dcb0b568a50e9c0ae059e4d0ae8c95c71d07f095151561246c565b60125495610bda876124fa565b6012558660005260178852610c1160406000209285845560006001850155600060028501556003840160ff19815416905542612449565b9082015501336001600160601b0360a01b8254161790556040519084825233868301526040820152a1604051908152f35b60405162461bcd60e51b81526020818401526024808201527f4d75737420686f6c6420746f6b656e7320746f20637265617465206f706572616044820152633a34b7b760e11b6064820152608490fd5b346102ef5760203660031901126102ef5735600052601a602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef57610ce7610cdd6122b8565b602435903361236b565b602060405160018152f35b346102ef5760203660031901126102ef57610d0f602091356127ed565b604051908152f35b346102ef5760003660031901126102ef57604051906000908054610d3a81611ea1565b80855291600191808316908115610dd85750600114610d7c575b610d7885610d64818703826121dd565b604051918291602083526020830190612222565b0390f35b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610dc0575050508101602001610d6482610d78610d54565b80546020858701810191909152909301928101610da5565b869550610d7896935060209250610d6494915060ff191682840152151560051b8201019293610d54565b346102ef5760003660031901126102ef576020601254604051908152f35b346102ef5760203660031901126102ef57803590816000526017602052604060002090815491610e518315156126c5565b600381019180835492610e6760ff851615612711565b01544210610f0457610e788561275d565b81610efc575b5015610ec1577f64cee5a70d662a7eef5b2a171daa51dc624f3d64a35d0855b385262b893dc5a5604086868660018760ff191617905582519182526020820152a1005b60649060206040519162461bcd60e51b8352820152601460248201527313dc195c985d1a5bdb881b9bdd081c185cdcd95960621b6044820152fd5b905086610e7e565b60649060206040519162461bcd60e51b8352820152601160248201527014da59db9a5b99c81b9bdd08195b991959607a1b6044820152fd5b346102ef5760203660031901126102ef57610f579035612668565b604080519215158352901515602083015290f35b346102ef5760203660031901126102ef57803590610f888261278c565b156110245760135460005b828110610fc7577f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b6910602085604051908152a1005b807f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e83313611017610ff861101f946127ed565b604051918291878a846040919493926060820195825260208201520152565b0390a16124fa565b610f93565b60649060206040519162461bcd60e51b835282015260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152fd5b346102ef5760203660031901126102ef576001600160a01b036110806122b8565b1660005260006020526020604060002054604051908152f35b346102ef5760003660031901126102ef576020601354604051908152f35b346102ef5760203660031901126102ef57356000526018602052602060ff604060002054166040519015158152f35b61231f565b346102ef5760003660031901126102ef576020601054604051908152f35b346102ef577fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb611138366122e4565b508360009493945260166020526111ae6003604060002061115b8682541461255d565b86600052601860205261117560ff604060002054166124b8565b6009810194876000528560205261119460ff6040600020541615612618565b6111a360028301918254612449565b905501918254612449565b9055826000526020526040600020600160ff198254161790556111ea601354604051938493846040919493926060820195825260208201520152565b0390a1005b346102ef576020806003193601126102ef578135913360005260008252604060002054156112bd57826000526015825260ff60406000205416156112835750600082815260148252604080822080546001600160a01b03191690556015835290819020805460ff19169055519182527f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba85391a1005b6064916040519162461bcd60e51b83528201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152fd5b6084916040519162461bcd60e51b8352820152602160248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f7665206d6f64756c6044820152606560f81b6064820152fd5b346102ef5760203660031901126102ef57356000526019602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef578035906113546122ce565b33600052602090600082526040600020541561145c576001600160a01b031691821561142b57836000526015825260ff604060002054166113f1577ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d727227196040858585826000526014815283600020826001600160601b0360a01b8254161790556015815283600020600160ff198254161790558351928352820152a1005b6064916040519162461bcd60e51b835282015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152fd5b6064916040519162461bcd60e51b8352820152600c60248201526b5a65726f206164647265737360a01b6044820152fd5b60405162461bcd60e51b8152808401839052601e60248201527f4d75737420686f6c6420746f6b656e7320746f20616464206d6f64756c6500006044820152606490fd5b346102ef5760003660031901126102ef57602060405160128152f35b346102ef577fe379b3deb66ddfa7962a2bdf35e9a08b5bed672c9da3ecf7cc6174d253c6dfe56114eb366122e4565b508360009493945260176020526111ae6002604060002061150e815415156126c5565b86600052601860205261152860ff604060002054166124b8565b6007810194876000528560205261154760ff6040600020541615612618565b6111a360018301918254612449565b346102ef5760603660031901126102ef5761156f6122b8565b6115776122ce565b6044359160018060a01b0381168060005260016020526040600020336000526020526040600020549460001986106115b6575b5050610ce7935061236b565b84861061162257811561160a5733156115f25750610ce794849160005260016020526040600020336000526020520360406000205584806115aa565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b346102ef5760003660031901126102ef576000610120604051611670816121aa565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051906116b7826121aa565b6040516116c78161022981611edb565b82526040516116d98161022981611f7f565b60208301526040516116ee8161022981612006565b6040830152604051611703816102298161208d565b6060830152600a546080830152600b5460a0830152600c549067ffffffffffffffff82116118cc57506040519061174060208260051b01836121dd565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b8383106118a757858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526118086117f26117dc6117c685516101406020870152610160860190612222565b6020860151858203601f19016040870152612222565b6040850151848203601f19016060860152612222565b6060840151838203601f19016080850152612222565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061187a578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080611898600193601f198682030187528951612222565b97019301930191939290611849565b6001602081926040516118be816102298189612114565b815201920192019190611771565b604190634e487b7160e01b6000525260246000fd5b346102ef5760003660031901126102ef576020600254604051908152f35b346102ef576020806003193601126102ef57813591826000526016825260406000209161192e8484541461255d565b8183019283549261194260ff8516156125a9565b60058201544210611ace5761195686612668565b81611ac6575b5015611a8c57506007906001948560ff19809616179055019261198e604051611989816102298189612114565b612884565b60405194855260408286015260009380546119a881611ea1565b948560408901528382169182600014611a465750506001146119ed575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b838510611a3257505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d284806119c5565b8054868601606001529382019381016119f9565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b820101919284806119c5565b60405162461bcd60e51b81529081018390526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b90508761195c565b60405162461bcd60e51b8152908101839052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346102ef5760003660031901126102ef576020601154604051908152f35b346102ef5760403660031901126102ef57611b3c6122b8565b602435903315611baa576001600160a01b03169182156115f25750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b346102ef5760003660031901126102ef576040516000600354611be481611ea1565b80845290600190818116908115611c695750600114611c0e575b610d7884610d64818603826121dd565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611c51575050508101602001610d6482611bfe565b80546020858701810191909152909301928101611c39565b60ff191660208087019190915292151560051b85019092019250610d649150839050611bfe565b346102ef5760203660031901126102ef57610f57903561275d565b346102ef5760603660031901126102ef57602435813560443567ffffffffffffffff81116102ef57611ce0903690850161229a565b50816000526018602052611cfb60ff604060002054166124b8565b80600052601960205260ff60406000205416611da3577f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e8331392508060005260196020526040600020600160ff198254161790556016602052604060002081815414611d84575b506111ea601354604051938493846040919493926060820195825260208201520152565b6007611989611d9d926102296040518094819301612114565b83611d60565b60405162461bcd60e51b8152602081850152601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b90346102ef5760203660031901126102ef5780356000526016602052610d786040600020916007835493611e1c86611e158160018501612114565b03876121dd565b60028101549260ff60038301549183015416600583015491611e5c60018060a01b0360068601541694611e556040518098819301612114565b03866121dd565b611e78604051998a998a526101008060208c01528a0190612222565b95604089015260608801521515608087015260a086015260c085015283820360e0850152612222565b90600182811c92168015611ed1575b6020831014611ebb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611eb0565b60065460009291611eeb82611ea1565b80825291600190818116908115611f625750600114611f0957505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410611f4a57505060209250010190565b80546020858501810191909152909301928101611f38565b915050602093945060ff929192191683830152151560051b010190565b60075460009291611f8f82611ea1565b80825291600190818116908115611f625750600114611fad57505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410611fee57505060209250010190565b80546020858501810191909152909301928101611fdc565b6008546000929161201682611ea1565b80825291600190818116908115611f62575060011461203457505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b84841061207557505060209250010190565b80546020858501810191909152909301928101612063565b6009546000929161209d82611ea1565b80825291600190818116908115611f6257506001146120bb57505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b8484106120fc57505060209250010190565b805460208585018101919091529093019281016120ea565b906000929180549161212583611ea1565b9182825260019384811690816000146121875750600114612147575b50505050565b90919394506000526020928360002092846000945b838610612173575050505001019038808080612141565b80548587018301529401938590820161215c565b9294505050602093945060ff191683830152151560051b01019038808080612141565b610140810190811067ffffffffffffffff8211176121c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176121c757604052565b60005b8381106122125750506000910152565b8181015183820152602001612202565b9060209161223b815180928185528580860191016121ff565b601f01601f1916010190565b67ffffffffffffffff81116121c757601f01601f191660200190565b92919261226f82612247565b9161227d60405193846121dd565b8294818452818301116102ef578281602093846000960137010152565b9080601f830112156102ef578160206122b593359101612263565b90565b600435906001600160a01b03821682036102ef57565b602435906001600160a01b03821682036102ef57565b60a06003198201126102ef57600435916024359160443591606435916084359067ffffffffffffffff82116102ef576122b59160040161229a565b346102ef5760203660031901126102ef57602061032d600435600052601860205260ff6040600020541690565b60409060031901126102ef576004359060243580151581036102ef5790565b916001600160a01b03808416928315612430571692831561241757600090838252816020526040822054908382106123e5575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161245657565b634e487b7160e01b600052601160045260246000fd5b1561247357565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b156124bf57565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b60001981146124565760010190565b90601f811161251757505050565b600091825260208220906020601f850160051c83019410612553575b601f0160051c01915b82811061254857505050565b81815560010161253c565b9092508290612533565b1561256457565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b156125b057565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b600260055414612606576002600555565b604051633ee5aeb560e01b8152600490fd5b1561261f57565b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b8181029291811591840414171561245657565b9081600052601660205261268360406000209283541461255d565b60036002830154920154916126988382612449565b60646126a960025460105490612655565b041115928391826126bb575b50509190565b11905038806126b5565b156126cc57565b60405162461bcd60e51b815260206004820152601860248201527f4f7065726174696f6e20646f6573206e6f7420657869737400000000000000006044820152606490fd5b1561271857565b60405162461bcd60e51b815260206004820152601a60248201527f4f7065726174696f6e20616c72656164792065786563757465640000000000006044820152606490fd5b6000526017602052604060002090612777825415156126c5565b60026001830154920154916126988382612449565b6127a5600091808352601660205260408320541461255d565b805b600481106127b6575050600190565b6127d66127c2826127ed565b600052601860205260ff6040600020541690565b156127e9576127e4906124fa565b6127a7565b5090565b80156128575760018114612851576002811461284b576003146128455760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b61a4b190565b50603890565b50608990565b50600190565b91908260409103126102ef5781516001600160a01b03811681036102ef5760209092015190565b80518101906020908082840193604091829103126102ef57818301516001600160e01b0319811692908390036102ef57818101519067ffffffffffffffff82116102ef57019184603f840112156102ef5783830151926128e384612247565b936128f0845195866121dd565b808552858501968482840101116102ef57868461290d93016121ff565b63a9059cbb60e01b8103612942575050916129309183612940945101019061285d565b906001600160a01b03163361236b565b565b909391906340c10f1960e01b81036129d95750908282612965935101019061285d565b6001600160a01b039091169283156129c25791816000936129a97fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254612449565b60025585855284835280852082815401905551908152a3565b5163ec442f0560e01b815260006004820152602490fd5b939493632770a7eb60e21b03612aa7579082826129f9935101019061285d565b916001600160a01b03909116908115612a8f576000928284528382528584205495818710612a615781859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b5163391434e360e21b81526001600160a01b0384166004820152602481018790526044810191909152606490fd5b8451634b637e8f60e11b815260006004820152602490fd5b845162461bcd60e51b81526004810184905260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fdfea2646970667358221220f64aff06e475b418e3cb3e3892104b639f9a88cb834dec83d25ec4b55d34f0bd64736f6c63430008140033", - "deployedBytecode": "0x60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14611dda57508163044bc2bd14611cab578163057b207414611c9057816306fdde0314611bc2578163095ea7b314611b235781630c0512e914611b055781630d61b519146118ff57816318160ddd146118e1578163204c5d1f1461164e57816322dbefbb14610b3c57816323b872dd146115565781632ee09598146114bc578163313ce567146114a057816335324eee146113385781633b60288a146113095781634114509b146111ef578163456d10c1146111095781634b145793146107455781634de184f6146110e65781634fa76ec9146110eb5781635221c1f0146110e6578163548d496f146110b75781635cf0e8a4146110995781636cbadbfa1461109957816370a082311461105f5781637ce288ea14610f6b5781637e5a9b4714610f3c578163893d692a14610e205781638c7b04c914610e0257816395d89b4114610d175781639a49bdde14610cf2578163a9059cbb14610cc1578163af89d2c414610c92578163b00e073014610b6e578163b0b6cc1a14610b3c578163b359451014610774578163b3fe8bcb14610745578163c51cab3a146106d5578163c9d27afe1461054e578163ccd7a49014610388578163dd62ed3e14610337578163e49a62e914610310578163eced3dfb146102f4575063f2c26a471461020557600080fd5b346102ef5760003660031901126102ef576102a46040516102308161022981611edb565b03826121dd565b6040516102408161022981611f7f565b604051906102588261025181612006565b03836121dd565b60405191610270836102698161208d565b03846121dd565b600a5492600b546102ce600d54926102c0600e54956102b260ff600f5416986040519c8d9c8d610120908181520190612222565b8c810360208e015290612222565b908a820360408c0152612222565b9088820360608a0152612222565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b346102ef5760003660031901126102ef57602090604051908152f35b346102ef5760203660031901126102ef5761032d6020913561278c565b6040519015158152f35b346102ef5760403660031901126102ef576103506122b8565b6103586122ce565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346102ef576103963661234c565b9061039f6125f5565b80600052602092601784526040600020906103bc825415156126c5565b8082015442101561051a576103d860ff60038401541615612711565b60068201903360005281865260ff604060002054166104e5573360005260008652604060002054156104ad57509361048e917f78b8e65c466df05ea5ddf0593b44648eca1f35c039f180e31257a6f1bdd005dc95336000526000835260406000205492526040600020600160ff198254161790558460001461049857600101610462828254612449565b90555b604080519384523360208501529315159383019390935260608201929092529081906080820190565b0390a16001600555005b6002016104a6828254612449565b9055610465565b60405162461bcd60e51b815290810186905260116024820152702737903a37b5b2b739903a379039b4b3b760791b6044820152606490fd5b60405162461bcd60e51b8152908101869052600e60248201526d105b1c9958591e481cda59db995960921b6044820152606490fd5b60405162461bcd60e51b8152908101859052600d60248201526c14da59db9a5b99c8195b991959609a1b6044820152606490fd5b346102ef5761055c3661234c565b906105656125f5565b80600052602092601684526040600020906105828383541461255d565b60058201544210156106a25761059e60ff8284015416156125a9565b60088201903360005281865260ff6040600020541661066e5733600052600086526040600020541561063657509361048e917f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a995336000526000835260406000205492526040600020600160ff198254161790558460001461062857600201610462828254612449565b6003016104a6828254612449565b60405162461bcd60e51b815290810186905260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b60405162461bcd60e51b8152908101869052600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b60405162461bcd60e51b8152908101859052600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b346102ef5760203660031901126102ef578060c091356000526017602052604060002090815491600181015491600282015460ff6003840154169183015492600560018060a01b0391015416936040519586526020860152604085015215156060840152608083015260a0820152f35b346102ef5760203660031901126102ef57356000526015602052602060ff604060002054166040519015158152f35b346102ef5760803660031901126102ef57803567ffffffffffffffff918282116102ef57366023830112156102ef576107b7602492369084818501359101612263565b908235936044358181116102ef576107d2903690840161229a565b9460643595336000526020966000885260406000205415610aed576107f883151561246c565b806000526018885261081160ff604060002054166124b8565b6000526018875260ff6040600020541615610ab45760115495610833876124fa565b601155866000526016885260406000208781556001938482018851878111610aa057610869816108638454611ea1565b84612509565b8b8c601f8311600114610a2b5750918160079594926108bc94600091610a20575b50600019600383901b1c191690891b1790555b600060028401556000600384015588830160ff19815416905542612449565b600582015560068101336001600160601b0360a01b82541617905501948251948511610a0d5750506108f8836108f28654611ea1565b86612509565b8690601f841160011461098057928061096a959381937f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd639896600094610975575b50501b916000199060031b1c19161790555b6040519182918583523387840152606060408401526060830190612222565b0390a1604051908152f35b015192508a80610939565b90601f9392931983169185600052886000209260005b8a8282106109f9575050917f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63979593918561096a989694106109e0575b505050811b01905561094b565b015160001960f88460031b161c191690558880806109d3565b838501518655948701949384019301610996565b604190634e487b7160e01b600052526000fd5b90508c01518f61088a565b8892918c601f1984168660005283600020936000905b828210610a855750509160079897959391856108bc98969410610a6c575b505050811b01905561089d565b015160001960f88460031b161c191690558f808e610a5f565b9284015185558c9690940193928201928f9290810190610a41565b8460418a634e487b7160e01b600052526000fd5b60405162461bcd60e51b815280850188905260138188015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60405162461bcd60e51b81528086018990526023818901527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b346102ef5760203660031901126102ef57356000526014602052602060018060a01b0360406000205416604051908152f35b346102ef5760403660031901126102ef5780359060243533600052600060205260406000205415610c42576060602093600583610bcd7f8d5c76b09b9c1f4d0453d21436dcb0b568a50e9c0ae059e4d0ae8c95c71d07f095151561246c565b60125495610bda876124fa565b6012558660005260178852610c1160406000209285845560006001850155600060028501556003840160ff19815416905542612449565b9082015501336001600160601b0360a01b8254161790556040519084825233868301526040820152a1604051908152f35b60405162461bcd60e51b81526020818401526024808201527f4d75737420686f6c6420746f6b656e7320746f20637265617465206f706572616044820152633a34b7b760e11b6064820152608490fd5b346102ef5760203660031901126102ef5735600052601a602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef57610ce7610cdd6122b8565b602435903361236b565b602060405160018152f35b346102ef5760203660031901126102ef57610d0f602091356127ed565b604051908152f35b346102ef5760003660031901126102ef57604051906000908054610d3a81611ea1565b80855291600191808316908115610dd85750600114610d7c575b610d7885610d64818703826121dd565b604051918291602083526020830190612222565b0390f35b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610dc0575050508101602001610d6482610d78610d54565b80546020858701810191909152909301928101610da5565b869550610d7896935060209250610d6494915060ff191682840152151560051b8201019293610d54565b346102ef5760003660031901126102ef576020601254604051908152f35b346102ef5760203660031901126102ef57803590816000526017602052604060002090815491610e518315156126c5565b600381019180835492610e6760ff851615612711565b01544210610f0457610e788561275d565b81610efc575b5015610ec1577f64cee5a70d662a7eef5b2a171daa51dc624f3d64a35d0855b385262b893dc5a5604086868660018760ff191617905582519182526020820152a1005b60649060206040519162461bcd60e51b8352820152601460248201527313dc195c985d1a5bdb881b9bdd081c185cdcd95960621b6044820152fd5b905086610e7e565b60649060206040519162461bcd60e51b8352820152601160248201527014da59db9a5b99c81b9bdd08195b991959607a1b6044820152fd5b346102ef5760203660031901126102ef57610f579035612668565b604080519215158352901515602083015290f35b346102ef5760203660031901126102ef57803590610f888261278c565b156110245760135460005b828110610fc7577f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b6910602085604051908152a1005b807f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e83313611017610ff861101f946127ed565b604051918291878a846040919493926060820195825260208201520152565b0390a16124fa565b610f93565b60649060206040519162461bcd60e51b835282015260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152fd5b346102ef5760203660031901126102ef576001600160a01b036110806122b8565b1660005260006020526020604060002054604051908152f35b346102ef5760003660031901126102ef576020601354604051908152f35b346102ef5760203660031901126102ef57356000526018602052602060ff604060002054166040519015158152f35b61231f565b346102ef5760003660031901126102ef576020601054604051908152f35b346102ef577fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb611138366122e4565b508360009493945260166020526111ae6003604060002061115b8682541461255d565b86600052601860205261117560ff604060002054166124b8565b6009810194876000528560205261119460ff6040600020541615612618565b6111a360028301918254612449565b905501918254612449565b9055826000526020526040600020600160ff198254161790556111ea601354604051938493846040919493926060820195825260208201520152565b0390a1005b346102ef576020806003193601126102ef578135913360005260008252604060002054156112bd57826000526015825260ff60406000205416156112835750600082815260148252604080822080546001600160a01b03191690556015835290819020805460ff19169055519182527f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba85391a1005b6064916040519162461bcd60e51b83528201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152fd5b6084916040519162461bcd60e51b8352820152602160248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f7665206d6f64756c6044820152606560f81b6064820152fd5b346102ef5760203660031901126102ef57356000526019602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef578035906113546122ce565b33600052602090600082526040600020541561145c576001600160a01b031691821561142b57836000526015825260ff604060002054166113f1577ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d727227196040858585826000526014815283600020826001600160601b0360a01b8254161790556015815283600020600160ff198254161790558351928352820152a1005b6064916040519162461bcd60e51b835282015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152fd5b6064916040519162461bcd60e51b8352820152600c60248201526b5a65726f206164647265737360a01b6044820152fd5b60405162461bcd60e51b8152808401839052601e60248201527f4d75737420686f6c6420746f6b656e7320746f20616464206d6f64756c6500006044820152606490fd5b346102ef5760003660031901126102ef57602060405160128152f35b346102ef577fe379b3deb66ddfa7962a2bdf35e9a08b5bed672c9da3ecf7cc6174d253c6dfe56114eb366122e4565b508360009493945260176020526111ae6002604060002061150e815415156126c5565b86600052601860205261152860ff604060002054166124b8565b6007810194876000528560205261154760ff6040600020541615612618565b6111a360018301918254612449565b346102ef5760603660031901126102ef5761156f6122b8565b6115776122ce565b6044359160018060a01b0381168060005260016020526040600020336000526020526040600020549460001986106115b6575b5050610ce7935061236b565b84861061162257811561160a5733156115f25750610ce794849160005260016020526040600020336000526020520360406000205584806115aa565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b346102ef5760003660031901126102ef576000610120604051611670816121aa565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051906116b7826121aa565b6040516116c78161022981611edb565b82526040516116d98161022981611f7f565b60208301526040516116ee8161022981612006565b6040830152604051611703816102298161208d565b6060830152600a546080830152600b5460a0830152600c549067ffffffffffffffff82116118cc57506040519061174060208260051b01836121dd565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b8383106118a757858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526118086117f26117dc6117c685516101406020870152610160860190612222565b6020860151858203601f19016040870152612222565b6040850151848203601f19016060860152612222565b6060840151838203601f19016080850152612222565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061187a578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080611898600193601f198682030187528951612222565b97019301930191939290611849565b6001602081926040516118be816102298189612114565b815201920192019190611771565b604190634e487b7160e01b6000525260246000fd5b346102ef5760003660031901126102ef576020600254604051908152f35b346102ef576020806003193601126102ef57813591826000526016825260406000209161192e8484541461255d565b8183019283549261194260ff8516156125a9565b60058201544210611ace5761195686612668565b81611ac6575b5015611a8c57506007906001948560ff19809616179055019261198e604051611989816102298189612114565b612884565b60405194855260408286015260009380546119a881611ea1565b948560408901528382169182600014611a465750506001146119ed575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b838510611a3257505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d284806119c5565b8054868601606001529382019381016119f9565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b820101919284806119c5565b60405162461bcd60e51b81529081018390526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b90508761195c565b60405162461bcd60e51b8152908101839052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346102ef5760003660031901126102ef576020601154604051908152f35b346102ef5760403660031901126102ef57611b3c6122b8565b602435903315611baa576001600160a01b03169182156115f25750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b346102ef5760003660031901126102ef576040516000600354611be481611ea1565b80845290600190818116908115611c695750600114611c0e575b610d7884610d64818603826121dd565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611c51575050508101602001610d6482611bfe565b80546020858701810191909152909301928101611c39565b60ff191660208087019190915292151560051b85019092019250610d649150839050611bfe565b346102ef5760203660031901126102ef57610f57903561275d565b346102ef5760603660031901126102ef57602435813560443567ffffffffffffffff81116102ef57611ce0903690850161229a565b50816000526018602052611cfb60ff604060002054166124b8565b80600052601960205260ff60406000205416611da3577f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e8331392508060005260196020526040600020600160ff198254161790556016602052604060002081815414611d84575b506111ea601354604051938493846040919493926060820195825260208201520152565b6007611989611d9d926102296040518094819301612114565b83611d60565b60405162461bcd60e51b8152602081850152601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b90346102ef5760203660031901126102ef5780356000526016602052610d786040600020916007835493611e1c86611e158160018501612114565b03876121dd565b60028101549260ff60038301549183015416600583015491611e5c60018060a01b0360068601541694611e556040518098819301612114565b03866121dd565b611e78604051998a998a526101008060208c01528a0190612222565b95604089015260608801521515608087015260a086015260c085015283820360e0850152612222565b90600182811c92168015611ed1575b6020831014611ebb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611eb0565b60065460009291611eeb82611ea1565b80825291600190818116908115611f625750600114611f0957505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410611f4a57505060209250010190565b80546020858501810191909152909301928101611f38565b915050602093945060ff929192191683830152151560051b010190565b60075460009291611f8f82611ea1565b80825291600190818116908115611f625750600114611fad57505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410611fee57505060209250010190565b80546020858501810191909152909301928101611fdc565b6008546000929161201682611ea1565b80825291600190818116908115611f62575060011461203457505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b84841061207557505060209250010190565b80546020858501810191909152909301928101612063565b6009546000929161209d82611ea1565b80825291600190818116908115611f6257506001146120bb57505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b8484106120fc57505060209250010190565b805460208585018101919091529093019281016120ea565b906000929180549161212583611ea1565b9182825260019384811690816000146121875750600114612147575b50505050565b90919394506000526020928360002092846000945b838610612173575050505001019038808080612141565b80548587018301529401938590820161215c565b9294505050602093945060ff191683830152151560051b01019038808080612141565b610140810190811067ffffffffffffffff8211176121c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176121c757604052565b60005b8381106122125750506000910152565b8181015183820152602001612202565b9060209161223b815180928185528580860191016121ff565b601f01601f1916010190565b67ffffffffffffffff81116121c757601f01601f191660200190565b92919261226f82612247565b9161227d60405193846121dd565b8294818452818301116102ef578281602093846000960137010152565b9080601f830112156102ef578160206122b593359101612263565b90565b600435906001600160a01b03821682036102ef57565b602435906001600160a01b03821682036102ef57565b60a06003198201126102ef57600435916024359160443591606435916084359067ffffffffffffffff82116102ef576122b59160040161229a565b346102ef5760203660031901126102ef57602061032d600435600052601860205260ff6040600020541690565b60409060031901126102ef576004359060243580151581036102ef5790565b916001600160a01b03808416928315612430571692831561241757600090838252816020526040822054908382106123e5575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161245657565b634e487b7160e01b600052601160045260246000fd5b1561247357565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b156124bf57565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b60001981146124565760010190565b90601f811161251757505050565b600091825260208220906020601f850160051c83019410612553575b601f0160051c01915b82811061254857505050565b81815560010161253c565b9092508290612533565b1561256457565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b156125b057565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b600260055414612606576002600555565b604051633ee5aeb560e01b8152600490fd5b1561261f57565b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b8181029291811591840414171561245657565b9081600052601660205261268360406000209283541461255d565b60036002830154920154916126988382612449565b60646126a960025460105490612655565b041115928391826126bb575b50509190565b11905038806126b5565b156126cc57565b60405162461bcd60e51b815260206004820152601860248201527f4f7065726174696f6e20646f6573206e6f7420657869737400000000000000006044820152606490fd5b1561271857565b60405162461bcd60e51b815260206004820152601a60248201527f4f7065726174696f6e20616c72656164792065786563757465640000000000006044820152606490fd5b6000526017602052604060002090612777825415156126c5565b60026001830154920154916126988382612449565b6127a5600091808352601660205260408320541461255d565b805b600481106127b6575050600190565b6127d66127c2826127ed565b600052601860205260ff6040600020541690565b156127e9576127e4906124fa565b6127a7565b5090565b80156128575760018114612851576002811461284b576003146128455760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b61a4b190565b50603890565b50608990565b50600190565b91908260409103126102ef5781516001600160a01b03811681036102ef5760209092015190565b80518101906020908082840193604091829103126102ef57818301516001600160e01b0319811692908390036102ef57818101519067ffffffffffffffff82116102ef57019184603f840112156102ef5783830151926128e384612247565b936128f0845195866121dd565b808552858501968482840101116102ef57868461290d93016121ff565b63a9059cbb60e01b8103612942575050916129309183612940945101019061285d565b906001600160a01b03163361236b565b565b909391906340c10f1960e01b81036129d95750908282612965935101019061285d565b6001600160a01b039091169283156129c25791816000936129a97fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254612449565b60025585855284835280852082815401905551908152a3565b5163ec442f0560e01b815260006004820152602490fd5b939493632770a7eb60e21b03612aa7579082826129f9935101019061285d565b916001600160a01b03909116908115612a8f576000928284528382528584205495818710612a615781859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b5163391434e360e21b81526001600160a01b0384166004820152602481018790526044810191909152606490fd5b8451634b637e8f60e11b815260006004820152602490fd5b845162461bcd60e51b81526004810184905260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fdfea2646970667358221220f64aff06e475b418e3cb3e3892104b639f9a88cb834dec83d25ec4b55d34f0bd64736f6c63430008140033", + "bytecode": "0x608060405234620011075762003e8380380390816200001e8162001168565b918239604081838101031262001107578051906001600160401b03821162001107576101809283838301828401031262001107576040519384016001600160401b0381118582101762000b7b57604052818301516001600160401b038111620011075762000094908284019085850101620011b3565b8452818301602001516001600160401b0381116200110757620000bf908284019085850101620011b3565b6020850152818301604001516001600160401b0381116200110757620000ed908284019085850101620011b3565b6040850152818301606001516001600160401b03811162001107576200011b908284019085850101620011b3565b60608501528183016080818101519086015260a0808201519086015260c001516001600160401b038111620011075783830101818301601f8201121562001107578051620001736200016d826200120a565b62001168565b9160208084848152019260051b820101918486018311620011075760208201905b83821062001134575050505060c085015281830160e08181015190860152610100808201519086015261012001516001600160401b0381116200110757818301601f8286860101011215620011075780848401015190620001f96200016d836200120a565b91602083828152019184860160208360051b838a8a01010101116200110757916020838888010101925b60208360051b828a8a0101010184106200110c575050505061012085015281830161014001516001600160401b03811162001107576200026b90828401908585010162001222565b6101408501528183016101600151926001600160401b03841162001107576020936200029d9284019184010162001222565b610160840152015181516020830151815191939092916001600160401b03811162000b7b57620002cf6003546200127f565b601f8111620010b4575b506020601f82116001146200104457819293949560009262001038575b50508160011b916000199060031b1c1916176003555b82516001600160401b03811162000b7b576200032a6004546200127f565b601f811162000fe5575b506020601f821160011462000f76578192939460009262000f6a575b50508160011b916000199060031b1c1916176004555b6001600555805191602082015160408301516060840151608085015160a08601519060c08701519260e088015194604051968761014081011060018060401b036101408a01111762000b7b5761014088016040528a8852602088015260408701526060860152608085015260a084015260c083015260e0820152426101008201526001610120820152835160018060401b03811162000b7b576200040c6006546200127f565b601f811162000f17575b506020601f821160011462000ea757819293949560009262000e9b575b50508160011b916000199060031b1c1916176006555b602081015180519093906001600160401b03811162000b7b576200046f6007546200127f565b601f811162000e48575b506020601f821160011462000dd857819293949560009262000dcc575b50508160011b916000199060031b1c1916176007555b604082015180519093906001600160401b03811162000b7b57620004d26008546200127f565b601f811162000d79575b506020601f821160011462000d0957819293949560009262000cfd575b50508160011b916000199060031b1c1916176008555b606083015180519093906001600160401b03811162000b7b57620005356009546200127f565b601f811162000caa575b506020601f821160011462000c3a57819293949560009262000c2e575b50508160011b916000199060031b1c1916176009555b6080810151600a5560a0810151600b5560c081015180519068010000000000000000821162000b7b57600c5482600c5580831062000b91575b50600c60009081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792916020015b82821062000a495786866101208760e0810151600d55610100810151600e550151151560ff8019600f5416911617600f5561010082015160105560135560005b61016082015190815181101562000660576200063b816200065a93620012e5565b5160005260186020526040600020600160ff19825416179055620012d5565b6200061a565b8261012081015151610140820151510362000a04576101208101515115620009bf5760005b6101208201518051821015620007f1576001600160a01b03908190620006ad908490620012e5565b511615620007bd57620006c682610140850151620012e5565b51156200078a57620006de82610120850151620012e5565b511690620006f281610140850151620012e5565b51918015620007715760025483810181116200075b577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208562000755966000940160025584845283825260408420818154019055604051908152a3620012d5565b62000685565b634e487b7160e01b600052601160045260246000fd5b60405163ec442f0560e01b815260006004820152602490fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b8261012081015161014082015190604051916040830160408452825180915260206060850193019060005b8181106200099f57867ff9e7aa11bcdcbb8ac33b5dba92fca799ef091e54c29270822065501d8edea1a587806200085c8989838203602085015262001310565b0390a1805160208201516040830151926060810151608082015190620008e160a084015191620008d260c086015198620008c361016060e089015198015198620008b46040519b6101408d526101408d019062001346565b908b820360208d015262001346565b9089820360408b015262001346565b90878203606089015262001346565b91608086015260a085015283810360c0850152845180825260208201916020808360051b8301019701926000915b8383106200096f577f11b248463a1620b36a975da8f250009f56fb5dd0e9d5027a90a834d0ee84d6f688806200095c8c8b8b60e08501523061010085015283820361012085015262001310565b0390a1604051612b1590816200136e8239f35b90919293976020806200098f600193601f198682030187528c5162001346565b9a0193019301919392906200090f565b82516001600160a01b03168552602094850194909201916001016200081c565b60405162461bcd60e51b815260206004820152601360248201527f4e6f20696e697469616c20706172746e657273000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527f417272617973206c656e677468206d69736d61746368000000000000000000006044820152606490fd5b80518051906001600160401b03821162000b7b5762000a6986546200127f565b601f811162000b39575b50602090601f831160011462000ac457928260019493602093869560009262000ab8575b5050600019600383901b1c191690841b1787555b01940191019092620005da565b01519050388062000a97565b908660005260206000209160005b601f198516811062000b20575083602093600196938796938794601f1981161062000b06575b505050811b01875562000aab565b015160001960f88460031b161c1916905538808062000af8565b9192602060018192868501518155019401920162000ad2565b62000b6990876000526020600020601f850160051c8101916020861062000b70575b601f0160051c0190620012bc565b3862000a73565b909150819062000b5b565b634e487b7160e01b600052604160045260246000fd5b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b818301811062000bce575050620005ab565b8062000bdd600192546200127f565b8062000bec575b500162000bbc565b601f8111831462000c045750600081555b3862000be4565b60009082825262000c24601f60208420920160051c8201858301620012bc565b8183555562000bfd565b0151905038806200055c565b600960005260206000209060005b601f198416811062000c91575060019394959683601f1981161062000c77575b505050811b0160095562000572565b015160001960f88460031b161c1916905538808062000c68565b9091602060018192858b01518155019301910162000c48565b600960005262000cf6907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b386200053f565b015190503880620004f9565b600860005260206000209060005b601f198416811062000d60575060019394959683601f1981161062000d46575b505050811b016008556200050f565b015160001960f88460031b161c1916905538808062000d37565b9091602060018192858b01518155019301910162000d17565b600860005262000dc5907ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b38620004dc565b01519050388062000496565b600760005260206000209060005b601f198416811062000e2f575060019394959683601f1981161062000e15575b505050811b01600755620004ac565b015160001960f88460031b161c1916905538808062000e06565b9091602060018192858b01518155019301910162000de6565b600760005262000e94907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000479565b01519050388062000433565b600660005260206000209060005b601f198416811062000efe575060019394959683601f1981161062000ee4575b505050811b0160065562000449565b015160001960f88460031b161c1916905538808062000ed5565b9091602060018192858b01518155019301910162000eb5565b600660005262000f63907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000416565b01519050388062000350565b600460005260206000209060005b601f198416811062000fcc5750600193949583601f1981161062000fb2575b505050811b0160045562000366565b015160001960f88460031b161c1916905538808062000fa3565b9091602060018192858a01518155019301910162000f84565b600460005262001031907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000334565b015190503880620002f6565b600360005260206000209060005b601f19841681106200109b575060019394959683601f1981161062001081575b505050811b016003556200030c565b015160001960f88460031b161c1916905538808062001072565b9091602060018192858b01518155019301910162001052565b600360005262001100907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b38620002d9565b600080fd5b8351916001600160a01b03831683036200110757602081819482935201940193915062000223565b81516001600160401b03811162001107576020916200115c8392838a8c0191880101620011b3565b81520191019062000194565b6040519190601f01601f191682016001600160401b0381118382101762000b7b57604052565b60005b838110620011a25750506000910152565b818101518382015260200162001191565b81601f82011215620011075780516001600160401b03811162000b7b57620011e5601f8201601f191660200162001168565b928184526020828401011162001107576200120791602080850191016200118e565b90565b6001600160401b03811162000b7b5760051b60200190565b9080601f830112156200110757815190620012416200016d836200120a565b9182938184526020808095019260051b82010192831162001107578301905b8282106200126f575050505090565b8151815290830190830162001260565b90600182811c92168015620012b1575b60208310146200129b57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200128f565b818110620012c8575050565b60008155600101620012bc565b60001981146200075b5760010190565b8051821015620012fa5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811062001331575050505090565b83518552938101939281019260010162001322565b9060209162001361815180928185528580860191016200118e565b601f01601f191601019056fe60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14611dda57508163044bc2bd14611cab578163057b207414611c9057816306fdde0314611bc2578163095ea7b314611b235781630c0512e914611b055781630d61b519146118ff57816318160ddd146118e1578163204c5d1f1461164e57816322dbefbb14610b3c57816323b872dd146115565781632ee09598146114bc578163313ce567146114a057816335324eee146113385781633b60288a146113095781634114509b146111ef578163456d10c1146111095781634b145793146107455781634de184f6146110e65781634fa76ec9146110eb5781635221c1f0146110e6578163548d496f146110b75781635cf0e8a4146110995781636cbadbfa1461109957816370a082311461105f5781637ce288ea14610f6b5781637e5a9b4714610f3c578163893d692a14610e205781638c7b04c914610e0257816395d89b4114610d175781639a49bdde14610cf2578163a9059cbb14610cc1578163af89d2c414610c92578163b00e073014610b6e578163b0b6cc1a14610b3c578163b359451014610774578163b3fe8bcb14610745578163c51cab3a146106d5578163c9d27afe1461054e578163ccd7a49014610388578163dd62ed3e14610337578163e49a62e914610310578163eced3dfb146102f4575063f2c26a471461020557600080fd5b346102ef5760003660031901126102ef576102a46040516102308161022981611edb565b03826121dd565b6040516102408161022981611f7f565b604051906102588261025181612006565b03836121dd565b60405191610270836102698161208d565b03846121dd565b600a5492600b546102ce600d54926102c0600e54956102b260ff600f5416986040519c8d9c8d610120908181520190612222565b8c810360208e015290612222565b908a820360408c0152612222565b9088820360608a0152612222565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b346102ef5760003660031901126102ef57602090604051908152f35b346102ef5760203660031901126102ef5761032d6020913561278c565b6040519015158152f35b346102ef5760403660031901126102ef576103506122b8565b6103586122ce565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346102ef576103963661234c565b9061039f6125f5565b80600052602092601784526040600020906103bc825415156126c5565b8082015442101561051a576103d860ff60038401541615612711565b60068201903360005281865260ff604060002054166104e5573360005260008652604060002054156104ad57509361048e917f78b8e65c466df05ea5ddf0593b44648eca1f35c039f180e31257a6f1bdd005dc95336000526000835260406000205492526040600020600160ff198254161790558460001461049857600101610462828254612449565b90555b604080519384523360208501529315159383019390935260608201929092529081906080820190565b0390a16001600555005b6002016104a6828254612449565b9055610465565b60405162461bcd60e51b815290810186905260116024820152702737903a37b5b2b739903a379039b4b3b760791b6044820152606490fd5b60405162461bcd60e51b8152908101869052600e60248201526d105b1c9958591e481cda59db995960921b6044820152606490fd5b60405162461bcd60e51b8152908101859052600d60248201526c14da59db9a5b99c8195b991959609a1b6044820152606490fd5b346102ef5761055c3661234c565b906105656125f5565b80600052602092601684526040600020906105828383541461255d565b60058201544210156106a25761059e60ff8284015416156125a9565b60088201903360005281865260ff6040600020541661066e5733600052600086526040600020541561063657509361048e917f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a995336000526000835260406000205492526040600020600160ff198254161790558460001461062857600201610462828254612449565b6003016104a6828254612449565b60405162461bcd60e51b815290810186905260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b60405162461bcd60e51b8152908101869052600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b60405162461bcd60e51b8152908101859052600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b346102ef5760203660031901126102ef578060c091356000526017602052604060002090815491600181015491600282015460ff6003840154169183015492600560018060a01b0391015416936040519586526020860152604085015215156060840152608083015260a0820152f35b346102ef5760203660031901126102ef57356000526015602052602060ff604060002054166040519015158152f35b346102ef5760803660031901126102ef57803567ffffffffffffffff918282116102ef57366023830112156102ef576107b7602492369084818501359101612263565b908235936044358181116102ef576107d2903690840161229a565b9460643595336000526020966000885260406000205415610aed576107f883151561246c565b806000526018885261081160ff604060002054166124b8565b6000526018875260ff6040600020541615610ab45760115495610833876124fa565b601155866000526016885260406000208781556001938482018851878111610aa057610869816108638454611ea1565b84612509565b8b8c601f8311600114610a2b5750918160079594926108bc94600091610a20575b50600019600383901b1c191690891b1790555b600060028401556000600384015588830160ff19815416905542612449565b600582015560068101336001600160601b0360a01b82541617905501948251948511610a0d5750506108f8836108f28654611ea1565b86612509565b8690601f841160011461098057928061096a959381937f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd639896600094610975575b50501b916000199060031b1c19161790555b6040519182918583523387840152606060408401526060830190612222565b0390a1604051908152f35b015192508a80610939565b90601f9392931983169185600052886000209260005b8a8282106109f9575050917f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63979593918561096a989694106109e0575b505050811b01905561094b565b015160001960f88460031b161c191690558880806109d3565b838501518655948701949384019301610996565b604190634e487b7160e01b600052526000fd5b90508c01518f61088a565b8892918c601f1984168660005283600020936000905b828210610a855750509160079897959391856108bc98969410610a6c575b505050811b01905561089d565b015160001960f88460031b161c191690558f808e610a5f565b9284015185558c9690940193928201928f9290810190610a41565b8460418a634e487b7160e01b600052526000fd5b60405162461bcd60e51b815280850188905260138188015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60405162461bcd60e51b81528086018990526023818901527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b346102ef5760203660031901126102ef57356000526014602052602060018060a01b0360406000205416604051908152f35b346102ef5760403660031901126102ef5780359060243533600052600060205260406000205415610c42576060602093600583610bcd7f8d5c76b09b9c1f4d0453d21436dcb0b568a50e9c0ae059e4d0ae8c95c71d07f095151561246c565b60125495610bda876124fa565b6012558660005260178852610c1160406000209285845560006001850155600060028501556003840160ff19815416905542612449565b9082015501336001600160601b0360a01b8254161790556040519084825233868301526040820152a1604051908152f35b60405162461bcd60e51b81526020818401526024808201527f4d75737420686f6c6420746f6b656e7320746f20637265617465206f706572616044820152633a34b7b760e11b6064820152608490fd5b346102ef5760203660031901126102ef5735600052601a602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef57610ce7610cdd6122b8565b602435903361236b565b602060405160018152f35b346102ef5760203660031901126102ef57610d0f602091356127ed565b604051908152f35b346102ef5760003660031901126102ef57604051906000908054610d3a81611ea1565b80855291600191808316908115610dd85750600114610d7c575b610d7885610d64818703826121dd565b604051918291602083526020830190612222565b0390f35b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610dc0575050508101602001610d6482610d78610d54565b80546020858701810191909152909301928101610da5565b869550610d7896935060209250610d6494915060ff191682840152151560051b8201019293610d54565b346102ef5760003660031901126102ef576020601254604051908152f35b346102ef5760203660031901126102ef57803590816000526017602052604060002090815491610e518315156126c5565b600381019180835492610e6760ff851615612711565b01544210610f0457610e788561275d565b81610efc575b5015610ec1577f64cee5a70d662a7eef5b2a171daa51dc624f3d64a35d0855b385262b893dc5a5604086868660018760ff191617905582519182526020820152a1005b60649060206040519162461bcd60e51b8352820152601460248201527313dc195c985d1a5bdb881b9bdd081c185cdcd95960621b6044820152fd5b905086610e7e565b60649060206040519162461bcd60e51b8352820152601160248201527014da59db9a5b99c81b9bdd08195b991959607a1b6044820152fd5b346102ef5760203660031901126102ef57610f579035612668565b604080519215158352901515602083015290f35b346102ef5760203660031901126102ef57803590610f888261278c565b156110245760135460005b828110610fc7577f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b6910602085604051908152a1005b807f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e83313611017610ff861101f946127ed565b604051918291878a846040919493926060820195825260208201520152565b0390a16124fa565b610f93565b60649060206040519162461bcd60e51b835282015260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152fd5b346102ef5760203660031901126102ef576001600160a01b036110806122b8565b1660005260006020526020604060002054604051908152f35b346102ef5760003660031901126102ef576020601354604051908152f35b346102ef5760203660031901126102ef57356000526018602052602060ff604060002054166040519015158152f35b61231f565b346102ef5760003660031901126102ef576020601054604051908152f35b346102ef577fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb611138366122e4565b508360009493945260166020526111ae6003604060002061115b8682541461255d565b86600052601860205261117560ff604060002054166124b8565b6009810194876000528560205261119460ff6040600020541615612618565b6111a360028301918254612449565b905501918254612449565b9055826000526020526040600020600160ff198254161790556111ea601354604051938493846040919493926060820195825260208201520152565b0390a1005b346102ef576020806003193601126102ef578135913360005260008252604060002054156112bd57826000526015825260ff60406000205416156112835750600082815260148252604080822080546001600160a01b03191690556015835290819020805460ff19169055519182527f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba85391a1005b6064916040519162461bcd60e51b83528201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152fd5b6084916040519162461bcd60e51b8352820152602160248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f7665206d6f64756c6044820152606560f81b6064820152fd5b346102ef5760203660031901126102ef57356000526019602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef578035906113546122ce565b33600052602090600082526040600020541561145c576001600160a01b031691821561142b57836000526015825260ff604060002054166113f1577ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d727227196040858585826000526014815283600020826001600160601b0360a01b8254161790556015815283600020600160ff198254161790558351928352820152a1005b6064916040519162461bcd60e51b835282015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152fd5b6064916040519162461bcd60e51b8352820152600c60248201526b5a65726f206164647265737360a01b6044820152fd5b60405162461bcd60e51b8152808401839052601e60248201527f4d75737420686f6c6420746f6b656e7320746f20616464206d6f64756c6500006044820152606490fd5b346102ef5760003660031901126102ef57602060405160128152f35b346102ef577fe379b3deb66ddfa7962a2bdf35e9a08b5bed672c9da3ecf7cc6174d253c6dfe56114eb366122e4565b508360009493945260176020526111ae6002604060002061150e815415156126c5565b86600052601860205261152860ff604060002054166124b8565b6007810194876000528560205261154760ff6040600020541615612618565b6111a360018301918254612449565b346102ef5760603660031901126102ef5761156f6122b8565b6115776122ce565b6044359160018060a01b0381168060005260016020526040600020336000526020526040600020549460001986106115b6575b5050610ce7935061236b565b84861061162257811561160a5733156115f25750610ce794849160005260016020526040600020336000526020520360406000205584806115aa565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b346102ef5760003660031901126102ef576000610120604051611670816121aa565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051906116b7826121aa565b6040516116c78161022981611edb565b82526040516116d98161022981611f7f565b60208301526040516116ee8161022981612006565b6040830152604051611703816102298161208d565b6060830152600a546080830152600b5460a0830152600c549067ffffffffffffffff82116118cc57506040519061174060208260051b01836121dd565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b8383106118a757858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526118086117f26117dc6117c685516101406020870152610160860190612222565b6020860151858203601f19016040870152612222565b6040850151848203601f19016060860152612222565b6060840151838203601f19016080850152612222565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061187a578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080611898600193601f198682030187528951612222565b97019301930191939290611849565b6001602081926040516118be816102298189612114565b815201920192019190611771565b604190634e487b7160e01b6000525260246000fd5b346102ef5760003660031901126102ef576020600254604051908152f35b346102ef576020806003193601126102ef57813591826000526016825260406000209161192e8484541461255d565b8183019283549261194260ff8516156125a9565b60058201544210611ace5761195686612668565b81611ac6575b5015611a8c57506007906001948560ff19809616179055019261198e604051611989816102298189612114565b612884565b60405194855260408286015260009380546119a881611ea1565b948560408901528382169182600014611a465750506001146119ed575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b838510611a3257505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d284806119c5565b8054868601606001529382019381016119f9565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b820101919284806119c5565b60405162461bcd60e51b81529081018390526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b90508761195c565b60405162461bcd60e51b8152908101839052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346102ef5760003660031901126102ef576020601154604051908152f35b346102ef5760403660031901126102ef57611b3c6122b8565b602435903315611baa576001600160a01b03169182156115f25750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b346102ef5760003660031901126102ef576040516000600354611be481611ea1565b80845290600190818116908115611c695750600114611c0e575b610d7884610d64818603826121dd565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611c51575050508101602001610d6482611bfe565b80546020858701810191909152909301928101611c39565b60ff191660208087019190915292151560051b85019092019250610d649150839050611bfe565b346102ef5760203660031901126102ef57610f57903561275d565b346102ef5760603660031901126102ef57602435813560443567ffffffffffffffff81116102ef57611ce0903690850161229a565b50816000526018602052611cfb60ff604060002054166124b8565b80600052601960205260ff60406000205416611da3577f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e8331392508060005260196020526040600020600160ff198254161790556016602052604060002081815414611d84575b506111ea601354604051938493846040919493926060820195825260208201520152565b6007611989611d9d926102296040518094819301612114565b83611d60565b60405162461bcd60e51b8152602081850152601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b90346102ef5760203660031901126102ef5780356000526016602052610d786040600020916007835493611e1c86611e158160018501612114565b03876121dd565b60028101549260ff60038301549183015416600583015491611e5c60018060a01b0360068601541694611e556040518098819301612114565b03866121dd565b611e78604051998a998a526101008060208c01528a0190612222565b95604089015260608801521515608087015260a086015260c085015283820360e0850152612222565b90600182811c92168015611ed1575b6020831014611ebb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611eb0565b60065460009291611eeb82611ea1565b80825291600190818116908115611f625750600114611f0957505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410611f4a57505060209250010190565b80546020858501810191909152909301928101611f38565b915050602093945060ff929192191683830152151560051b010190565b60075460009291611f8f82611ea1565b80825291600190818116908115611f625750600114611fad57505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410611fee57505060209250010190565b80546020858501810191909152909301928101611fdc565b6008546000929161201682611ea1565b80825291600190818116908115611f62575060011461203457505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b84841061207557505060209250010190565b80546020858501810191909152909301928101612063565b6009546000929161209d82611ea1565b80825291600190818116908115611f6257506001146120bb57505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b8484106120fc57505060209250010190565b805460208585018101919091529093019281016120ea565b906000929180549161212583611ea1565b9182825260019384811690816000146121875750600114612147575b50505050565b90919394506000526020928360002092846000945b838610612173575050505001019038808080612141565b80548587018301529401938590820161215c565b9294505050602093945060ff191683830152151560051b01019038808080612141565b610140810190811067ffffffffffffffff8211176121c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176121c757604052565b60005b8381106122125750506000910152565b8181015183820152602001612202565b9060209161223b815180928185528580860191016121ff565b601f01601f1916010190565b67ffffffffffffffff81116121c757601f01601f191660200190565b92919261226f82612247565b9161227d60405193846121dd565b8294818452818301116102ef578281602093846000960137010152565b9080601f830112156102ef578160206122b593359101612263565b90565b600435906001600160a01b03821682036102ef57565b602435906001600160a01b03821682036102ef57565b60a06003198201126102ef57600435916024359160443591606435916084359067ffffffffffffffff82116102ef576122b59160040161229a565b346102ef5760203660031901126102ef57602061032d600435600052601860205260ff6040600020541690565b60409060031901126102ef576004359060243580151581036102ef5790565b916001600160a01b03808416928315612430571692831561241757600090838252816020526040822054908382106123e5575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161245657565b634e487b7160e01b600052601160045260246000fd5b1561247357565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b156124bf57565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b60001981146124565760010190565b90601f811161251757505050565b600091825260208220906020601f850160051c83019410612553575b601f0160051c01915b82811061254857505050565b81815560010161253c565b9092508290612533565b1561256457565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b156125b057565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b600260055414612606576002600555565b604051633ee5aeb560e01b8152600490fd5b1561261f57565b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b8181029291811591840414171561245657565b9081600052601660205261268360406000209283541461255d565b60036002830154920154916126988382612449565b60646126a960025460105490612655565b041115928391826126bb575b50509190565b11905038806126b5565b156126cc57565b60405162461bcd60e51b815260206004820152601860248201527f4f7065726174696f6e20646f6573206e6f7420657869737400000000000000006044820152606490fd5b1561271857565b60405162461bcd60e51b815260206004820152601a60248201527f4f7065726174696f6e20616c72656164792065786563757465640000000000006044820152606490fd5b6000526017602052604060002090612777825415156126c5565b60026001830154920154916126988382612449565b6127a5600091808352601660205260408320541461255d565b805b600481106127b6575050600190565b6127d66127c2826127ed565b600052601860205260ff6040600020541690565b156127e9576127e4906124fa565b6127a7565b5090565b80156128575760018114612851576002811461284b576003146128455760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b61a4b190565b50603890565b50608990565b50600190565b91908260409103126102ef5781516001600160a01b03811681036102ef5760209092015190565b80518101906020908082840193604091829103126102ef57818301516001600160e01b0319811692908390036102ef57818101519067ffffffffffffffff82116102ef57019184603f840112156102ef5783830151926128e384612247565b936128f0845195866121dd565b808552858501968482840101116102ef57868461290d93016121ff565b63a9059cbb60e01b8103612942575050916129309183612940945101019061285d565b906001600160a01b03163361236b565b565b909391906340c10f1960e01b81036129d95750908282612965935101019061285d565b6001600160a01b039091169283156129c25791816000936129a97fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254612449565b60025585855284835280852082815401905551908152a3565b5163ec442f0560e01b815260006004820152602490fd5b939493632770a7eb60e21b03612aa7579082826129f9935101019061285d565b916001600160a01b03909116908115612a8f576000928284528382528584205495818710612a615781859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b5163391434e360e21b81526001600160a01b0384166004820152602481018790526044810191909152606490fd5b8451634b637e8f60e11b815260006004820152602490fd5b845162461bcd60e51b81526004810184905260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fdfea26469706673582212200e003730d00266375259274b7ce87a5cf38ca28d407c876977216eb1d0bff04464736f6c63430008140033", + "deployedBytecode": "0x60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14611dda57508163044bc2bd14611cab578163057b207414611c9057816306fdde0314611bc2578163095ea7b314611b235781630c0512e914611b055781630d61b519146118ff57816318160ddd146118e1578163204c5d1f1461164e57816322dbefbb14610b3c57816323b872dd146115565781632ee09598146114bc578163313ce567146114a057816335324eee146113385781633b60288a146113095781634114509b146111ef578163456d10c1146111095781634b145793146107455781634de184f6146110e65781634fa76ec9146110eb5781635221c1f0146110e6578163548d496f146110b75781635cf0e8a4146110995781636cbadbfa1461109957816370a082311461105f5781637ce288ea14610f6b5781637e5a9b4714610f3c578163893d692a14610e205781638c7b04c914610e0257816395d89b4114610d175781639a49bdde14610cf2578163a9059cbb14610cc1578163af89d2c414610c92578163b00e073014610b6e578163b0b6cc1a14610b3c578163b359451014610774578163b3fe8bcb14610745578163c51cab3a146106d5578163c9d27afe1461054e578163ccd7a49014610388578163dd62ed3e14610337578163e49a62e914610310578163eced3dfb146102f4575063f2c26a471461020557600080fd5b346102ef5760003660031901126102ef576102a46040516102308161022981611edb565b03826121dd565b6040516102408161022981611f7f565b604051906102588261025181612006565b03836121dd565b60405191610270836102698161208d565b03846121dd565b600a5492600b546102ce600d54926102c0600e54956102b260ff600f5416986040519c8d9c8d610120908181520190612222565b8c810360208e015290612222565b908a820360408c0152612222565b9088820360608a0152612222565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b346102ef5760003660031901126102ef57602090604051908152f35b346102ef5760203660031901126102ef5761032d6020913561278c565b6040519015158152f35b346102ef5760403660031901126102ef576103506122b8565b6103586122ce565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346102ef576103963661234c565b9061039f6125f5565b80600052602092601784526040600020906103bc825415156126c5565b8082015442101561051a576103d860ff60038401541615612711565b60068201903360005281865260ff604060002054166104e5573360005260008652604060002054156104ad57509361048e917f78b8e65c466df05ea5ddf0593b44648eca1f35c039f180e31257a6f1bdd005dc95336000526000835260406000205492526040600020600160ff198254161790558460001461049857600101610462828254612449565b90555b604080519384523360208501529315159383019390935260608201929092529081906080820190565b0390a16001600555005b6002016104a6828254612449565b9055610465565b60405162461bcd60e51b815290810186905260116024820152702737903a37b5b2b739903a379039b4b3b760791b6044820152606490fd5b60405162461bcd60e51b8152908101869052600e60248201526d105b1c9958591e481cda59db995960921b6044820152606490fd5b60405162461bcd60e51b8152908101859052600d60248201526c14da59db9a5b99c8195b991959609a1b6044820152606490fd5b346102ef5761055c3661234c565b906105656125f5565b80600052602092601684526040600020906105828383541461255d565b60058201544210156106a25761059e60ff8284015416156125a9565b60088201903360005281865260ff6040600020541661066e5733600052600086526040600020541561063657509361048e917f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a995336000526000835260406000205492526040600020600160ff198254161790558460001461062857600201610462828254612449565b6003016104a6828254612449565b60405162461bcd60e51b815290810186905260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b60405162461bcd60e51b8152908101869052600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b60405162461bcd60e51b8152908101859052600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b346102ef5760203660031901126102ef578060c091356000526017602052604060002090815491600181015491600282015460ff6003840154169183015492600560018060a01b0391015416936040519586526020860152604085015215156060840152608083015260a0820152f35b346102ef5760203660031901126102ef57356000526015602052602060ff604060002054166040519015158152f35b346102ef5760803660031901126102ef57803567ffffffffffffffff918282116102ef57366023830112156102ef576107b7602492369084818501359101612263565b908235936044358181116102ef576107d2903690840161229a565b9460643595336000526020966000885260406000205415610aed576107f883151561246c565b806000526018885261081160ff604060002054166124b8565b6000526018875260ff6040600020541615610ab45760115495610833876124fa565b601155866000526016885260406000208781556001938482018851878111610aa057610869816108638454611ea1565b84612509565b8b8c601f8311600114610a2b5750918160079594926108bc94600091610a20575b50600019600383901b1c191690891b1790555b600060028401556000600384015588830160ff19815416905542612449565b600582015560068101336001600160601b0360a01b82541617905501948251948511610a0d5750506108f8836108f28654611ea1565b86612509565b8690601f841160011461098057928061096a959381937f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd639896600094610975575b50501b916000199060031b1c19161790555b6040519182918583523387840152606060408401526060830190612222565b0390a1604051908152f35b015192508a80610939565b90601f9392931983169185600052886000209260005b8a8282106109f9575050917f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63979593918561096a989694106109e0575b505050811b01905561094b565b015160001960f88460031b161c191690558880806109d3565b838501518655948701949384019301610996565b604190634e487b7160e01b600052526000fd5b90508c01518f61088a565b8892918c601f1984168660005283600020936000905b828210610a855750509160079897959391856108bc98969410610a6c575b505050811b01905561089d565b015160001960f88460031b161c191690558f808e610a5f565b9284015185558c9690940193928201928f9290810190610a41565b8460418a634e487b7160e01b600052526000fd5b60405162461bcd60e51b815280850188905260138188015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60405162461bcd60e51b81528086018990526023818901527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b346102ef5760203660031901126102ef57356000526014602052602060018060a01b0360406000205416604051908152f35b346102ef5760403660031901126102ef5780359060243533600052600060205260406000205415610c42576060602093600583610bcd7f8d5c76b09b9c1f4d0453d21436dcb0b568a50e9c0ae059e4d0ae8c95c71d07f095151561246c565b60125495610bda876124fa565b6012558660005260178852610c1160406000209285845560006001850155600060028501556003840160ff19815416905542612449565b9082015501336001600160601b0360a01b8254161790556040519084825233868301526040820152a1604051908152f35b60405162461bcd60e51b81526020818401526024808201527f4d75737420686f6c6420746f6b656e7320746f20637265617465206f706572616044820152633a34b7b760e11b6064820152608490fd5b346102ef5760203660031901126102ef5735600052601a602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef57610ce7610cdd6122b8565b602435903361236b565b602060405160018152f35b346102ef5760203660031901126102ef57610d0f602091356127ed565b604051908152f35b346102ef5760003660031901126102ef57604051906000908054610d3a81611ea1565b80855291600191808316908115610dd85750600114610d7c575b610d7885610d64818703826121dd565b604051918291602083526020830190612222565b0390f35b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610dc0575050508101602001610d6482610d78610d54565b80546020858701810191909152909301928101610da5565b869550610d7896935060209250610d6494915060ff191682840152151560051b8201019293610d54565b346102ef5760003660031901126102ef576020601254604051908152f35b346102ef5760203660031901126102ef57803590816000526017602052604060002090815491610e518315156126c5565b600381019180835492610e6760ff851615612711565b01544210610f0457610e788561275d565b81610efc575b5015610ec1577f64cee5a70d662a7eef5b2a171daa51dc624f3d64a35d0855b385262b893dc5a5604086868660018760ff191617905582519182526020820152a1005b60649060206040519162461bcd60e51b8352820152601460248201527313dc195c985d1a5bdb881b9bdd081c185cdcd95960621b6044820152fd5b905086610e7e565b60649060206040519162461bcd60e51b8352820152601160248201527014da59db9a5b99c81b9bdd08195b991959607a1b6044820152fd5b346102ef5760203660031901126102ef57610f579035612668565b604080519215158352901515602083015290f35b346102ef5760203660031901126102ef57803590610f888261278c565b156110245760135460005b828110610fc7577f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b6910602085604051908152a1005b807f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e83313611017610ff861101f946127ed565b604051918291878a846040919493926060820195825260208201520152565b0390a16124fa565b610f93565b60649060206040519162461bcd60e51b835282015260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152fd5b346102ef5760203660031901126102ef576001600160a01b036110806122b8565b1660005260006020526020604060002054604051908152f35b346102ef5760003660031901126102ef576020601354604051908152f35b346102ef5760203660031901126102ef57356000526018602052602060ff604060002054166040519015158152f35b61231f565b346102ef5760003660031901126102ef576020601054604051908152f35b346102ef577fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb611138366122e4565b508360009493945260166020526111ae6003604060002061115b8682541461255d565b86600052601860205261117560ff604060002054166124b8565b6009810194876000528560205261119460ff6040600020541615612618565b6111a360028301918254612449565b905501918254612449565b9055826000526020526040600020600160ff198254161790556111ea601354604051938493846040919493926060820195825260208201520152565b0390a1005b346102ef576020806003193601126102ef578135913360005260008252604060002054156112bd57826000526015825260ff60406000205416156112835750600082815260148252604080822080546001600160a01b03191690556015835290819020805460ff19169055519182527f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba85391a1005b6064916040519162461bcd60e51b83528201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152fd5b6084916040519162461bcd60e51b8352820152602160248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f7665206d6f64756c6044820152606560f81b6064820152fd5b346102ef5760203660031901126102ef57356000526019602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef578035906113546122ce565b33600052602090600082526040600020541561145c576001600160a01b031691821561142b57836000526015825260ff604060002054166113f1577ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d727227196040858585826000526014815283600020826001600160601b0360a01b8254161790556015815283600020600160ff198254161790558351928352820152a1005b6064916040519162461bcd60e51b835282015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152fd5b6064916040519162461bcd60e51b8352820152600c60248201526b5a65726f206164647265737360a01b6044820152fd5b60405162461bcd60e51b8152808401839052601e60248201527f4d75737420686f6c6420746f6b656e7320746f20616464206d6f64756c6500006044820152606490fd5b346102ef5760003660031901126102ef57602060405160128152f35b346102ef577fe379b3deb66ddfa7962a2bdf35e9a08b5bed672c9da3ecf7cc6174d253c6dfe56114eb366122e4565b508360009493945260176020526111ae6002604060002061150e815415156126c5565b86600052601860205261152860ff604060002054166124b8565b6007810194876000528560205261154760ff6040600020541615612618565b6111a360018301918254612449565b346102ef5760603660031901126102ef5761156f6122b8565b6115776122ce565b6044359160018060a01b0381168060005260016020526040600020336000526020526040600020549460001986106115b6575b5050610ce7935061236b565b84861061162257811561160a5733156115f25750610ce794849160005260016020526040600020336000526020520360406000205584806115aa565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b346102ef5760003660031901126102ef576000610120604051611670816121aa565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051906116b7826121aa565b6040516116c78161022981611edb565b82526040516116d98161022981611f7f565b60208301526040516116ee8161022981612006565b6040830152604051611703816102298161208d565b6060830152600a546080830152600b5460a0830152600c549067ffffffffffffffff82116118cc57506040519061174060208260051b01836121dd565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b8383106118a757858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526118086117f26117dc6117c685516101406020870152610160860190612222565b6020860151858203601f19016040870152612222565b6040850151848203601f19016060860152612222565b6060840151838203601f19016080850152612222565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061187a578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080611898600193601f198682030187528951612222565b97019301930191939290611849565b6001602081926040516118be816102298189612114565b815201920192019190611771565b604190634e487b7160e01b6000525260246000fd5b346102ef5760003660031901126102ef576020600254604051908152f35b346102ef576020806003193601126102ef57813591826000526016825260406000209161192e8484541461255d565b8183019283549261194260ff8516156125a9565b60058201544210611ace5761195686612668565b81611ac6575b5015611a8c57506007906001948560ff19809616179055019261198e604051611989816102298189612114565b612884565b60405194855260408286015260009380546119a881611ea1565b948560408901528382169182600014611a465750506001146119ed575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b838510611a3257505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d284806119c5565b8054868601606001529382019381016119f9565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b820101919284806119c5565b60405162461bcd60e51b81529081018390526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b90508761195c565b60405162461bcd60e51b8152908101839052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346102ef5760003660031901126102ef576020601154604051908152f35b346102ef5760403660031901126102ef57611b3c6122b8565b602435903315611baa576001600160a01b03169182156115f25750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b346102ef5760003660031901126102ef576040516000600354611be481611ea1565b80845290600190818116908115611c695750600114611c0e575b610d7884610d64818603826121dd565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611c51575050508101602001610d6482611bfe565b80546020858701810191909152909301928101611c39565b60ff191660208087019190915292151560051b85019092019250610d649150839050611bfe565b346102ef5760203660031901126102ef57610f57903561275d565b346102ef5760603660031901126102ef57602435813560443567ffffffffffffffff81116102ef57611ce0903690850161229a565b50816000526018602052611cfb60ff604060002054166124b8565b80600052601960205260ff60406000205416611da3577f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e8331392508060005260196020526040600020600160ff198254161790556016602052604060002081815414611d84575b506111ea601354604051938493846040919493926060820195825260208201520152565b6007611989611d9d926102296040518094819301612114565b83611d60565b60405162461bcd60e51b8152602081850152601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b90346102ef5760203660031901126102ef5780356000526016602052610d786040600020916007835493611e1c86611e158160018501612114565b03876121dd565b60028101549260ff60038301549183015416600583015491611e5c60018060a01b0360068601541694611e556040518098819301612114565b03866121dd565b611e78604051998a998a526101008060208c01528a0190612222565b95604089015260608801521515608087015260a086015260c085015283820360e0850152612222565b90600182811c92168015611ed1575b6020831014611ebb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611eb0565b60065460009291611eeb82611ea1565b80825291600190818116908115611f625750600114611f0957505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410611f4a57505060209250010190565b80546020858501810191909152909301928101611f38565b915050602093945060ff929192191683830152151560051b010190565b60075460009291611f8f82611ea1565b80825291600190818116908115611f625750600114611fad57505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410611fee57505060209250010190565b80546020858501810191909152909301928101611fdc565b6008546000929161201682611ea1565b80825291600190818116908115611f62575060011461203457505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b84841061207557505060209250010190565b80546020858501810191909152909301928101612063565b6009546000929161209d82611ea1565b80825291600190818116908115611f6257506001146120bb57505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b8484106120fc57505060209250010190565b805460208585018101919091529093019281016120ea565b906000929180549161212583611ea1565b9182825260019384811690816000146121875750600114612147575b50505050565b90919394506000526020928360002092846000945b838610612173575050505001019038808080612141565b80548587018301529401938590820161215c565b9294505050602093945060ff191683830152151560051b01019038808080612141565b610140810190811067ffffffffffffffff8211176121c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176121c757604052565b60005b8381106122125750506000910152565b8181015183820152602001612202565b9060209161223b815180928185528580860191016121ff565b601f01601f1916010190565b67ffffffffffffffff81116121c757601f01601f191660200190565b92919261226f82612247565b9161227d60405193846121dd565b8294818452818301116102ef578281602093846000960137010152565b9080601f830112156102ef578160206122b593359101612263565b90565b600435906001600160a01b03821682036102ef57565b602435906001600160a01b03821682036102ef57565b60a06003198201126102ef57600435916024359160443591606435916084359067ffffffffffffffff82116102ef576122b59160040161229a565b346102ef5760203660031901126102ef57602061032d600435600052601860205260ff6040600020541690565b60409060031901126102ef576004359060243580151581036102ef5790565b916001600160a01b03808416928315612430571692831561241757600090838252816020526040822054908382106123e5575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161245657565b634e487b7160e01b600052601160045260246000fd5b1561247357565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b156124bf57565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b60001981146124565760010190565b90601f811161251757505050565b600091825260208220906020601f850160051c83019410612553575b601f0160051c01915b82811061254857505050565b81815560010161253c565b9092508290612533565b1561256457565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b156125b057565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b600260055414612606576002600555565b604051633ee5aeb560e01b8152600490fd5b1561261f57565b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b8181029291811591840414171561245657565b9081600052601660205261268360406000209283541461255d565b60036002830154920154916126988382612449565b60646126a960025460105490612655565b041115928391826126bb575b50509190565b11905038806126b5565b156126cc57565b60405162461bcd60e51b815260206004820152601860248201527f4f7065726174696f6e20646f6573206e6f7420657869737400000000000000006044820152606490fd5b1561271857565b60405162461bcd60e51b815260206004820152601a60248201527f4f7065726174696f6e20616c72656164792065786563757465640000000000006044820152606490fd5b6000526017602052604060002090612777825415156126c5565b60026001830154920154916126988382612449565b6127a5600091808352601660205260408320541461255d565b805b600481106127b6575050600190565b6127d66127c2826127ed565b600052601860205260ff6040600020541690565b156127e9576127e4906124fa565b6127a7565b5090565b80156128575760018114612851576002811461284b576003146128455760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b61a4b190565b50603890565b50608990565b50600190565b91908260409103126102ef5781516001600160a01b03811681036102ef5760209092015190565b80518101906020908082840193604091829103126102ef57818301516001600160e01b0319811692908390036102ef57818101519067ffffffffffffffff82116102ef57019184603f840112156102ef5783830151926128e384612247565b936128f0845195866121dd565b808552858501968482840101116102ef57868461290d93016121ff565b63a9059cbb60e01b8103612942575050916129309183612940945101019061285d565b906001600160a01b03163361236b565b565b909391906340c10f1960e01b81036129d95750908282612965935101019061285d565b6001600160a01b039091169283156129c25791816000936129a97fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254612449565b60025585855284835280852082815401905551908152a3565b5163ec442f0560e01b815260006004820152602490fd5b939493632770a7eb60e21b03612aa7579082826129f9935101019061285d565b916001600160a01b03909116908115612a8f576000928284528382528584205495818710612a615781859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b5163391434e360e21b81526001600160a01b0384166004820152602481018790526044810191909152606490fd5b8451634b637e8f60e11b815260006004820152602490fd5b845162461bcd60e51b81526004810184905260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fdfea26469706673582212200e003730d00266375259274b7ce87a5cf38ca28d407c876977216eb1d0bff04464736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/backend/cache/solidity-files-cache.json b/backend/cache/solidity-files-cache.json index ffb583c..aaab683 100644 --- a/backend/cache/solidity-files-cache.json +++ b/backend/cache/solidity-files-cache.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-cache-2", "files": { - "/home/alex/Digital_Legal_Entity(DLE)/backend/contracts/DLE.sol": { + "/app/contracts/DLE.sol": { "lastModificationDate": 1753802664167, "contentHash": "de19ae5d6875c4b57e17312ebe37ae43", "sourceName": "contracts/DLE.sol", @@ -41,9 +41,46 @@ "DLE" ] }, - "/home/alex/Digital_Legal_Entity(DLE)/backend/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1753876422727, - "contentHash": "59dfce11284f2636db261df9b6a18f81", + "/app/node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol": { + "lastModificationDate": 1753876422645, + "contentHash": "190613e556d509d9e9a0ea43dc5d891d", + "sourceName": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "viaIR": true, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.20" + ], + "artifacts": [ + "ReentrancyGuard" + ] + }, + "/app/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "lastModificationDate": 1754306764456, + "contentHash": "227a6eb2225701c12d9c959b758b6333", "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "solcConfig": { "version": "0.8.20", @@ -83,45 +120,8 @@ "ERC20" ] }, - "/home/alex/Digital_Legal_Entity(DLE)/backend/node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol": { - "lastModificationDate": 1751738715692, - "contentHash": "190613e556d509d9e9a0ea43dc5d891d", - "sourceName": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "ReentrancyGuard" - ] - }, - "/home/alex/Digital_Legal_Entity(DLE)/backend/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1751738715692, + "/app/node_modules/@openzeppelin/contracts/utils/Context.sol": { + "lastModificationDate": 1753876422645, "contentHash": "67bfbc07588eb8683b3fd8f6f909563e", "sourceName": "@openzeppelin/contracts/utils/Context.sol", "solcConfig": { @@ -157,9 +157,9 @@ "Context" ] }, - "/home/alex/Digital_Legal_Entity(DLE)/backend/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { - "lastModificationDate": 1753876422645, - "contentHash": "5041977bbe908de2e6ed0270447f79ad", + "/app/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "lastModificationDate": 1754306760460, + "contentHash": "267d92fe4de67b1bdb3302c08f387dbf", "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", "solcConfig": { "version": "0.8.20", @@ -188,7 +188,7 @@ }, "imports": [], "versionPragmas": [ - ">=0.8.4" + "^0.8.20" ], "artifacts": [ "IERC1155Errors", @@ -196,9 +196,46 @@ "IERC721Errors" ] }, - "/home/alex/Digital_Legal_Entity(DLE)/backend/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1753876422727, - "contentHash": "513778b30d2750f5d2b9b19bbcf748a5", + "/app/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lastModificationDate": 1754306764456, + "contentHash": "8f19f64d2adadf448840908bbaf431c8", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "viaIR": true, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.20" + ], + "artifacts": [ + "IERC20" + ] + }, + "/app/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lastModificationDate": 1754306768254, + "contentHash": "794db3115001aa372c79326fcfd44b1f", "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "solcConfig": { "version": "0.8.20", @@ -229,48 +266,11 @@ "../IERC20.sol" ], "versionPragmas": [ - ">=0.6.2" + "^0.8.20" ], "artifacts": [ "IERC20Metadata" ] - }, - "/home/alex/Digital_Legal_Entity(DLE)/backend/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1753876422727, - "contentHash": "9261adf6457863de3e9892f51317ec89", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.4.16" - ], - "artifacts": [ - "IERC20" - ] } } } diff --git a/backend/package.json b/backend/package.json index d7414d2..da444a1 100644 --- a/backend/package.json +++ b/backend/package.json @@ -39,7 +39,7 @@ "csurf": "^1.11.0", "csv-parser": "^3.0.0", "dotenv": "^16.0.3", - "ethers": "6.13.5", + "ethers": "^6.14.0", "express": "^4.21.2", "express-rate-limit": "^7.5.0", "express-session": "^1.17.3", @@ -69,7 +69,7 @@ "@nomicfoundation/hardhat-ignition": "^0.15.10", "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomicfoundation/hardhat-toolbox": "5.0.0", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", "@nomicfoundation/hardhat-verify": "^2.0.0", "@nomicfoundation/ignition-core": "^0.15.10", "@typechain/ethers-v6": "^0.5.0", @@ -80,7 +80,7 @@ "eslint": "^9.21.0", "eslint-config-prettier": "^10.0.2", "globals": "^16.0.0", - "hardhat": "2.22.19", + "hardhat": "^2.24.1", "hardhat-gas-reporter": "^2.2.2", "nodemon": "^3.1.9", "prettier": "^3.5.3", diff --git a/backend/services/emailBot.js b/backend/services/emailBot.js index 8c4d324..d75409b 100644 --- a/backend/services/emailBot.js +++ b/backend/services/emailBot.js @@ -213,17 +213,17 @@ class EmailBotService { logger.info(`[EmailBot] Проверяем письмо: UID=${uid}, Message-ID=${messageId}, From=${fromEmail}, Unread=${isUnread}`); - if (isUnread) { - unreadMessages.push({ - uid, - messageId, - fromEmail, - subject, - text, - html, - parsed - }); - } + // Обрабатываем ВСЕ новые письма, независимо от статуса "прочитано" + // Проверка на уже обработанные письма будет в processIncomingEmail + unreadMessages.push({ + uid, + messageId, + fromEmail, + subject, + text, + html, + parsed + }); processedCount++; if (processedCount >= totalMessages) { diff --git a/backend/yarn.lock b/backend/yarn.lock index ebe049d..41954fd 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -155,6 +155,11 @@ resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== +"@ethereumjs/rlp@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-5.0.2.tgz#c89bd82f2f3bec248ab2d517ae25f5bbc4aac842" + integrity sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA== + "@ethereumjs/util@^8.1.0": version "8.1.0" resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" @@ -164,6 +169,14 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" +"@ethereumjs/util@^9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-9.1.0.tgz#75e3898a3116d21c135fa9e29886565609129bce" + integrity sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog== + dependencies: + "@ethereumjs/rlp" "^5.0.2" + ethereum-cryptography "^2.2.1" + "@ethersproject/abi@^5.0.9", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.8.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.8.0.tgz#e79bb51940ac35fe6f3262d7fe2cdb25ad5f07d9" @@ -539,17 +552,6 @@ uuid "^10.0.0" weaviate-client "^3.5.2" -"@metamask/eth-sig-util@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" - integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== - dependencies: - ethereumjs-abi "^0.6.8" - ethereumjs-util "^6.2.1" - ethjs-util "^0.1.6" - tweetnacl "^1.0.3" - tweetnacl-util "^0.15.1" - "@noble/ciphers@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.3.0.tgz#f64b8ff886c240e644e5573c097f86e5b43676dc" @@ -576,6 +578,13 @@ dependencies: "@noble/hashes" "1.8.0" +"@noble/curves@~1.8.1": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.8.2.tgz#8f24c037795e22b90ae29e222a856294c1d9ffc7" + integrity sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g== + dependencies: + "@noble/hashes" "1.7.2" + "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" @@ -591,6 +600,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== +"@noble/hashes@1.7.2", "@noble/hashes@~1.7.1": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.2.tgz#d53c65a21658fb02f3303e7ee3ba89d6754c64b4" + integrity sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ== + "@noble/hashes@1.8.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.4.0", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" @@ -627,83 +641,53 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/edr-darwin-arm64@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.8.0.tgz#70a23214a2dd2941fcb55e47bb4653514d2dae06" - integrity sha512-sKTmOu/P5YYhxT0ThN2Pe3hmCE/5Ag6K/eYoiavjLWbR7HEb5ZwPu2rC3DpuUk1H+UKJqt7o4/xIgJxqw9wu6A== +"@nomicfoundation/edr-darwin-arm64@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.11.3.tgz#d8e2609fc24cf20e75c3782e39cd5a95f7488075" + integrity sha512-w0tksbdtSxz9nuzHKsfx4c2mwaD0+l5qKL2R290QdnN9gi9AV62p9DHkOgfBdyg6/a6ZlnQqnISi7C9avk/6VA== -"@nomicfoundation/edr-darwin-x64@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.8.0.tgz#89c11ae510b3ac5c0e5268cd3a6b04194552112f" - integrity sha512-8ymEtWw1xf1Id1cc42XIeE+9wyo3Dpn9OD/X8GiaMz9R70Ebmj2g+FrbETu8o6UM+aL28sBZQCiCzjlft2yWAg== +"@nomicfoundation/edr-darwin-x64@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.11.3.tgz#7a9e94cee330269a33c7f1dce267560c7e12dbd3" + integrity sha512-QR4jAFrPbOcrO7O2z2ESg+eUeIZPe2bPIlQYgiJ04ltbSGW27FblOzdd5+S3RoOD/dsZGKAvvy6dadBEl0NgoA== -"@nomicfoundation/edr-linux-arm64-gnu@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.8.0.tgz#02c1b4f426576af4e464320e340855139a00fe9b" - integrity sha512-h/wWzS2EyQuycz+x/SjMRbyA+QMCCVmotRsgM1WycPARvVZWIVfwRRsKoXKdCftsb3S8NTprqBdJlOmsFyETFA== +"@nomicfoundation/edr-linux-arm64-gnu@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.11.3.tgz#cd5ec90c7263045c3dfd0b109c73206e488edc27" + integrity sha512-Ktjv89RZZiUmOFPspuSBVJ61mBZQ2+HuLmV67InNlh9TSUec/iDjGIwAn59dx0bF/LOSrM7qg5od3KKac4LJDQ== -"@nomicfoundation/edr-linux-arm64-musl@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.8.0.tgz#9b432dca973068f16a33abb70260e904494638dd" - integrity sha512-gnWxDgdkka0O9GpPX/gZT3REeKYV28Guyg13+Vj/bbLpmK1HmGh6Kx+fMhWv+Ht/wEmGDBGMCW1wdyT/CftJaQ== +"@nomicfoundation/edr-linux-arm64-musl@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.11.3.tgz#ed23df2d9844470f5661716da27d99a72a69e99e" + integrity sha512-B3sLJx1rL2E9pfdD4mApiwOZSrX0a/KQSBWdlq1uAhFKqkl00yZaY4LejgZndsJAa4iKGQJlGnw4HCGeVt0+jA== -"@nomicfoundation/edr-linux-x64-gnu@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.8.0.tgz#72954e5fd875df17c43d4ef3fcc381e3312e1347" - integrity sha512-DTMiAkgAx+nyxcxKyxFZk1HPakXXUCgrmei7r5G7kngiggiGp/AUuBBWFHi8xvl2y04GYhro5Wp+KprnLVoAPA== +"@nomicfoundation/edr-linux-x64-gnu@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.11.3.tgz#87a62496c2c4b808bc4a9ae96cca1642a21c2b51" + integrity sha512-D/4cFKDXH6UYyKPu6J3Y8TzW11UzeQI0+wS9QcJzjlrrfKj0ENW7g9VihD1O2FvXkdkTjcCZYb6ai8MMTCsaVw== -"@nomicfoundation/edr-linux-x64-musl@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.8.0.tgz#0d59390c512106010d6f4d94b7fffd99fb7fd8ae" - integrity sha512-iTITWe0Zj8cNqS0xTblmxPbHVWwEtMiDC+Yxwr64d7QBn/1W0ilFQ16J8gB6RVVFU3GpfNyoeg3tUoMpSnrm6Q== +"@nomicfoundation/edr-linux-x64-musl@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.11.3.tgz#8cfe408c73bcb9ed5e263910c313866d442f4b48" + integrity sha512-ergXuIb4nIvmf+TqyiDX5tsE49311DrBky6+jNLgsGDTBaN1GS3OFwFS8I6Ri/GGn6xOaT8sKu3q7/m+WdlFzg== -"@nomicfoundation/edr-win32-x64-msvc@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.8.0.tgz#d14225c513372fda54684de1229cc793ffe48c12" - integrity sha512-mNRDyd/C3j7RMcwapifzv2K57sfA5xOw8g2U84ZDvgSrXVXLC99ZPxn9kmolb+dz8VMm9FONTZz9ESS6v8DTnA== +"@nomicfoundation/edr-win32-x64-msvc@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.11.3.tgz#fb208b94553c7eb22246d73a1ac4de5bfdb97d01" + integrity sha512-snvEf+WB3OV0wj2A7kQ+ZQqBquMcrozSLXcdnMdEl7Tmn+KDCbmFKBt3Tk0X3qOU4RKQpLPnTxdM07TJNVtung== -"@nomicfoundation/edr@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.8.0.tgz#63441bb24c1804b6d27b075d0d29f3a02d94fc4f" - integrity sha512-dwWRrghSVBQDpt0wP+6RXD8BMz2i/9TI34TcmZqeEAZuCLei3U9KZRgGTKVAM1rMRvrpf5ROfPqrWNetKVUTag== +"@nomicfoundation/edr@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.11.3.tgz#e8b30b868788e45d7a2ee2359a021ef7dcb96952" + integrity sha512-kqILRkAd455Sd6v8mfP3C1/0tCOynJWY+Ir+k/9Boocu2kObCrsFgG+ZWB7fSBVdd9cPVSNrnhWS+V+PEo637g== dependencies: - "@nomicfoundation/edr-darwin-arm64" "0.8.0" - "@nomicfoundation/edr-darwin-x64" "0.8.0" - "@nomicfoundation/edr-linux-arm64-gnu" "0.8.0" - "@nomicfoundation/edr-linux-arm64-musl" "0.8.0" - "@nomicfoundation/edr-linux-x64-gnu" "0.8.0" - "@nomicfoundation/edr-linux-x64-musl" "0.8.0" - "@nomicfoundation/edr-win32-x64-msvc" "0.8.0" - -"@nomicfoundation/ethereumjs-common@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" - integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== - dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.4" - -"@nomicfoundation/ethereumjs-rlp@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" - integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== - -"@nomicfoundation/ethereumjs-tx@5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" - integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== - dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-rlp" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-util@9.0.4": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" - integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "5.0.4" - ethereum-cryptography "0.1.3" + "@nomicfoundation/edr-darwin-arm64" "0.11.3" + "@nomicfoundation/edr-darwin-x64" "0.11.3" + "@nomicfoundation/edr-linux-arm64-gnu" "0.11.3" + "@nomicfoundation/edr-linux-arm64-musl" "0.11.3" + "@nomicfoundation/edr-linux-x64-gnu" "0.11.3" + "@nomicfoundation/edr-linux-x64-musl" "0.11.3" + "@nomicfoundation/edr-win32-x64-msvc" "0.11.3" "@nomicfoundation/hardhat-chai-matchers@^2.0.0": version "2.0.9" @@ -748,7 +732,7 @@ dependencies: ethereumjs-util "^7.1.4" -"@nomicfoundation/hardhat-toolbox@5.0.0": +"@nomicfoundation/hardhat-toolbox@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz#165b47f8a3d2bf668cc5d453ce7f496a1156948d" integrity sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ== @@ -1116,13 +1100,6 @@ dependencies: fs-extra "^9.1.0" -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - "@types/bn.js@^5.1.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.2.0.tgz#4349b9710e98f9ab3cdc50f1c5e4dcbd8ef29c80" @@ -1172,11 +1149,6 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== - "@types/luxon@~3.6.0": version "3.6.2" resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.6.2.tgz#be6536931801f437eafcb9c0f6d6781f72308041" @@ -1735,7 +1707,7 @@ bn.js@4.11.6: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== -bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.11.9: version "4.12.2" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.2.tgz#3d8fed6796c24e177737f7cc5172ee04ef39ec99" integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== @@ -2565,7 +2537,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -elliptic@6.6.1, elliptic@^6.5.2, elliptic@^6.5.7: +elliptic@6.6.1, elliptic@^6.5.7: version "6.6.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== @@ -2892,7 +2864,7 @@ ethereum-bloom-filters@^1.0.6: dependencies: "@noble/hashes" "^1.4.0" -ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: +ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -2923,7 +2895,7 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2, ethereum-cryptography@^2.1.3: +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2, ethereum-cryptography@^2.1.3, ethereum-cryptography@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf" integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== @@ -2933,27 +2905,6 @@ ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2, ethereum-cryptograph "@scure/bip32" "1.4.0" "@scure/bip39" "1.3.0" -ethereumjs-abi@^0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" - integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - ethereumjs-util@^7.1.4: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" @@ -2965,19 +2916,6 @@ ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@6.13.5: - version "6.13.5" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.5.tgz#8c1d6ac988ac08abc3c1d8fabbd4b8b602851ac4" - integrity sha512-+knKNieu5EKRThQJWwqaJ10a6HE9sSehGeqWN65//wE7j47ZpFhKAnHB/JJFibwwg61I/koxaPsXbXpD/skNOQ== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "22.7.5" - aes-js "4.0.0-beta.5" - tslib "2.7.0" - ws "8.17.1" - ethers@^6.14.0: version "6.15.0" resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.15.0.tgz#2980f2a3baf0509749b7e21f8692fa8a8349c0e3" @@ -2999,14 +2937,6 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@0.1.6, ethjs-util@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -3656,21 +3586,16 @@ hardhat-gas-reporter@^2.2.2: sha1 "^1.1.1" viem "^2.27.0" -hardhat@2.22.19: - version "2.22.19" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.19.tgz#92eb6f59e75b0dded841fecf16260a5e3f6eb4eb" - integrity sha512-jptJR5o6MCgNbhd7eKa3mrteR+Ggq1exmE5RUL5ydQEVKcZm0sss5laa86yZ0ixIavIvF4zzS7TdGDuyopj0sQ== +hardhat@^2.24.1: + version "2.26.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.26.1.tgz#c5f7418be0cba5224c6ac42eae3e24db113e55f6" + integrity sha512-CXWuUaTtehxiHPCdlitntctfeYRgujmXkNX5gnrD5jdA6HhRQt+WWBZE/gHXbE29y/wDmmUL2d652rI0ctjqjw== dependencies: + "@ethereumjs/util" "^9.1.0" "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/edr" "^0.8.0" - "@nomicfoundation/ethereumjs-common" "4.0.4" - "@nomicfoundation/ethereumjs-tx" "5.0.4" - "@nomicfoundation/ethereumjs-util" "9.0.4" + "@nomicfoundation/edr" "^0.11.3" "@nomicfoundation/solidity-analyzer" "^0.1.0" "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" adm-zip "^0.4.16" aggregate-error "^3.0.0" ansi-escapes "^4.3.0" @@ -3681,7 +3606,6 @@ hardhat@2.22.19: enquirer "^2.3.0" env-paths "^2.2.0" ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" find-up "^5.0.0" fp-ts "1.19.3" fs-extra "^7.0.1" @@ -3690,6 +3614,7 @@ hardhat@2.22.19: json-stream-stringify "^3.1.4" keccak "^3.0.2" lodash "^4.17.11" + micro-eth-signer "^0.14.0" mnemonist "^0.38.0" mocha "^10.0.0" p-map "^4.0.0" @@ -4686,11 +4611,27 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +micro-eth-signer@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz#8aa1fe997d98d6bdf42f2071cef7eb01a66ecb22" + integrity sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw== + dependencies: + "@noble/curves" "~1.8.1" + "@noble/hashes" "~1.7.1" + micro-packed "~0.7.2" + micro-ftch@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== +micro-packed@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/micro-packed/-/micro-packed-0.7.3.tgz#59e96b139dffeda22705c7a041476f24cabb12b6" + integrity sha512-2Milxs+WNC00TRlem41oRswvw31146GiSaoCT7s3Xi2gMUglW5QBeqlQaZeHr5tJx9nm3i57LNXPqxOOaWtTYg== + dependencies: + "@scure/base" "~1.2.5" + micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" @@ -5750,7 +5691,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.2.4: version "2.2.7" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== @@ -6624,21 +6565,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl-util@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" - integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" diff --git a/frontend/src/components/AIQueueMonitor.vue b/frontend/src/components/AIQueueMonitor.vue index 350d706..3490929 100644 --- a/frontend/src/components/AIQueueMonitor.vue +++ b/frontend/src/components/AIQueueMonitor.vue @@ -188,7 +188,7 @@ export default { const fetchStats = async () => { try { loading.value = true - const response = await axios.get('/api/ai-queue/stats') + const response = await axios.get('/ai-queue/stats') if (response.data.success) { stats.value = response.data.data } @@ -205,7 +205,7 @@ export default { const controlQueue = async (action) => { try { - const response = await axios.post('/api/ai-queue/control', { action }) + const response = await axios.post('/ai-queue/control', { action }) if (response.data.success) { await fetchStats() } diff --git a/frontend/src/services/dleV2Service.js b/frontend/src/services/dleV2Service.js index 38741ee..526634e 100644 --- a/frontend/src/services/dleV2Service.js +++ b/frontend/src/services/dleV2Service.js @@ -20,7 +20,7 @@ import axios from 'axios'; */ export const createDLE = async (dleParams) => { try { - const response = await axios.post('/api/dle-v2', dleParams); + const response = await axios.post('/dle-v2', dleParams); return response.data; } catch (error) { console.error('Ошибка при создании DLE:', error); @@ -34,7 +34,7 @@ export const createDLE = async (dleParams) => { */ export const getAllDLEs = async () => { try { - const response = await axios.get('/api/dle-v2'); + const response = await axios.get('/dle-v2'); return response.data; } catch (error) { console.error('Ошибка при получении списка DLE:', error); @@ -49,7 +49,7 @@ export const getAllDLEs = async () => { */ export const getDLEInfo = async (dleAddress) => { try { - const response = await axios.get(`/api/dle-v2/${dleAddress}`); + const response = await axios.get(`/dle-v2/${dleAddress}`); return response.data; } catch (error) { console.error('Ошибка при получении информации о DLE:', error); @@ -63,7 +63,7 @@ export const getDLEInfo = async (dleAddress) => { */ export const getDefaultParams = async () => { try { - const response = await axios.get('/api/dle-v2/default-params'); + const response = await axios.get('/dle-v2/default-params'); return response.data; } catch (error) { console.error('Ошибка при получении параметров по умолчанию:', error); diff --git a/frontend/src/utils/wallet.js b/frontend/src/utils/wallet.js index abc016b..9168710 100644 --- a/frontend/src/utils/wallet.js +++ b/frontend/src/utils/wallet.js @@ -108,7 +108,7 @@ export const connectWallet = async () => { }; // console.log('Request data:', requestData); - const verifyResponse = await axios.post('/api/auth/verify', requestData, { + const verifyResponse = await axios.post('/auth/verify', requestData, { withCredentials: true, }); diff --git a/frontend/src/views/CrmView.vue b/frontend/src/views/CrmView.vue index 1de4e3d..925144b 100644 --- a/frontend/src/views/CrmView.vue +++ b/frontend/src/views/CrmView.vue @@ -59,7 +59,7 @@ import BaseLayout from '../components/BaseLayout.vue'; import eventBus from '../utils/eventBus'; import ContactTable from '../components/ContactTable.vue'; import contactsService from '../services/contactsService.js'; -import dleService from '../services/dleV2Service.js'; +import { getAllDLEs } from '../services/dleV2Service.js'; // Определяем props const props = defineProps({ @@ -128,7 +128,7 @@ const goToBlockchainSettings = () => { const loadDLEs = async () => { isLoading.value = true; try { - const result = await dleService.getAllDLEs(); + const result = await getAllDLEs(); dleList.value = result || []; // Выбираем первый DLE, если есть