diff --git a/core/systemcontracts/bohr/chapel/StakeHubContract b/core/systemcontracts/bohr/chapel/StakeHubContract new file mode 100644 index 0000000000..116ceb0c0d --- /dev/null +++ b/core/systemcontracts/bohr/chapel/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003ff5760003560e01c80638456cb59116200020f578063cbb04d9d1162000123578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000c98578063fb50b31f1462000cbd578063fc0c5ff11462000ce2578063ff69ab611462000cfa57600080fd5b8063e992aaf51462000c15578063efdbf0e11462000c2d578063f1f74d841462000c69578063f1fad1041462000c8157600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000ba8578063daacdb661462000bc0578063dbda7fb31462000bd8578063e8f67c3b1462000bfd57600080fd5b8063cbb04d9d1462000b04578063d115a2061462000b45578063d6ca429d1462000b5e578063d7c2dfc81462000b8357600080fd5b8063ac43175111620001a5578063bff02e201162000170578063bff02e201462000a91578063c38fbec81462000ac7578063c473318f1462000aec578063c8509d8114620008e557600080fd5b8063ac4317511462000a0f578063b187bd261462000a34578063baa7199e1462000a54578063bdceadf31462000a7957600080fd5b80638cd22b2211620001e65780638cd22b22146200097a578063982ef0a7146200099f578063a43569b314620009b6578063aad3ec9614620009ea57600080fd5b80638456cb59146200090a57806386d5450614620009225780638a4d3fa8146200095c57600080fd5b806349f41a42116200031357806364028fbd116200029d57806375cc7d89116200026857806375cc7d89146200089057806376e7d6d614620008b55780638129fc1c14620008cd578063831d65d114620008e557600080fd5b806364028fbd14620007cb578063663706d314620007e25780636ec01b2714620008135780636f8e2fa4146200086b57600080fd5b80634e6fd6c411620002de5780634e6fd6c4146200073257806359491871146200074a5780635e7cc1c9146200076f57806363a036b5146200079457600080fd5b806349f41a4214620006995780634a49ac4c14620006be5780634bf6c88214620006e35780634d99dd16146200070d57600080fd5b80631fa8882b1162000395578063417c73a71162000360578063417c73a714620005e5578063449ecfe6146200060a57806345211bfd146200062f5780634838d165146200065457600080fd5b80631fa8882b14620005555780632b727c86146200056e5780632e8e8c7114620005935780633840998814620005cd57600080fd5b8063092193ab11620003d6578063092193ab14620004a05780630e9fbf5114620004b75780631182b87514620004dc57806317b4f353146200051057600080fd5b8063046f7da2146200041f578063059ddd2214620004375780630661806e146200047957600080fd5b366200041a5760345460ff166001146200041857600080fd5b005b600080fd5b3480156200042c57600080fd5b506200041862000d12565b3480156200044457600080fd5b506200045c62000456366004620098e3565b62000da4565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200048657600080fd5b506200049160365481565b60405190815260200162000470565b62000418620004b1366004620098e3565b620011cc565b348015620004c457600080fd5b5062000418620004d636600462009947565b6200181d565b348015620004e957600080fd5b5062000501620004fb3660046200998c565b62001b49565b60405162000470919062009a3f565b3480156200051d57600080fd5b506200045c6200052f36600462009b35565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200056257600080fd5b50620004916201518081565b3480156200057b57600080fd5b506200045c6200058d366004620098e3565b62001ebc565b348015620005a057600080fd5b506200045c620005b2366004620098e3565b604d602052600090815260409020546001600160a01b031681565b348015620005da57600080fd5b506200049160375481565b348015620005f257600080fd5b506200041862000604366004620098e3565b62001f11565b3480156200061757600080fd5b506200041862000629366004620098e3565b62001f93565b3480156200063c57600080fd5b50620004186200064e366004620098e3565b62002178565b3480156200066157600080fd5b506200068862000673366004620098e3565b60016020526000908152604090205460ff1681565b604051901515815260200162000470565b348015620006a657600080fd5b5062000418620006b8366004620098e3565b62002377565b348015620006cb57600080fd5b5062000418620006dd366004620098e3565b62002558565b348015620006f057600080fd5b50620006fa600881565b60405160ff909116815260200162000470565b3480156200071a57600080fd5b50620004186200072c36600462009b8a565b620025d4565b3480156200073f57600080fd5b506200045c61dead81565b3480156200075757600080fd5b50620004186200076936600462009bc8565b62002c04565b3480156200077c57600080fd5b50620004186200078e36600462009c38565b620039fd565b348015620007a157600080fd5b50620007b9620007b336600462009c58565b62003c27565b60405162000470949392919062009cc1565b62000418620007dc36600462009d7d565b620042cc565b348015620007ef57600080fd5b506200049162000801366004620098e3565b60446020526000908152604090205481565b3480156200082057600080fd5b506200083862000832366004620098e3565b62004950565b6040805182516001600160401b039081168252602080850151821690830152928201519092169082015260600162000470565b3480156200087857600080fd5b50620005016200088a366004620098e3565b620049f5565b3480156200089d57600080fd5b5062000418620008af366004620098e3565b62004e21565b348015620008c257600080fd5b5062000491603d5481565b348015620008da57600080fd5b506200041862004ff3565b348015620008f257600080fd5b5062000418620009043660046200998c565b6200530a565b3480156200091757600080fd5b506200041862005374565b3480156200092f57600080fd5b506200045c62000941366004620098e3565b6043602052600090815260409020546001600160a01b031681565b3480156200096957600080fd5b5062000491670de0b6b3a764000081565b3480156200098757600080fd5b50620004916200099936600462009b8a565b6200540c565b62000418620009b036600462009e55565b620054c5565b348015620009c357600080fd5b50620009db620009d5366004620098e3565b62005b62565b60405162000470919062009e93565b348015620009f757600080fd5b506200041862000a0936600462009b8a565b62005e4f565b34801562000a1c57600080fd5b506200041862000a2e36600462009f10565b62005ebc565b34801562000a4157600080fd5b5060005462010000900460ff1662000688565b34801562000a6157600080fd5b506200041862000a7336600462009fc9565b62006d5b565b34801562000a8657600080fd5b5062000491603c5481565b34801562000a9e57600080fd5b5062000ab662000ab036600462009c58565b62006f28565b60405162000470939291906200a025565b34801562000ad457600080fd5b506200041862000ae6366004620098e3565b62007104565b34801562000af957600080fd5b506200049160385481565b34801562000b1157600080fd5b5062000b2962000b23366004620098e3565b620073c6565b6040805193845291151560208401529082015260600162000470565b34801562000b5257600080fd5b5062000491620186a081565b34801562000b6b57600080fd5b506200041862000b7d3660046200a082565b62007809565b34801562000b9057600080fd5b506200041862000ba23660046200a16b565b62007a2f565b34801562000bb557600080fd5b5062000491603b5481565b34801562000bcd57600080fd5b506200049160495481565b34801562000be557600080fd5b506200045c62000bf7366004620098e3565b62007b25565b34801562000c0a57600080fd5b506200049160355481565b34801562000c2257600080fd5b5062000491603a5481565b34801562000c3a57600080fd5b506200049162000c4c36600462009b35565b805160208183018101805160468252928201919093012091525481565b34801562000c7657600080fd5b5062000491603e5481565b34801562000c8e57600080fd5b50620006fa601181565b34801562000ca557600080fd5b506200049162000cb736600462009b8a565b62007f4f565b34801562000cca57600080fd5b506200041862000cdc36600462009f10565b62007fc0565b34801562000cef57600080fd5b506200049160395481565b34801562000d0757600080fd5b5062000491604a5481565b600054630100000090046001600160a01b0316331462000d45576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000d6f57604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000e0f906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3d906200a1d1565b801562000e8e5780601f1062000e625761010080835404028352916020019162000e8e565b820191906000526020600020905b81548152906001019060200180831162000e7057829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000eb9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462000ee7906200a1d1565b801562000f385780601f1062000f0c5761010080835404028352916020019162000f38565b820191906000526020600020905b81548152906001019060200180831162000f1a57829003601f168201915b5050505050815260200160018201805462000f53906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462000f81906200a1d1565b801562000fd25780601f1062000fa65761010080835404028352916020019162000fd2565b820191906000526020600020905b81548152906001019060200180831162000fb457829003601f168201915b5050505050815260200160028201805462000fed906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200101b906200a1d1565b80156200106c5780601f1062001040576101008083540402835291602001916200106c565b820191906000526020600020905b8154815290600101906020018083116200104e57829003601f168201915b5050505050815260200160038201805462001087906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620010b5906200a1d1565b8015620011065780601f10620010da5761010080835404028352916020019162001106565b820191906000526020600020905b815481529060010190602001808311620010e857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620011a5575050509190925250509051949350505050565b3361100014620011f857604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b0380821660009081526043602090815260408083205484168084526041835281842082516101808101845281548716815260018201548716948101949094526002810154909516918301919091526003840154606083015260048401805491949160808401919062001271906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200129f906200a1d1565b8015620012f05780601f10620012c457610100808354040283529160200191620012f0565b820191906000526020600020905b815481529060010190602001808311620012d257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200131b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462001349906200a1d1565b80156200139a5780601f106200136e576101008083540402835291602001916200139a565b820191906000526020600020905b8154815290600101906020018083116200137c57829003601f168201915b50505050508152602001600182018054620013b5906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013e3906200a1d1565b8015620014345780601f10620014085761010080835404028352916020019162001434565b820191906000526020600020905b8154815290600101906020018083116200141657829003601f168201915b505050505081526020016002820180546200144f906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200147d906200a1d1565b8015620014ce5780601f10620014a257610100808354040283529160200191620014ce565b820191906000526020600020905b815481529060010190602001808311620014b057829003601f168201915b50505050508152602001600382018054620014e9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462001517906200a1d1565b8015620015685780601f106200153c5761010080835404028352916020019162001568565b820191906000526020600020905b8154815290600101906020018083116200154a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162001607575050509190925250505060408101519091506001600160a01b031615806200164457508060e001515b156200170157604051611002903490600081818185875af1925050503d80600081146200168e576040519150601f19603f3d011682016040523d82523d6000602084013e62001693565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016f49060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200175857600080fd5b505af11580156200176d573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620017ae91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017e3919086906004016200a207565b600060405180830381600087803b158015620017fe57600080fd5b505af115801562001813573d6000803e3d6000fd5b5050505050505b50565b33611001146200184557604051630f22c43960e41b81526110016004820152602401620011ef565b60005462010000900460ff16156200187057604051631785c68160e01b815260040160405180910390fd5b600060458383604051620018869291906200a221565b908152604051908190036020019020546001600160a01b03169050620018ae603f826200822a565b620018cc5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038116600090815260416020526040812090620018f462015180426200a247565b604a546000828152604b602052604090205491925011620019285760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b60205260408120805460019290620019499084906200a26a565b90915550506040516046906200196390879087906200a221565b908152602001604051809103902054600014158015620019b45750426201518060468787604051620019979291906200a221565b908152602001604051809103902054620019b291906200a26a565b105b15620019d357604051631898eb6b60e01b815260040160405180910390fd5b600080620019e38560026200824d565b915091508162001a0657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562001a59573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a7f91906200a280565b905062001a8d8583620082d7565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600260405162001acd939291906200a2b0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001b0b916001600160a01b0316908a906004016200a207565b600060405180830381600087803b15801562001b2657600080fd5b505af115801562001b3b573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001b7357604051630f22c43960e41b81526120006004820152602401620011ef565b60005462010000900460ff161562001b9e57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001bef9187908790819084018382808284376000920191909152506200849e92505050565b915091508062001c125760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001c38575050604080516000815260208101909152905062001eab565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001c689160040190815260200190565b6020604051808303816000875af115801562001c88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cae91906200a2df565b90508062001d555782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001d0a9291906200a2ff565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001eab95505050505050565b600062001d628462008601565b9050600081600481111562001d7b5762001d7b6200a29a565b0362001d9d575050604080516000815260208101909152925062001eab915050565b6040516000906110049047908381818185875af1925050503d806000811462001de3576040519150601f19603f3d011682016040523d82523d6000602084013e62001de8565b606091505b505090508062001e0b576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001e5e9291906200a2ff565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001eab975050505050505050565b6034805460ff191690559392505050565b60008162001ecc603f826200822a565b62001eea5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038084166000908152604160205260409020600d01541691505b50919050565b600054630100000090046001600160a01b0316331462001f44576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001fbe57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ff05760405163b1d02c3d60e01b815260040160405180910390fd5b8062001ffe603f826200822a565b6200201c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff166200205a57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa158015620020aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020d091906200a280565b1015620020f0576040516317b204bf60e11b815260040160405180910390fd5b4281600b01541115620021165760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200213a9084906200a326565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff1615620021a357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620021d55760405163b1d02c3d60e01b815260040160405180910390fd5b620021df62008c6a565b620021ec603f826200822a565b6200220a5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200223257604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200227357506001600160a01b03821660009081526047602052604090205460ff165b156200229257604051631e6f587560e11b815260040160405180910390fd5b60006200229e62008c6a565b6001600160a01b0381166000908152604160205260409020600c810154919250904290620022d19062015180906200a26a565b1115620022f157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b3362002385603f826200822a565b620023a35760405163056e881160e01b815260040160405180910390fd5b60005462010000900460ff1615620023ce57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620024005760405163b1d02c3d60e01b815260040160405180910390fd5b6001600160a01b038281166000908152604d602052604090205416156200243a5760405163bebdc75760e01b815260040160405180910390fd5b62002447603f836200822a565b15620024665760405163bebdc75760e01b815260040160405180910390fd5b336000818152604160205260409020600d01546001600160a01b039081169084168103620024a75760405163bebdc75760e01b815260040160405180910390fd5b6001600160a01b03811615620024de576001600160a01b0381166000908152604d6020526040902080546001600160a01b03191690555b6001600160a01b038083166000818152604160209081526040808320600d018054868b166001600160a01b03199182168117909255818552604d90935281842080549093168517909255519093851692917fcbb728765de145e99c00e8ae32a325231e850359b7b8a6da3b84d672ab3f1d0a91a450505050565b600054630100000090046001600160a01b031633146200258b576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620025ff57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620026315760405163b1d02c3d60e01b815260040160405180910390fd5b816200263f603f826200822a565b6200265d5760405163056e881160e01b815260040160405180910390fd5b816000036200267f57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620026e7906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002715906200a1d1565b8015620027665780601f106200273a5761010080835404028352916020019162002766565b820191906000526020600020905b8154815290600101906020018083116200274857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002791906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620027bf906200a1d1565b8015620028105780601f10620027e45761010080835404028352916020019162002810565b820191906000526020600020905b815481529060010190602001808311620027f257829003601f168201915b505050505081526020016001820180546200282b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002859906200a1d1565b8015620028aa5780601f106200287e57610100808354040283529160200191620028aa565b820191906000526020600020905b8154815290600101906020018083116200288c57829003601f168201915b50505050508152602001600282018054620028c5906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620028f3906200a1d1565b8015620029445780601f10620029185761010080835404028352916020019162002944565b820191906000526020600020905b8154815290600101906020018083116200292657829003601f168201915b505050505081526020016003820180546200295f906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200298d906200a1d1565b8015620029de5780601f10620029b257610100808354040283529160200191620029de565b820191906000526020600020905b815481529060010190602001808311620029c057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162002a7d575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002af7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b1d91906200a280565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002b6e929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b03160362002b9b5762002b9b8662008cab565b6040808301519051633041949b60e01b815261200591633041949b9162002bc8919087906004016200a207565b600060405180830381600087803b15801562002be357600080fd5b505af115801562002bf8573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff161562002c2f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562002c615760405163b1d02c3d60e01b815260040160405180910390fd5b8362002c6f603f826200822a565b62002c8d5760405163056e881160e01b815260040160405180910390fd5b8362002c9b603f826200822a565b62002cb95760405163056e881160e01b815260040160405180910390fd5b6034805460ff19166001179055600084900362002ce957604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b03160362002d1c5760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002d84906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002db2906200a1d1565b801562002e035780601f1062002dd75761010080835404028352916020019162002e03565b820191906000526020600020905b81548152906001019060200180831162002de557829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e2e906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002e5c906200a1d1565b801562002ead5780601f1062002e815761010080835404028352916020019162002ead565b820191906000526020600020905b81548152906001019060200180831162002e8f57829003601f168201915b5050505050815260200160018201805462002ec8906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002ef6906200a1d1565b801562002f475780601f1062002f1b5761010080835404028352916020019162002f47565b820191906000526020600020905b81548152906001019060200180831162002f2957829003601f168201915b5050505050815260200160028201805462002f62906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002f90906200a1d1565b801562002fe15780601f1062002fb55761010080835404028352916020019162002fe1565b820191906000526020600020905b81548152906001019060200180831162002fc357829003601f168201915b5050505050815260200160038201805462002ffc906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200302a906200a1d1565b80156200307b5780601f106200304f576101008083540402835291602001916200307b565b820191906000526020600020905b8154815290600101906020018083116200305d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200311a57505050919092525050506001600160a01b03808916600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620031a5906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620031d3906200a1d1565b8015620032245780601f10620031f85761010080835404028352916020019162003224565b820191906000526020600020905b8154815290600101906020018083116200320657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200324f906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200327d906200a1d1565b8015620032ce5780601f10620032a257610100808354040283529160200191620032ce565b820191906000526020600020905b815481529060010190602001808311620032b057829003601f168201915b50505050508152602001600182018054620032e9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003317906200a1d1565b8015620033685780601f106200333c5761010080835404028352916020019162003368565b820191906000526020600020905b8154815290600101906020018083116200334a57829003601f168201915b5050505050815260200160028201805462003383906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620033b1906200a1d1565b8015620034025780601f10620033d65761010080835404028352916020019162003402565b820191906000526020600020905b815481529060010190602001808311620033e457829003601f168201915b505050505081526020016003820180546200341d906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200344b906200a1d1565b80156200349c5780601f1062003470576101008083540402835291602001916200349c565b820191906000526020600020905b8154815290600101906020018083116200347e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200353b5750505050508152505090508060e0015180156200357e5750876001600160a01b0316836001600160a01b031614155b156200359d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620035f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200361a91906200a280565b9050603754811015620036405760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620036d557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620036ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036d391906200a280565b105b15620036f4576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a54836200370a91906200a33c565b6200371691906200a247565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200376b576040519150601f19603f3d011682016040523d82523d6000602084013e62003770565b606091505b505090508062003793576040516312171d8360e31b815260040160405180910390fd5b6200379f82846200a326565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620037f5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200381c91906200a280565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003881939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620038c557620038c56200a356565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200390057620039006200a356565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620039419084908c906004016200a36c565b600060405180830381600087803b1580156200395c57600080fd5b505af115801562003971573d6000803e3d6000fd5b505050508a15620039e3576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620039ae9291906200a207565b600060405180830381600087803b158015620039c957600080fd5b505af1158015620039de573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff161562003a2857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003a5a5760405163b1d02c3d60e01b815260040160405180910390fd5b62003a6462008c6a565b62003a71603f826200822a565b62003a8f5760405163056e881160e01b815260040160405180910390fd5b600062003a9b62008c6a565b6001600160a01b0381166000908152604160205260409020600c81015491925090429062003ace9062015180906200a26a565b111562003aee57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b9091048116908516111562003b285760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003b6657600982015462003b609086906001600160401b03166200a398565b62003b80565b600982015462003b80906001600160401b0316866200a398565b60098301546001600160401b039182169250600160801b90041681111562003bbb5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b6060806060600062003c3a603f62008dd1565b905080861015620042c357841562003c53578462003c55565b805b945060008562003c6688846200a326565b1162003c7e5762003c7887836200a326565b62003c80565b855b9050806001600160401b0381111562003c9d5762003c9d62009a54565b60405190808252806020026020018201604052801562003cc7578160200160208202803683370190505b509450806001600160401b0381111562003ce55762003ce562009a54565b60405190808252806020026020018201604052801562003d0f578160200160208202803683370190505b509350806001600160401b0381111562003d2d5762003d2d62009a54565b60405190808252806020026020018201604052801562003d6257816020015b606081526020019060019003908162003d4c5790505b50925060005b81811015620042c057600062003d8c62003d83838b6200a26a565b603f9062008ddc565b6001600160a01b0380821660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003df9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003e27906200a1d1565b801562003e785780601f1062003e4c5761010080835404028352916020019162003e78565b820191906000526020600020905b81548152906001019060200180831162003e5a57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003ea3906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003ed1906200a1d1565b801562003f225780601f1062003ef65761010080835404028352916020019162003f22565b820191906000526020600020905b81548152906001019060200180831162003f0457829003601f168201915b5050505050815260200160018201805462003f3d906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003f6b906200a1d1565b801562003fbc5780601f1062003f905761010080835404028352916020019162003fbc565b820191906000526020600020905b81548152906001019060200180831162003f9e57829003601f168201915b5050505050815260200160028201805462003fd7906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004005906200a1d1565b8015620040565780601f106200402a5761010080835404028352916020019162004056565b820191906000526020600020905b8154815290600101906020018083116200403857829003601f168201915b5050505050815260200160038201805462004071906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200409f906200a1d1565b8015620040f05780601f10620040c457610100808354040283529160200191620040f0565b820191906000526020600020905b815481529060010190602001808311620040d257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200418f5750505050508152505090508060000151888481518110620041c857620041c86200a356565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e00151620042615780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200425b91906200a280565b62004264565b60005b8784815181106200427957620042796200a356565b60200260200101818152505080608001518684815181106200429f576200429f6200a356565b6020026020010181905250505080620042b8906200a3bb565b905062003d68565b50505b92959194509250565b60005462010000900460ff1615620042f757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620043295760405163b1d02c3d60e01b815260040160405180910390fd5b3362004337603f826200822a565b156200435657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038181166000908152604d602052604090205416156200439057604051631a0a9b9f60e21b815260040160405180910390fd5b6001600160a01b0388811660009081526043602052604090205416151580620043d157506001600160a01b03881660009081526047602052604090205460ff165b15620043f057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200440f9291906200a221565b908152604051908190036020019020546001600160a01b031614158062004459575060488787604051620044459291906200a221565b9081526040519081900360200190205460ff165b1562004478576040516311fdb94760e01b815260040160405180910390fd5b60006200448683806200a3d7565b604051602001620044999291906200a221565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620044e35760405163c0bf414360e01b815260040160405180910390fd5b6000620044f9670de0b6b3a7640000346200a326565b90506036548110156200451f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200454757604051636520611b60e11b815260040160405180910390fd5b6113886200455c604087016020880162009c38565b6001600160401b03161180620045a257506200457f604086016020870162009c38565b6001600160401b031662004597602087018762009c38565b6001600160401b0316115b80620045e15750620045bb604086016020870162009c38565b6001600160401b0316620045d6606087016040880162009c38565b6001600160401b0316115b15620046005760405163dc81db8560e01b815260040160405180910390fd5b6200464b6200461085806200a3d7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008dea92505050565b6200466957604051635dba5ad760e01b815260040160405180910390fd5b62004678838a8a8a8a62008f8c565b6200469657604051631647e3cb60e11b815260040160405180910390fd5b6000620046e484620046a987806200a3d7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620090bc92505050565b9050620046f3603f85620091bd565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620047738b8d836200a47f565b5085600582016200478582826200a547565b50879050600982016200479982826200a680565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b03191692881692909217909155518590604590620047e7908e908e906200a221565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200486a9291906200a750565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200bc57833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200bc57833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200490e90859089906004016200a207565b600060405180830381600087803b1580156200492957600080fd5b505af11580156200493e573d6000803e3d6000fd5b50505050505050505050505050505050565b6040805160608101825260008082526020820181905291810191909152816200497b603f826200822a565b620049995760405163056e881160e01b815260040160405180910390fd5b50506001600160a01b031660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915290565b6001600160a01b0380821660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608281019190915260048401805491949160808401919062004a62906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004a90906200a1d1565b801562004ae15780601f1062004ab55761010080835404028352916020019162004ae1565b820191906000526020600020905b81548152906001019060200180831162004ac357829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462004b0c906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004b3a906200a1d1565b801562004b8b5780601f1062004b5f5761010080835404028352916020019162004b8b565b820191906000526020600020905b81548152906001019060200180831162004b6d57829003601f168201915b5050505050815260200160018201805462004ba6906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004bd4906200a1d1565b801562004c255780601f1062004bf95761010080835404028352916020019162004c25565b820191906000526020600020905b81548152906001019060200180831162004c0757829003601f168201915b5050505050815260200160028201805462004c40906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004c6e906200a1d1565b801562004cbf5780601f1062004c935761010080835404028352916020019162004cbf565b820191906000526020600020905b81548152906001019060200180831162004ca157829003601f168201915b5050505050815260200160038201805462004cda906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004d08906200a1d1565b801562004d595780601f1062004d2d5761010080835404028352916020019162004d59565b820191906000526020600020905b81548152906001019060200180831162004d3b57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162004df85750505091909252505050608001519392505050565b336110011462004e4957604051630f22c43960e41b81526110016004820152602401620011ef565b6001600160a01b038082166000908152604360205260409020541662004e71603f826200822a565b62004e8f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004ef2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004f1891906200a280565b90506000603d544262004f2c91906200a26a565b905062004f3a8382620082d7565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004f7a939291906200a2b0565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004fb8916001600160a01b03169088906004016200a207565b600060405180830381600087803b15801562004fd357600080fd5b505af115801562004fe8573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff1615808015620050145750600054600160ff909116105b80620050305750303b15801562005030575060005460ff166001145b620050955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620011ef565b6000805460ff191660011790558015620050b9576000805461ff0019166101001790555b334114620050da5760405163022d8c9560e31b815260040160405180910390fd5b3a15620050fa576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200ba5760208301398060200190518101906200518b91906200a78c565b915060405180610360016040528061034081526020016200bc776103409139806020019051810190620051bf91906200a830565b905060005b82518110156200522e57600160476000858481518110620051e957620051e96200a356565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562005226816200a3bb565b9050620051c4565b5060005b81518110156200529f57600160488383815181106200525557620052556200a356565b60200260200101516040516200526c91906200a92d565b908152604051908190036020019020805491151560ff1990921691909117905562005297816200a3bb565b905062005232565b50620052bf7330151da466ec8ab345bef3d6983023e050fb0673620091d4565b505080156200181a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b33612000146200533257604051630f22c43960e41b81526120006004820152602401620011ef565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162005367939291906200a94b565b60405180910390a1505050565b600054630100000090046001600160a01b03163314620053a7576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615620053d257604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200541b603f846200822a565b620054395760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa15801562005496573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620054bc91906200a280565b90505b92915050565b60005462010000900460ff1615620054f057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620055225760405163b1d02c3d60e01b815260040160405180910390fd5b8162005530603f826200822a565b6200554e5760405163056e881160e01b815260040160405180910390fd5b6037543490811015620055745760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620055dc906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200560a906200a1d1565b80156200565b5780601f106200562f576101008083540402835291602001916200565b565b820191906000526020600020905b8154815290600101906020018083116200563d57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462005686906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620056b4906200a1d1565b8015620057055780601f10620056d95761010080835404028352916020019162005705565b820191906000526020600020905b815481529060010190602001808311620056e757829003601f168201915b5050505050815260200160018201805462005720906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200574e906200a1d1565b80156200579f5780601f1062005773576101008083540402835291602001916200579f565b820191906000526020600020905b8154815290600101906020018083116200578157829003601f168201915b50505050508152602001600282018054620057ba906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620057e8906200a1d1565b8015620058395780601f106200580d5761010080835404028352916020019162005839565b820191906000526020600020905b8154815290600101906020018083116200581b57829003601f168201915b5050505050815260200160038201805462005854906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005882906200a1d1565b8015620058d35780601f10620058a757610100808354040283529160200191620058d3565b820191906000526020600020905b815481529060010190602001808311620058b557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620059725750505050508152505090508060e001518015620059b55750856001600160a01b0316826001600160a01b031614155b15620059d457604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005a25573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062005a4c91906200a280565b9050826001600160a01b0316876001600160a01b03166000805160206200bc57833981519152838760405162005a8c929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b9162005ac1919087906004016200a207565b600060405180830381600087803b15801562005adc57600080fd5b505af115801562005af1573d6000803e3d6000fd5b50505050851562001813576040516372f6ad8f60e11b81526120059063e5ed5b1e9062005b259086908b906004016200a207565b600060405180830381600087803b15801562005b4057600080fd5b505af115801562005b55573d6000803e3d6000fd5b5050505050505050505050565b62005b8e6040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005b9c603f826200822a565b62005bba5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383166000908152604160205260409081902081516080810190925260050180548290829062005bf1906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005c1f906200a1d1565b801562005c705780601f1062005c445761010080835404028352916020019162005c70565b820191906000526020600020905b81548152906001019060200180831162005c5257829003601f168201915b5050505050815260200160018201805462005c8b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005cb9906200a1d1565b801562005d0a5780601f1062005cde5761010080835404028352916020019162005d0a565b820191906000526020600020905b81548152906001019060200180831162005cec57829003601f168201915b5050505050815260200160028201805462005d25906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005d53906200a1d1565b801562005da45780601f1062005d785761010080835404028352916020019162005da4565b820191906000526020600020905b81548152906001019060200180831162005d8657829003601f168201915b5050505050815260200160038201805462005dbf906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005ded906200a1d1565b801562005e3e5780601f1062005e125761010080835404028352916020019162005e3e565b820191906000526020600020905b81548152906001019060200180831162005e2057829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005e7a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005eac5760405163b1d02c3d60e01b815260040160405180910390fd5b62005eb882826200926d565b5050565b336110071462005ee457604051630f22c43960e41b81526110076004820152602401620011ef565b62005f516040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b156200600c576020811462005f835783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162005fc6918585808385018382808284376000920191909152509293925050620093d69050565b90506108fc81108062005fda575061271081115b15620060035784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60355562006d16565b6200607d6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620061475760208114620060af5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620060f2918585808385018382808284376000920191909152509293925050620093d69050565b9050683635c9adc5dea0000081108062006115575069152d02c7e14af680000081115b156200613e5784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60365562006d16565b620061ba604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620062815760208114620061ec5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f84018190048102820181019092528281526000916200622f918585808385018382808284376000920191909152509293925050620093d69050565b905067016345785d8a00008110806200624f5750678ac7230489e8000081115b15620062785784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60375562006d16565b620062f2604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620063aa5760208114620063245783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006367918585808385018382808284376000920191909152509293925050620093d69050565b90508015806200637857506101f481115b15620063a15784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60385562006d16565b620064136040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620064d05760208114620064455783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006488918585808385018382808284376000920191909152509293925050620093d69050565b90506203f4808110806200649e575062278d0081115b15620064c75784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60395562006d16565b6200653e60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620065eb5760208114620065705783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620065b3918585808385018382808284376000920191909152509293925050620093d69050565b90506064811115620065e25784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603a5562006d16565b6200665b60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b156200671c57602081146200668d5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620066d0918585808385018382808284376000920191909152509293925050620093d69050565b9050674563918244f40000811080620066ea5750603c5481115b15620067135784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603b5562006d16565b6200678a6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b156200684d5760208114620067bc5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620067ff918585808385018382808284376000920191909152509293925050620093d69050565b905068056bc75e2d631000008110806200681b5750603b548111155b15620068445784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603c5562006d16565b620068ba6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620069775760208114620068ec5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f84018190048102820181019092528281526000916200692f918585808385018382808284376000920191909152509293925050620093d69050565b90506202a300811080620069455750603e548110155b156200696e5784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603d5562006d16565b620069e26040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b1562006a9f576020811462006a145783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006a57918585808385018382808284376000920191909152509293925050620093d69050565b9050620d2f0081108062006a6d5750603d548111155b1562006a965784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603e5562006d16565b62006b196040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b1562006bc5576020811462006b4b5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006b8e918585808385018382808284376000920191909152509293925050620093d69050565b90508060000362006bbc5784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604a5562006d16565b62006c336040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b1562006cf3576014811462006c655783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b600062006cad601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093d69050565b90506001600160a01b03811662006ce15784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b62006cec81620093db565b5062006d16565b838383836040516325ee20d560e21b8152600401620011ef94939291906200a96a565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e6338484848460405162006d4d94939291906200a96a565b60405180910390a150505050565b60005462010000900460ff161562006d8657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562006db85760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b0381111562006dd65762006dd662009a54565b60405190808252806020026020018201604052801562006e00578160200160208202803683370190505b5090506000805b8381101562006efe5762006e4987878381811062006e295762006e296200a356565b905060200201602081019062006e409190620098e3565b603f906200822a565b62006e675760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006e805762006e806200a356565b905060200201602081019062006e979190620098e3565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ed35762006ed36200a356565b6001600160a01b039092166020928302919091019091015262006ef6816200a3bb565b905062006e07565b50604051634484077560e01b81526120059063448407759062002bc890859088906004016200a36c565b606080600062006f39603f62008dd1565b905080851015620070fd57831562006f52578362006f54565b805b935060008462006f6587846200a326565b1162006f7d5762006f7786836200a326565b62006f7f565b845b9050806001600160401b0381111562006f9c5762006f9c62009a54565b60405190808252806020026020018201604052801562006fc6578160200160208202803683370190505b509350806001600160401b0381111562006fe45762006fe462009a54565b6040519080825280602002602001820160405280156200700e578160200160208202803683370190505b50925060005b81811015620070fa576200702d62003d8382896200a26a565b8582815181106200704257620070426200a356565b60200260200101906001600160a01b031690816001600160a01b031681525050604160008683815181106200707b576200707b6200a356565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b0316848281518110620070cf57620070cf6200a356565b6001600160a01b0390921660209283029190910190910152620070f2816200a3bb565b905062007014565b50505b9250925092565b33611001146200712c57604051630f22c43960e41b81526110016004820152602401620011ef565b60005462010000900460ff16156200715757604051631785c68160e01b815260040160405180910390fd5b6001600160a01b03808216600090815260436020526040902054166200717f603f826200822a565b6200719d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038116600090815260416020526040812090620071c562015180426200a247565b604a546000828152604b602052604090205491925011620071f95760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200721a9084906200a26a565b90915550506001600160a01b038416600090815260446020526040902054158015906200726f57506001600160a01b03841660009081526044602052604090205442906200726d9062015180906200a26a565b105b156200728e576040516330abb81d60e21b815260040160405180910390fd5b6000806200729e8560006200824d565b9150915081620072c157604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562007314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200733a91906200a280565b9050620073488583620082d7565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162007388939291906200a2b0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005b25916001600160a01b0316908a906004016200a207565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384938493849390929160808401919062007437906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007465906200a1d1565b8015620074b65780601f106200748a57610100808354040283529160200191620074b6565b820191906000526020600020905b8154815290600101906020018083116200749857829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620074e1906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200750f906200a1d1565b8015620075605780601f10620075345761010080835404028352916020019162007560565b820191906000526020600020905b8154815290600101906020018083116200754257829003601f168201915b505050505081526020016001820180546200757b906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620075a9906200a1d1565b8015620075fa5780601f10620075ce57610100808354040283529160200191620075fa565b820191906000526020600020905b815481529060010190602001808311620075dc57829003601f168201915b5050505050815260200160028201805462007615906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007643906200a1d1565b8015620076945780601f10620076685761010080835404028352916020019162007694565b820191906000526020600020905b8154815290600101906020018083116200767657829003601f168201915b50505050508152602001600382018054620076af906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620076dd906200a1d1565b80156200772e5780601f1062007702576101008083540402835291602001916200772e565b820191906000526020600020905b8154815290600101906020018083116200771057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620077cd5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200783457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620078665760405163b1d02c3d60e01b815260040160405180910390fd5b6200787062008c6a565b6200787d603f826200822a565b6200789b5760405163056e881160e01b815260040160405180910390fd5b6000620078a762008c6a565b6001600160a01b0381166000908152604160205260409020600c810154919250904290620078da9062015180906200a26a565b1115620078fa57604051631f92cdbd60e11b815260040160405180910390fd5b6005810180546200790b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007939906200a1d1565b80156200798a5780601f106200795e576101008083540402835291602001916200798a565b820191906000526020600020905b8154815290600101906020018083116200796c57829003601f168201915b5050508287525085916005840191508190620079a790826200a995565b5060208201516001820190620079be90826200a995565b5060408201516002820190620079d590826200a995565b5060608201516003820190620079ec90826200a995565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff161562007a5a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007a8c5760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007aad576040516341abc80160e01b815260040160405180910390fd5b60005b8381101562007b1e5762007b0b85858381811062007ad25762007ad26200a356565b905060200201602081019062007ae99190620098e3565b84848481811062007afe5762007afe6200a356565b905060200201356200926d565b62007b16816200a3bb565b905062007ab0565b5050505050565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162007b90906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007bbe906200a1d1565b801562007c0f5780601f1062007be35761010080835404028352916020019162007c0f565b820191906000526020600020905b81548152906001019060200180831162007bf157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462007c3a906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007c68906200a1d1565b801562007cb95780601f1062007c8d5761010080835404028352916020019162007cb9565b820191906000526020600020905b81548152906001019060200180831162007c9b57829003601f168201915b5050505050815260200160018201805462007cd4906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007d02906200a1d1565b801562007d535780601f1062007d275761010080835404028352916020019162007d53565b820191906000526020600020905b81548152906001019060200180831162007d3557829003601f168201915b5050505050815260200160028201805462007d6e906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007d9c906200a1d1565b801562007ded5780601f1062007dc15761010080835404028352916020019162007ded565b820191906000526020600020905b81548152906001019060200180831162007dcf57829003601f168201915b5050505050815260200160038201805462007e08906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007e36906200a1d1565b801562007e875780601f1062007e5b5761010080835404028352916020019162007e87565b820191906000526020600020905b81548152906001019060200180831162007e6957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162007f265750505091909252505050604001519392505050565b600062007f5e603f846200822a565b62007f7c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005478565b60005462010000900460ff161562007feb57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200801d5760405163b1d02c3d60e01b815260040160405180910390fd5b6200802762008c6a565b62008034603f826200822a565b620080525760405163056e881160e01b815260040160405180910390fd5b60006200805e62008c6a565b90506200806f818787878762008f8c565b6200808d57604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b031660458787604051620080ac9291906200a221565b908152604051908190036020019020546001600160a01b0316141580620080f6575060488686604051620080e29291906200a221565b9081526040519081900360200190205460ff165b1562008115576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c8101544290620081449062015180906200a26a565b11156200816457604051631f92cdbd60e11b815260040160405180910390fd5b426046826004016040516200817a91906200aa5d565b90815260405190819003602001902055600481016200819b8789836200a47f565b5042600c8201556040518290604590620081b9908a908a906200a221565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062008219908a908a906200a750565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620054bc565b60008060008484604051602001620082679291906200aadb565b60408051601f1981840301815291815281516020928301206000818152604c90935291205490915042811115620082a757600080935093505050620082d0565b603e54620082b690426200a26a565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b1580156200831e57600080fd5b505af115801562008333573d6000803e3d6000fd5b505050506000600162008347603f62008dd1565b6200835391906200a326565b6049541080159150620084115760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa158015620083a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620083cd91906200a2df565b620084115760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b01548211156200842657600b83018290555b600a83015460ff166200849957600a8301805460ff1916600190811790915560498054600090620084599084906200a26a565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620085109062009447565b90506000805b6200852183620094ba565b15620085f457806000036200855657620085456200853f84620094e0565b62009544565b6001600160a01b03168452620085e1565b8060010362008582576200856e6200853f84620094e0565b6001600160a01b03166020850152620085e1565b80600203620085ae576200859a6200853f84620094e0565b6001600160a01b03166040850152620085e1565b80600303620085db57620085cc620085c684620094e0565b6200955c565b606085015260019150620085e1565b620085f4565b620085ec816200a3bb565b905062008516565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff168062008639575060208201516001600160a01b0316155b156200864757506004919050565b81516200865790603f906200822a565b6200866457506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620086d0906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620086fe906200a1d1565b80156200874f5780601f1062008723576101008083540402835291602001916200874f565b820191906000526020600020905b8154815290600101906020018083116200873157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200877a906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620087a8906200a1d1565b8015620087f95780601f10620087cd57610100808354040283529160200191620087f9565b820191906000526020600020905b815481529060010190602001808311620087db57829003601f168201915b5050505050815260200160018201805462008814906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462008842906200a1d1565b8015620088935780601f10620088675761010080835404028352916020019162008893565b820191906000526020600020905b8154815290600101906020018083116200887557829003601f168201915b50505050508152602001600282018054620088ae906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620088dc906200a1d1565b80156200892d5780601f1062008901576101008083540402835291602001916200892d565b820191906000526020600020905b8154815290600101906020018083116200890f57829003601f168201915b5050505050815260200160038201805462008948906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462008976906200a1d1565b8015620089c75780601f106200899b57610100808354040283529160200191620089c7565b820191906000526020600020905b815481529060010190602001808311620089a957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162008a665750505050508152505090508060e00151801562008ab1575082600001516001600160a01b031683602001516001600160a01b031614155b1562008ac05750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af115801562008b1c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008b4391906200a280565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200bc5783398151915283876060015160405162008b8f929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008bf2929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b9262008c2c929091906004016200a207565b600060405180830381600087803b15801562008c4757600080fd5b505af115801562008c5c573d6000803e3d6000fd5b506000979650505050505050565b336000908152604d60205260408120546001600160a01b03161562008ca65750336000908152604d60205260409020546001600160a01b031690565b503390565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008cd5575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008d25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008d4b91906200a280565b101562005eb85762008d6d81603d544262008d6791906200a26a565b620082d7565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b15801562008db457600080fd5b505af115801562008dc9573d6000803e3d6000fd5b505050505050565b6000620054bf825490565b6000620054bc838362009634565b60008082905060038151108062008e02575060098151115b1562008e115750600092915050565b60418160008151811062008e295762008e296200a356565b016020015160f81c108062008e5b5750605a8160008151811062008e515762008e516200a356565b016020015160f81c115b1562008e6a5750600092915050565b60015b815181101562008f8257603082828151811062008e8e5762008e8e6200a356565b016020015160f81c108062008ebf5750603982828151811062008eb55762008eb56200a356565b016020015160f81c115b801562008f0f5750604182828151811062008ede5762008ede6200a356565b016020015160f81c108062008f0f5750605a82828151811062008f055762008f056200a356565b016020015160f81c115b801562008f5f5750606182828151811062008f2e5762008f2e6200a356565b016020015160f81c108062008f5f5750607a82828151811062008f555762008f556200a356565b016020015160f81c115b1562008f6f575060009392505050565b62008f7a816200a3bb565b905062008e6d565b5060019392505050565b600060308414158062008fa0575060608214155b1562008faf57506000620090b3565b60008686864660405160200162008fca94939291906200ab19565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a604051602001620090249594939291906200ab46565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa6200906e57600080fd5b506000816000815181106200908757620090876200a356565b016020015160f81c905060018114620090a957600095505050505050620090b3565b6001955050505050505b95945050505050565b60008061200361dead604051620090d390620098bf565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562009116573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b81526004016200914a9291906200ab7e565b6000604051808303818588803b1580156200916457600080fd5b505af115801562009179573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620054bc836001600160a01b03841662009661565b600054610100900460ff16620092415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620011ef565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b816200927b603f826200822a565b620092995760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af1158015620092fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200932391906200a280565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683836040516200936b91815260200190565b60405180910390a350505050565b6000816040516020016200938e91906200a92d565b6040516020818303038152906040528051906020012083604051602001620093b791906200a92d565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60408051608081018252600091810182815260608201839052815260208101919091526200947582620096b3565b6200947f57600080fd5b6000620094908360200151620096e6565b8360200151620094a191906200a26a565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620094d2916200a26a565b836020015110915050919050565b6040805180820190915260008082526020820152620094ff82620094ba565b6200950957600080fd5b602082015160006200951b8262009775565b90506200952981836200a26a565b60209485015260408051808201909152908152928301525090565b80516000906015146200955657600080fd5b620054bf825b8051600090158015906200957257508151602110155b6200957c57600080fd5b60006200958d8360200151620096e6565b90508083600001511015620095e55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f66667365740000000000006044820152606401620011ef565b8251600090620095f79083906200a326565b90506000808386602001516200960e91906200a26a565b90508051915060208310156200962b57826020036101000a820491505b50949350505050565b60008260000182815481106200964e576200964e6200a356565b9060005260206000200154905092915050565b6000818152600183016020526040812054620096aa57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620054bf565b506000620054bf565b80516000908103620096c757506000919050565b6020820151805160001a9060c082101562008f82575060009392505050565b8051600090811a6080811015620097005750600092915050565b60b88110806200971d575060c081108015906200971d575060f881105b156200972c5750600192915050565b60c0811015620097675762009744600160b86200aba4565b620097539060ff16826200a326565b620097609060016200a26a565b9392505050565b62009744600160f86200aba4565b80516000908190811a6080811015620097925760019150620098b8565b60b8811015620097be57620097a96080826200a326565b620097b69060016200a26a565b9150620098b8565b60c08110156200983757600060b78203600186019550806020036101000a865104915060018101820193505080831015620098305760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606401620011ef565b50620098b8565b60f88110156200984e57620097a960c0826200a326565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620098b65760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606401620011ef565b505b5092915050565b610e96806200abc183390190565b6001600160a01b03811681146200181a57600080fd5b600060208284031215620098f657600080fd5b81356200976081620098cd565b60008083601f8401126200991657600080fd5b5081356001600160401b038111156200992e57600080fd5b602083019150836020828501011115620082d057600080fd5b600080602083850312156200995b57600080fd5b82356001600160401b038111156200997257600080fd5b620099808582860162009903565b90969095509350505050565b600080600060408486031215620099a257600080fd5b833560ff81168114620099b457600080fd5b925060208401356001600160401b03811115620099d057600080fd5b620099de8682870162009903565b9497909650939450505050565b60005b8381101562009a08578181015183820152602001620099ee565b50506000910152565b6000815180845262009a2b816020860160208601620099eb565b601f01601f19169290920160200192915050565b602081526000620054bc602083018462009a11565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562009a8f5762009a8f62009a54565b60405290565b604051601f8201601f191681016001600160401b038111828210171562009ac05762009ac062009a54565b604052919050565b60006001600160401b0382111562009ae45762009ae462009a54565b50601f01601f191660200190565b600062009b0962009b038462009ac8565b62009a95565b905082815283838301111562009b1e57600080fd5b828260208301376000602084830101529392505050565b60006020828403121562009b4857600080fd5b81356001600160401b0381111562009b5f57600080fd5b8201601f8101841362009b7157600080fd5b62009b828482356020840162009af2565b949350505050565b6000806040838503121562009b9e57600080fd5b823562009bab81620098cd565b946020939093013593505050565b80151581146200181a57600080fd5b6000806000806080858703121562009bdf57600080fd5b843562009bec81620098cd565b9350602085013562009bfe81620098cd565b925060408501359150606085013562009c178162009bb9565b939692955090935050565b6001600160401b03811681146200181a57600080fd5b60006020828403121562009c4b57600080fd5b8135620097608162009c22565b6000806040838503121562009c6c57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b8381101562009cb65781516001600160a01b03168752958201959082019060010162009c8f565b509495945050505050565b60808152600062009cd6608083018762009c7b565b82810360208481019190915286518083528782019282019060005b8181101562009d0f5784518352938301939183019160010162009cf1565b5050848103604086015286518082528282019350600581901b8201830183890160005b8381101562009d6457601f1985840301875262009d5183835162009a11565b9686019692509085019060010162009d32565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e081121562009d9a57600080fd5b883562009da781620098cd565b975060208901356001600160401b038082111562009dc457600080fd5b62009dd28c838d0162009903565b909950975060408b013591508082111562009dec57600080fd5b62009dfa8c838d0162009903565b90975095508591506060605f198401121562009e1557600080fd5b60608b01945060c08b013592508083111562009e3057600080fd5b505088016080818b03121562009e4557600080fd5b8091505092959891949750929550565b6000806040838503121562009e6957600080fd5b823562009e7681620098cd565b9150602083013562009e888162009bb9565b809150509250929050565b60208152600082516080602084015262009eb160a084018262009a11565b90506020840151601f198085840301604086015262009ed1838362009a11565b9250604086015191508085840301606086015262009ef0838362009a11565b9250606086015191508085840301608086015250620090b3828262009a11565b6000806000806040858703121562009f2757600080fd5b84356001600160401b038082111562009f3f57600080fd5b62009f4d8883890162009903565b9096509450602087013591508082111562009f6757600080fd5b5062009f768782880162009903565b95989497509550505050565b60008083601f84011262009f9557600080fd5b5081356001600160401b0381111562009fad57600080fd5b6020830191508360208260051b8501011115620082d057600080fd5b60008060006040848603121562009fdf57600080fd5b83356001600160401b0381111562009ff657600080fd5b6200a0048682870162009f82565b90945092505060208401356200a01a81620098cd565b809150509250925092565b6060815260006200a03a606083018662009c7b565b82810360208401526200a04e818662009c7b565b915050826040830152949350505050565b600082601f8301126200a07157600080fd5b620054bc8383356020850162009af2565b6000602082840312156200a09557600080fd5b81356001600160401b03808211156200a0ad57600080fd5b90830190608082860312156200a0c257600080fd5b6200a0cc62009a6a565b8235828111156200a0dc57600080fd5b6200a0ea878286016200a05f565b8252506020830135828111156200a10057600080fd5b6200a10e878286016200a05f565b6020830152506040830135828111156200a12757600080fd5b6200a135878286016200a05f565b6040830152506060830135828111156200a14e57600080fd5b6200a15c878286016200a05f565b60608301525095945050505050565b600080600080604085870312156200a18257600080fd5b84356001600160401b03808211156200a19a57600080fd5b6200a1a88883890162009f82565b909650945060208701359150808211156200a1c257600080fd5b5062009f768782880162009f82565b600181811c908216806200a1e657607f821691505b60208210810362001f0b57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b6000826200a26557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620054bf57620054bf6200a231565b6000602082840312156200a29357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b8381526020810183905260608101600383106200a2d1576200a2d16200a29a565b826040830152949350505050565b6000602082840312156200a2f257600080fd5b8151620097608162009bb9565b82815260408101600583106200a319576200a3196200a29a565b8260208301529392505050565b81810381811115620054bf57620054bf6200a231565b8082028115828204841417620054bf57620054bf6200a231565b634e487b7160e01b600052603260045260246000fd5b6040815260006200a381604083018562009c7b565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620098b857620098b86200a231565b6000600182016200a3d0576200a3d06200a231565b5060010190565b6000808335601e198436030181126200a3ef57600080fd5b8301803591506001600160401b038211156200a40a57600080fd5b602001915036819003821315620082d057600080fd5b601f8211156200849957600081815260208120601f850160051c810160208610156200a4495750805b601f850160051c820191505b8181101562008dc9578281556001016200a455565b600019600383901b1c191660019190911b1790565b6001600160401b038311156200a499576200a49962009a54565b6200a4b1836200a4aa83546200a1d1565b836200a420565b6000601f8411600181146200a4e457600085156200a4cf5750838201355b6200a4db86826200a46a565b84555062007b1e565b600083815260209020601f19861690835b828110156200a51757868501358255602094850194600190920191016200a4f5565b50868210156200a5355760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a55382836200a3d7565b6001600160401b038111156200a56d576200a56d62009a54565b6200a585816200a57e85546200a1d1565b856200a420565b6000601f8211600181146200a5b857600083156200a5a35750838201355b6200a5af84826200a46a565b8655506200a615565b600085815260209020601f19841690835b828110156200a5eb57868501358255602094850194600190920191016200a5c9565b50848210156200a6095760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a62860208301836200a3d7565b6200a6388183600186016200a47f565b50506200a64960408301836200a3d7565b6200a6598183600286016200a47f565b50506200a66a60608301836200a3d7565b6200a67a8183600386016200a47f565b50505050565b81356200a68d8162009c22565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a6ba8162009c22565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a6fa8162009c22565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600062009b826020830184866200a727565b60006001600160401b038211156200a782576200a78262009a54565b5060051b60200190565b600060208083850312156200a7a057600080fd5b82516001600160401b038111156200a7b757600080fd5b8301601f810185136200a7c957600080fd5b80516200a7da62009b03826200a766565b81815260059190911b820183019083810190878311156200a7fa57600080fd5b928401925b828410156200a8255783516200a81581620098cd565b825292840192908401906200a7ff565b979650505050505050565b600060208083850312156200a84457600080fd5b82516001600160401b03808211156200a85c57600080fd5b818501915085601f8301126200a87157600080fd5b81516200a88262009b03826200a766565b81815260059190911b830184019084810190888311156200a8a257600080fd5b8585015b838110156200a920578051858111156200a8c05760008081fd5b8601603f81018b136200a8d35760008081fd5b8781015160406200a8e862009b038362009ac8565b8281528d828486010111156200a8fe5760008081fd5b6200a90f838c8301848701620099eb565b86525050509186019186016200a8a6565b5098975050505050505050565b600082516200a941818460208701620099eb565b9190910192915050565b60ff84168152604060208201526000620090b36040830184866200a727565b6040815260006200a9806040830186886200a727565b82810360208401526200a8258185876200a727565b81516001600160401b038111156200a9b1576200a9b162009a54565b6200a9c9816200a9c284546200a1d1565b846200a420565b602080601f8311600181146200a9fd57600084156200a9e85750858301515b6200a9f485826200a46a565b86555062008dc9565b600085815260208120601f198616915b828110156200aa2e578886015182559484019460019091019084016200aa0d565b50858210156200aa4d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200aa6d816200a1d1565b600182811680156200aa8857600181146200aa9e576200aacf565b60ff19841687528215158302870194506200aacf565b8760005260208060002060005b858110156200aac65781548a8201529084019082016200aaab565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200ab05576200ab056200a29a565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200ab5a818460208b01620099eb565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b038316815260406020820181905260009062009b829083018462009a11565b60ff8281168282160390811115620054bf57620054bf6200a23156fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/bohr/chapel/ValidatorContract b/core/systemcontracts/bohr/chapel/ValidatorContract index e69de29bb2..bcd97b863c 100644 --- a/core/systemcontracts/bohr/chapel/ValidatorContract +++ b/core/systemcontracts/bohr/chapel/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061051c5760003560e01c80638a7beb01116102a2578063c81b166211610165578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d8d578063f9a2bbc714610da2578063fc3e590814610db7578063fccc281314610dcc578063fd4ad81f14610de1578063fd6a687914610e1057610523565b8063e40716a114610cfb578063ea321e4914610d10578063eb57e20214610d30578063eda5868c14610d50578063f1fad10414610d65578063f340fa0114610d7a57610523565b8063d86222d51161011e578063d86222d514610c7d578063daacdb6614610c92578063dc927faf14610ca7578063df8079e914610cbc578063e086c7b114610cd1578063e1c7392a14610ce657610523565b8063c81b166214610c09578063c8509d81146109ae578063cb75a59214610c1e578063ce910b0c14610c33578063d58918ae14610c53578063d68fb56a14610c6857610523565b8063aa82dce111610209578063aef198a9116101c2578063aef198a914610b93578063b7ab4db514610ba8578063b8cf4ef114610bca578063bf9f499514610734578063c466689d14610bdf578063c6d3394514610bf457610523565b8063aa82dce114610aff578063aad5606314610b14578063aaf5eb6814610b29578063ab51bb9614610b3e578063ac43175114610b53578063ad3c9da614610b7357610523565b80639dc092621161025b5780639dc0926214610a815780639fe0f81614610a96578063a0dc275814610aab578063a1a11bf514610ac0578063a5422d5c14610ad5578063a78abc1614610aea57610523565b80638a7beb01146109f85780638b5ad0c914610a0d5780638c5d749d14610a225780638d19a41014610a375780639369d7de14610a5757806396713da914610a6c57610523565b80635192c82c116103ea578063718a8aa81161035157806381650b621161030a57806381650b6214610984578063820dcaa814610999578063831d65d1146109ae578063853230aa1461093057806386249882146109ce57806388b32f11146109e357610523565b8063718a8aa81461090657806375d47a0a1461091b57806378dfed4a146109305780637942fd05146109455780637a84ca2a1461095a5780637e434d541461096f57610523565b80635d77156c116103a35780635d77156c1461086057806360eba4fe1461087557806362b72cf5146108955780636969a25c146108aa5780636e47b482146108dc57806370fd5bad146108f157610523565b80635192c82c146107cc57806351b4dce3146107e157806351e80672146107f657806355614fcc1461080b578063565c56b31461082b5780635667515a1461084b57610523565b80632a0ffb6e1161048e5780633dffc387116104475780633dffc3871461073457806343756e5c1461075657806345cf9daf1461076b578063493279b1146107805780634bf6c882146107a25780634df6e0c3146107b757610523565b80632a0ffb6e14610671578063300c356714610691578063321d398a146106b15780633365af3a146106d157806335409f7f146106f15780633b071dcc1461071157610523565b8063152ad3b8116104e0578063152ad3b8146105db5780631bd14ed8146105fd5780631e4c1524146106125780631ff1806914610632578063219f22d514610647578063280870281461065c57610523565b806304c4fec61461052857806307a568471461053f5780630bee7a671461056a5780630e2374a51461058c5780631182b875146105ae57610523565b3661052357005b600080fd5b34801561053457600080fd5b5061053d610e25565b005b34801561054b57600080fd5b50610554610e99565b60405161056191906193bb565b60405180910390f35b34801561057657600080fd5b5061057f610e9f565b60405161056191906193e5565b34801561059857600080fd5b506105a1610ea4565b60405161056191906184f9565b3480156105ba57600080fd5b506105ce6105c93660046183df565b610eaa565b60405161056191906186af565b3480156105e757600080fd5b506105f06111c7565b60405161056191906186a4565b34801561060957600080fd5b506105546111d0565b34801561061e57600080fd5b5061053d61062d3660046181ed565b6111d6565b34801561063e57600080fd5b506105546118ac565b34801561065357600080fd5b5061057f6118b2565b34801561066857600080fd5b506105a16118b7565b34801561067d57600080fd5b5061053d61068c36600461814d565b6118bd565b34801561069d57600080fd5b5061053d6106ac366004618185565b61196a565b3480156106bd57600080fd5b506105f06106cc36600461838c565b611cb3565b3480156106dd57600080fd5b506105f06106ec36600461838c565b611d82565b3480156106fd57600080fd5b5061053d61070c36600461814d565b611e33565b34801561071d57600080fd5b50610726611f98565b6040516105619291906185ba565b34801561074057600080fd5b50610749612274565b60405161056191906193f6565b34801561076257600080fd5b506105a1612279565b34801561077757600080fd5b5061055461227f565b34801561078c57600080fd5b50610795612285565b60405161056191906193ac565b3480156107ae57600080fd5b5061074961228a565b3480156107c357600080fd5b5061072661228f565b3480156107d857600080fd5b5061055461241b565b3480156107ed57600080fd5b506105a1612421565b34801561080257600080fd5b506105a1612427565b34801561081757600080fd5b506105f061082636600461814d565b61242d565b34801561083757600080fd5b5061055461084636600461814d565b612462565b34801561085757600080fd5b506107496124b3565b34801561086c57600080fd5b5061057f6124b8565b34801561088157600080fd5b506105ce61089036600461838c565b6124bd565b3480156108a157600080fd5b50610554612563565b3480156108b657600080fd5b506108ca6108c536600461838c565b612569565b60405161056196959493929190618526565b3480156108e857600080fd5b506105a16125cd565b3480156108fd57600080fd5b506107496125d3565b34801561091257600080fd5b506107496125d8565b34801561092757600080fd5b506105a16125dd565b34801561093c57600080fd5b506105546125e3565b34801561095157600080fd5b506107496125e9565b34801561096657600080fd5b506105546125ee565b34801561097b57600080fd5b506105a16125f4565b34801561099057600080fd5b5061057f6125fa565b3480156109a557600080fd5b506105546125ff565b3480156109ba57600080fd5b5061053d6109c93660046183df565b612605565b3480156109da57600080fd5b50610554612666565b3480156109ef57600080fd5b5061055461266c565b348015610a0457600080fd5b506105f0612672565b348015610a1957600080fd5b5061055461267b565b348015610a2e57600080fd5b50610554612681565b348015610a4357600080fd5b50610554610a5236600461814d565b61269e565b348015610a6357600080fd5b5061053d6126de565b348015610a7857600080fd5b506107496127f2565b348015610a8d57600080fd5b506105a16127f7565b348015610aa257600080fd5b506105546127fd565b348015610ab757600080fd5b50610554612802565b348015610acc57600080fd5b506105a1612807565b348015610ae157600080fd5b506105ce61280d565b348015610af657600080fd5b506105f061282c565b348015610b0b57600080fd5b506105a1612835565b348015610b2057600080fd5b506105a161283b565b348015610b3557600080fd5b50610554612841565b348015610b4a57600080fd5b5061057f6124b3565b348015610b5f57600080fd5b5061053d610b6e366004618330565b61284a565b348015610b7f57600080fd5b50610554610b8e36600461814d565b613343565b348015610b9f57600080fd5b50610554613355565b348015610bb457600080fd5b50610bbd613362565b60405161056191906185a7565b348015610bd657600080fd5b5061055461344d565b348015610beb57600080fd5b50610554613452565b348015610c0057600080fd5b506105546125d3565b348015610c1557600080fd5b506105a1613458565b348015610c2a57600080fd5b5061055461345e565b348015610c3f57600080fd5b506105ce610c4e36600461838c565b613464565b348015610c5f57600080fd5b50610554613471565b348015610c7457600080fd5b50610554613477565b348015610c8957600080fd5b506105546134b6565b348015610c9e57600080fd5b506105546134c2565b348015610cb357600080fd5b506105a16134c8565b348015610cc857600080fd5b506105a16134ce565b348015610cdd57600080fd5b50610554610e9f565b348015610cf257600080fd5b5061053d6134d4565b348015610d0757600080fd5b50610554613683565b348015610d1c57600080fd5b506105f0610d2b3660046182f1565b613689565b348015610d3c57600080fd5b5061053d610d4b36600461814d565b61380f565b348015610d5c57600080fd5b5061057f613913565b348015610d7157600080fd5b50610749613918565b61053d610d8836600461814d565b61391d565b348015610d9957600080fd5b50610554613cd3565b348015610dae57600080fd5b506105a1613cd9565b348015610dc357600080fd5b506107496127fd565b348015610dd857600080fd5b506105a1613cdf565b348015610ded57600080fd5b50610e01610dfc36600461838c565b613ce5565b604051610561939291906193c4565b348015610e1c57600080fd5b506105a1613da7565b6000610e303361269e565b9050600b8181548110610e3f57fe5b600091825260209091206001601690920201015460ff16610e7b5760405162461bcd60e51b8152600401610e7290618fdc565b60405180910390fd5b6000610e85613477565b9050610e943383836001613dad565b505050565b60095481565b606481565b61200181565b60005460609060ff16610ecf5760405162461bcd60e51b8152600401610e729061886e565b3361200014610ef05760405162461bcd60e51b8152600401610e72906191c4565b600b54610fae57610eff617cf9565b60015460005b81811015610faa57600b8054600181018255600091909152835160008051602061967383398151915260169092029182019081556020808601516000805160206196b38339815191528401805460ff1916911515919091179055604086015180518794610f8693600080516020619693833981519152909101920190617d28565b506060820151610f9c9060038301906013617da2565b505050806001019050610f05565b5050505b610fb6617dcf565b6000610ff785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061408292505050565b91509150806110135761100a606461423e565b925050506111c0565b815160009060ff16611038576110318360200151846040015161429f565b905061118c565b825160ff16600114156111885782602001515160011461107d5760008051602061965383398151915260405161106d90618e95565b60405180910390a1506067611183565b6000836020015160008151811061109057fe5b602090810291909101810151516001600160a01b038116600090815260049092526040909120549091508015806110f157506001808203815481106110d157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561112f576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261117c565b600061113e8360018403615461565b90508061117a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61118c565b5060655b63ffffffff81166111b157505060408051600081526020810190915291506111c09050565b6111ba8161423e565b93505050505b9392505050565b60075460ff1681565b600f5481565b3341146111f55760405162461bcd60e51b8152600401610e7290619213565b3a156112135760405162461bcd60e51b8152600401610e7290618f1b565b825160408051828152602080840282010190915260609082801561125157816020015b61123e617df3565b8152602001906001900390816112365790505b50905060005b828110156112fb576040518060c0016040528087838151811061127657fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020018683815181106112b857fe5b60200260200101516001600160401b0316815260200160001515815260200160008152508282815181106112e857fe5b6020908102919091010152600101611257565b5060405163d31f968d60e01b81526120009063d31f968d90611326906110009060089060040161858b565b60206040518083038186803b15801561133e57600080fd5b505afa158015611352573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137691906182d1565b156116995780516015548181111561141857815b8181101561141657601580548061139d57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b031916905560030155905560168054806113f057fe5b60019003818190600052602060002001600061140c9190617e28565b905560010161138a565b505b60005b828110156116585781811061154057601584828151811061143857fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a00151600390910155855160169087908390811061150857fe5b6020908102919091018101518254600181018455600093845292829020815161153a9491909101929190910190617d28565b50611650565b83818151811061154c57fe5b60200260200101516015828154811061156157fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155855186908290811061161c57fe5b60200260200101516016828154811061163157fe5b90600052602060002001908051906020019061164e929190617d28565b505b60010161141b565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b442468260405161168891906193bb565b60405180910390a150505050610e94565b6060806116a68386615824565b9150915060005b60015481101561179c576000600182815481106116c657fe5b906000526020600020906004020160030154905080600014611793576000600183815481106116f157fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab826001858154811061172557fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b168152611760926001600160a01b0390921691016184f9565b6000604051808303818588803b15801561177957600080fd5b505af115801561178d573d6000803e3d6000fd5b50505050505b506001016116ad565b50471561180a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516117d291906193bb565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015611808573d6000803e3d6000fd5b505b60006003819055600555815115611825576118258282615d0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186257600080fd5b505af1158015611876573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118de5760405162461bcd60e51b8152600401610e7290619375565b60005b60155481101561196657816001600160a01b03166015828154811061190257fe5b60009182526020909120600490910201546001600160a01b0316141561195e5760016015828154811061193157fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611966565b6001016118e1565b5050565b3341146119895760405162461bcd60e51b8152600401610e7290619213565b60105443116119aa5760405162461bcd60e51b8152600401610e7290618a90565b3a156119c85760405162461bcd60e51b8152600401610e7290618f1b565b60005460ff166119ea5760405162461bcd60e51b8152600401610e729061886e565b60006110023168056bc75e2d63100000811115611a2157611a1a8168056bc75e2d6310000063ffffffff6164fd16565b9150611a28565b5050611ca9565b6040516309a99b4f60e41b815261100290639a99b4f090611a4f903090869060040161850d565b602060405180830381600087803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa191906183a4565b915081611aaf575050611ca9565b6000805b84811015611add57858582818110611ac757fe5b9050602002013582019150806001019050611ab3565b5080611aeb57505050611ca9565b6000806000805b89811015611ca15784898983818110611b0757fe5b90506020020135880281611b1757fe5b0493508a8a82818110611b2657fe5b9050602002016020810190611b3b919061814d565b6001600160a01b03811660009081526004602052604090205490935091508115611c57576000600180840381548110611b7057fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611bdd57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611bd091906193bb565b60405180910390a2611c51565b600354611bf0908663ffffffff61653f16565b6003908155810154611c08908663ffffffff61653f16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611c489088906193bb565b60405180910390a25b50611c99565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c9091906193bb565b60405180910390a25b600101611af2565b505050505050505b5050436010555050565b6001546000908210611cc757506000611d7d565b60006001600160a01b031660018381548110611cdf57fe5b60009182526020909120600490910201546001600160a01b03161480611d0f57506008541580611d0f5750600a54155b80611d1e575060085460095410155b80611d2f5750611d2d82611d82565b155b80611d5857506000600b8381548110611d4457fe5b906000526020600020906016020160000154115b80611d6c57506001611d68613362565b5111155b15611d7957506000611d7d565b5060015b919050565b6001546000908210611d9657506000611d7d565b600b548210611dd35760018281548110611dac57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d7d565b60018281548110611de057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611e2d5750600b8281548110611e1457fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611ef157611e42617cf9565b60015460005b81811015611eed57600b8054600181018255600091909152835160008051602061967383398151915260169092029182019081556020808601516000805160206196b38339815191528401805460ff1916911515919091179055604086015180518794611ec993600080516020619693833981519152909101920190617d28565b506060820151611edf9060038301906013617da2565b505050806001019050611e48565b5050505b336110011480611f02575033612002145b611f1e5760405162461bcd60e51b8152600401610e72906188a5565b6001600160a01b03811660009081526004602052604090205480611f425750611f95565b6001810390506000600b8281548110611f5757fe5b600091825260209091206001601690920201015460ff169050611f7a8383615461565b8015611f835750805b15610e94576009805460001901905550505b50565b60015460609081906000805b82811015611feb5760018181548110611fb957fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611fe3576001909101905b600101611fa4565b50606081604051908082528060200260200182016040528015612018578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561205157816020015b606081526020019060019003908161203c5790505b50600b54600094509091508414156121cc5760005b848110156121c6576001818154811061207b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121be57600181815481106120ab57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106120d657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061210357fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561219b5780601f106121705761010080835404028352916020019161219b565b820191906000526020600020905b81548152906001019060200180831161217e57829003601f168201915b50505050508285815181106121ac57fe5b60209081029190910101526001909301925b600101612066565b50612268565b60005b8481101561226657600181815481106121e457fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661225e576001818154811061221457fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061223f57fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016121cf565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c54116122ab5760156122af565b600c545b905060606122bb613362565b905060606122c882616564565b9050828251116122df579094509250612270915050565b838383510310156122f1578282510393505b83156123275760c8430461230d83838388880360008a8a6166d2565b6123258383838888038989038a8b8b8b5103016166d2565b505b606083604051908082528060200260200182016040528015612353578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561238c57816020015b60608152602001906001900390816123775790505b50905060005b8581101561240d578481815181106123a657fe5b60200260200101518382815181106123ba57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106123e657fe5b60200260200101518282815181106123fa57fe5b6020908102919091010152600101612392565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b03811660009081526004602052604081205480612455576000915050611d7d565b600019016111c081611d82565b6001600160a01b0381166000908152600460205260408120548061248a576000915050611d7d565b60018082038154811061249957fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b601281815481106124ca57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561255b5780601f106125305761010080835404028352916020019161255b565b820191906000526020600020905b81548152906001019060200180831161253e57829003601f168201915b505050505081565b60105481565b6001818154811061257657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146126265760405162461bcd60e51b8152600401610e72906191c4565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f3890210160583838360405161265993929190619404565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6000601754600014156126965750600161269b565b506017545b90565b6001600160a01b038116600090815260046020526040812054806126d45760405162461bcd60e51b8152600401610e729061914c565b6000190192915050565b600b5461279c576126ed617cf9565b60015460005b8181101561279857600b8054600181018255600091909152835160008051602061967383398151915260169092029182019081556020808601516000805160206196b38339815191528401805460ff191691151591909117905560408601518051879461277493600080516020619693833981519152909101920190617d28565b50606082015161278a9060038301906013617da2565b5050508060010190506126f3565b5050505b6008546127a95760036008555b600a546127b6576002600a555b60006127c13361269e565b90506127cc81611cb3565b6127e85760405162461bcd60e51b8152600401610e7290618e52565b611f953382616829565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016194a86101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff1661286c5760405162461bcd60e51b8152600401610e729061886e565b336110071461288d5760405162461bcd60e51b8152600401610e7290618f49565b6128f784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506168c19050565b15612994576020811461291c5760405162461bcd60e51b8152600401610e7290619106565b604080516020601f840181900481028201810190925282815260009161295a9185858083850183828082843760009201919091525061691a92505050565b9050606481101580156129705750620186a08111155b61298c5760405162461bcd60e51b8152600401610e7290618cb3565b600255613300565b6129f484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506168c19050565b15612aa95760208114612a195760405162461bcd60e51b8152600401610e72906186f4565b604080516020601f8401819004810282018101909252828152600091612a579185858083850183828082843760009201919091525061691a92505050565b9050612710612a83601854612a77600f548561653f90919063ffffffff16565b9063ffffffff61653f16565b1115612aa15760405162461bcd60e51b8152600401610e7290618bd9565b600655613300565b612b1384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506168c19050565b15612bad5760208114612b385760405162461bcd60e51b8152600401610e729061872b565b604080516020601f8401819004810282018101909252828152600091612b769185858083850183828082843760009201919091525061691a92505050565b600c5490915080612b85575060155b808210612ba45760405162461bcd60e51b8152600401610e7290618afa565b50600855613300565b612c1684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506168c19050565b15612caf5760208114612c3b5760405162461bcd60e51b8152600401610e72906187f4565b604080516020601f8401819004810282018101909252828152600091612c799185858083850183828082843760009201919091525061691a92505050565b9050600081118015612c8b5750600a81105b612ca75760405162461bcd60e51b8152600401610e72906192a8565b600a55613300565b612d2384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506168c19050565b15612db25760208114612d485760405162461bcd60e51b8152600401610e72906187a8565b604080516020601f8401819004810282018101909252828152600091612d869185858083850183828082843760009201919091525061691a92505050565b9050600d54811115612daa5760405162461bcd60e51b8152600401610e7290618d29565b600e55613300565b612e1b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506168c19050565b15612e9d5760208114612e405760405162461bcd60e51b8152600401610e7290618f97565b604080516020601f8401819004810282018101909252828152600091612e7e9185858083850183828082843760009201919091525061691a92505050565b600d819055600e54909150811015612e9757600d54600e555b50613300565b612f0184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506168c19050565b15612faf5760208114612f265760405162461bcd60e51b8152600401610e7290618839565b604080516020601f8401819004810282018101909252828152600091612f649185858083850183828082843760009201919091525061691a92505050565b905060008111612f865760405162461bcd60e51b8152600401610e72906189a2565b6064811115612fa75760405162461bcd60e51b8152600401610e72906189ea565b600c55613300565b61301b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601581527473797374656d52657761726442617365526174696f60581b602082015291506168c19050565b156130c457602081146130405760405162461bcd60e51b8152600401610e7290619260565b604080516020601f840181900481028201810190925282815260009161307e9185858083850183828082843760009201919091525061691a92505050565b905061271061309e601854612a776006548561653f90919063ffffffff16565b11156130bc5760405162461bcd60e51b8152600401610e7290618913565b600f55613300565b61313884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f73797374656d526577617264416e74694d4556526174696f0000000000000000602082015291506168c19050565b156131e1576020811461315d5760405162461bcd60e51b8152600401610e7290618c68565b604080516020601f840181900481028201810190925282815260009161319b9185858083850183828082843760009201919091525061691a92505050565b90506127106131bb600f54612a776006548561653f90919063ffffffff16565b11156131d95760405162461bcd60e51b8152600401610e7290618dc3565b601855613300565b61324284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a8152690e8eae4dc98cadccee8d60b31b602082015291506168c19050565b156132e857602081146132675760405162461bcd60e51b8152600401610e7290618b57565b604080516020601f84018190048102820181019092528281526000916132a59185858083850183828082843760009201919091525061691a92505050565b9050600381101580156132b9575060098111155b806132c45750806001145b6132e05760405162461bcd60e51b8152600401610e7290619080565b601755613300565b60405162461bcd60e51b8152600401610e7290619305565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161333594939291906186c2565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156133915761337d81611d82565b15613389578160010191505b60010161336c565b506060816040519080825280602002602001820160405280156133be578160200160208202803683370190505b5090506000915060005b83811015613445576133d981611d82565b1561343d57600181815481106133eb57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061341657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016133c8565b509250505090565b601581565b61027181565b61100281565b60175481565b601381815481106124ca57fe5b60185481565b6000613481613362565b519050600080600c541161349657601561349a565b600c545b9050808211156134a8578091505b816134b257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff16156134f75760405162461bcd60e51b8152600401610e7290619049565b6134ff617dcf565b6000613525604051806101e001604052806101ab81526020016194a86101ab9139614082565b91509150806135465760405162461bcd60e51b8152600401610e7290619183565b60005b82602001515181101561366b5760018360200151828151811061356857fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061363e57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613549565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156137925761377a85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506013805490925085915081106136e257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156137705780601f1061374557610100808354040283529160200191613770565b820191906000526020600020905b81548152906001019060200180831161375357829003601f168201915b505050505061691f565b1561378a57600192505050611e2d565b600101613691565b5060125460005b81811015613803576137ea86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506012805490925085915081106136e257fe5b156137fb5760019350505050611e2d565b600101613799565b50600095945050505050565b33611001146138305760405162461bcd60e51b8152600401610e729061932c565b600b546138ee5761383f617cf9565b60015460005b818110156138ea57600b8054600181018255600091909152835160008051602061967383398151915260169092029182019081556020808601516000805160206196b38339815191528401805460ff19169115159190911790556040860151805187946138c693600080516020619693833981519152909101920190617d28565b5060608201516138dc9060038301906013617da2565b505050806001019050613845565b5050505b60006138f982616983565b905061390481611cb3565b15611966576119668282616829565b606581565b601181565b33411461393c5760405162461bcd60e51b8152600401610e7290619213565b60005460ff1661395e5760405162461bcd60e51b8152600401610e729061886e565b6000341161397e5760405162461bcd60e51b8152600401610e7290618cfa565b3a1561399c5760405162461bcd60e51b8152600401610e7290618f1b565b6001600160a01b03811660009081526004602052604090205460145434919060ff166139dc57610271600f556103e86006556014805460ff191660011790555b600f5460175460011080156139f357506000601854115b15613a18576001601754036017544381613a0957fe5b066018540281613a1557fe5b04015b600083118015613a285750600081115b15613ad5576000613a51612710613a45348563ffffffff616b0616565b9063ffffffff616b4016565b90508015613ad3576040516110029082156108fc029083906000818181858888f19350505050158015613a88573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051613ab891906193bb565b60405180910390a1613ad0848263ffffffff6164fd16565b93505b505b600083118015613ae757506000600654115b15613b8d576000613b09612710613a4560065434616b0690919063ffffffff16565b90508015613b8b5760405161dead9082156108fc029083906000818181858888f19350505050158015613b40573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051613b7091906193bb565b60405180910390a1613b88848263ffffffff6164fd16565b93505b505b8115613c8b576000600180840381548110613ba457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615613c1157846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051613c0491906193bb565b60405180910390a2613c85565b600354613c24908563ffffffff61653f16565b6003908155810154613c3c908563ffffffff61653f16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590613c7c9087906193bb565b60405180910390a25b50613ccd565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051613cc491906193bb565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110613cf257fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613d9d5780601f10613d7257610100808354040283529160200191613d9d565b820191906000526020600020905b815481529060010190602001808311613d8057829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613dbe575082155b80613dc95750600954155b15613dd65750600061407a565b60096000815460019003919050819055506000613e21600a54613a4586613a45600b8a81548110613e0357fe5b6000918252602090912060169091020154439063ffffffff6164fd16565b90506000600b8681548110613e3257fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613e9757600080fd5b505afa158015613eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ecf91906183bc565b915091506000935080831061403057613ee88888615461565b5060405163436aa28360e11b8152600090612002906386d5450690613f11908c906004016184f9565b60206040518083038186803b158015613f2957600080fd5b505afa158015613f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f619190618169565b6001600160a01b031614613fcf576040516328aa02b160e01b8152611001906328aa02b190613f98908b9087908a90600401618568565b600060405180830381600087803b158015613fb257600080fd5b505af1158015613fc6573d6000803e3d6000fd5b50505050614027565b6040516305bfb49960e41b815261100190635bfb499090613ff4908b906004016184f9565b600060405180830381600087803b15801561400e57600080fd5b505af1158015614022573d6000803e3d6000fd5b505050505b60019350614042565b8183106140425761404088616983565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b61408a617dcf565b6000614094617dcf565b61409c617e6c565b6140ad6140a886616b82565b616ba7565b90506000805b6140bc83616bf1565b1561423057806140e1576140d76140d284616c12565b616c60565b60ff168452614228565b80600114156142235760606140fd6140f885616c12565b616ce0565b9050805160405190808252806020026020018201604052801561413a57816020015b614127617df3565b81526020019060019003908161411f5790505b508560200181905250805160405190808252806020026020018201604052801561417857816020015b60608152602001906001900390816141635790505b50604086015260005b815181101561421857614192617df3565b606060006141b28585815181106141a557fe5b6020026020010151616db1565b925092509250806141d2578860009a509a50505050505050505050614239565b82896020015185815181106141e357fe5b602002602001018190525081896040015185815181106141ff57fe5b6020026020010181905250505050806001019050614181565b506001925050614228565b614230565b6001016140b3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161425857905050905061427e8363ffffffff16616ecb565b8160008151811061428b57fe5b60200260200101819052506111c081616ede565b60006064835111156142d6576000805160206196538339815191526040516142c690618a47565b60405180910390a1506066611e2d565b60005b83518110156143745760005b8181101561436b578481815181106142f957fe5b6020026020010151600001516001600160a01b031685838151811061431a57fe5b6020026020010151600001516001600160a01b031614156143635760008051602061965383398151915260405161435090618b8e565b60405180910390a1606692505050611e2d565b6001016142e5565b506001016142d9565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156144265760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161439c565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156144fb5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156144e75780601f106144bc576101008083540402835291602001916144e7565b820191906000526020600020905b8154815290600101906020018083116144ca57829003601f168201915b505050505081526020019060010190614450565b50505050905060005b82518110156145585782818151811061451957fe5b60200260200101516060015160030283828151811061453457fe5b60209081029190910101516001600160401b03909116606090910152600101614504565b5060608061456889898686616f68565b915091506145768282615824565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156145b5578160200160208202803683370190505b50905060005b828110156147465760006001600160a01b03166120026001600160a01b03166386d54506600184815481106145ec57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614627926001600160a01b0390921691016184f9565b60206040518083038186803b15801561463f57600080fd5b505afa158015614653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146779190618169565b6001600160a01b0316146146d957600182828151811061469357fe5b602002602001019060ff16908160ff1681525050600181815481106146b457fe5b9060005260206000209060040201600301546000146146d4578360010193505b61473e565b67016345785d8a0000600182815481106146ef57fe5b906000526020600020906004020160030154106147115784600101945061473e565b6001818154811061471e57fe5b90600052602060002090600402016003015460001461473e578360010193505b6001016145bb565b50606084604051908082528060200260200182016040528015614773578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156147a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156147d1578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614800578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614831578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614860578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156148a857600080fd5b505afa1580156148bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e091906183a4565b905067016345785d8a000081111561492c5760008051602061965383398151915260405161490d90619008565b60405180910390a160689e505050505050505050505050505050611e2d565b60005b8a811015614cc05789818151811061494357fe5b602002602001015160ff1660011415614a39576001818154811061496357fe5b906000526020600020906004020160030154600014614a34576001818154811061498957fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106149b457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106149e157fe5b906000526020600020906004020160030154838d815181106149ff57fe5b60200260200101818152505060018a8d81518110614a1957fe5b602002602001019060ff16908160ff16815250508b6001019b505b614cb8565b67016345785d8a000060018281548110614a4f57fe5b90600052602060002090600402016003015410614bd45760018181548110614a7357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e81518110614aa457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be40060018381548110614ad957fe5b90600052602060002090600402016003015481614af257fe5b0660018381548110614b0057fe5b906000526020600020906004020160030154039050614b2883826164fd90919063ffffffff16565b898f81518110614b3457fe5b60200260200101818152505060018281548110614b4d57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f81518110614b7e57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f81518110614bab57fe5b6020908102919091010152614bc6868263ffffffff61653f16565b95508d6001019d5050614cb8565b60018181548110614be157fe5b906000526020600020906004020160030154600014614cb85760018181548110614c0757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d81518110614c3857fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614c6557fe5b906000526020600020906004020160030154838d81518110614c8357fe5b60200260200101818152505060008a8d81518110614c9d57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161492f565b5060008415614f36576002546040516303702b2960e51b815261100491636e056520918891614cfa918e918e918d9142019060040161862a565b6020604051808303818588803b158015614d1357600080fd5b505af193505050508015614d44575060408051601f3d908101601f19168201909252614d41918101906182d1565b60015b614ebb576040516000815260443d1015614d6057506000614dfb565b60046000803e60005160e01c6308c379a08114614d81576000915050614dfb565b60043d036004833e81513d60248201116001600160401b0382111715614dac57600092505050614dfb565b80830180516001600160401b03811115614dcd576000945050505050614dfb565b8060208301013d8601811115614deb57600095505050505050614dfb565b601f01601f191660405250925050505b80614e065750614e48565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614e3a91906186af565b60405180910390a250614eb6565b3d808015614e72576040519150601f19603f3d011682016040523d82523d6000602084013e614e77565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614eac91906186af565b60405180910390a2505b614f36565b8015614efd577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614ef091906193bb565b60405180910390a1614f34565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614f2b90618771565b60405180910390a25b505b80156150ec5760005b87518110156150ea576000888281518110614f5657fe5b60200260200101519050600060018281548110614f6f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614fa057fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f193505050509050801561505c5760018281548110614fe157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061503057fe5b90600052602060002090600402016003015460405161504f91906193bb565b60405180910390a26150e0565b6001828154811061506957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d91859081106150b857fe5b9060005260206000209060040201600301546040516150d791906193bb565b60405180910390a25b5050600101614f3f565b505b8351156152e25760005b84518110156152e0578a818151811061510b57fe5b602002602001015160ff16600114156151aa576120026001600160a01b031663092193ab85838151811061513b57fe5b602002602001015187848151811061514f57fe5b60200260200101516040518363ffffffff1660e01b815260040161517391906184f9565b6000604051808303818588803b15801561518c57600080fd5b505af11580156151a0573d6000803e3d6000fd5b50505050506152d8565b60008582815181106151b857fe5b60200260200101516001600160a01b03166108fc8684815181106151d857fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561526e5785828151811061520e57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d86848151811061524c57fe5b602002602001015160405161526191906193bb565b60405180910390a26152d6565b85828151811061527a57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d8684815181106152b857fe5b60200260200101516040516152cd91906193bb565b60405180910390a25b505b6001016150f6565b505b5050505050505050505050505060005b60015481101561534f576001818154811061530957fe5b9060005260206000209060040201600301546000146153475760006001828154811061533157fe5b9060005260206000209060040201600301819055505b6001016152f2565b5047156153bd577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161538591906193bb565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156153bb573d6000803e3d6000fd5b505b600060038190556005558151156153d8576153d88282615d0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561541557600080fd5b505af1158015615429573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061547157fe5b9060005260206000209060040201600301549050600060018080549050039050600161549b613362565b51116154d0576000600185815481106154b057fe5b906000526020600020906004020160030181905550600092505050611e2d565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161550991906193bb565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156156f6576001816001018154811061554a57fe5b90600052602060002090600402016001828154811061556557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061562657fe5b9060005260206000209060160201600b828154811061564157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615698938386019390821615610100026000190190911604617e8c565b506156ab60038281019084016013617f01565b509050508060010160046000600184815481106156c457fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161552c565b50600180548061570257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061575557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906157876002830182617e28565b615795600383016000617f2b565b5050905560008183816157a457fe5b04905080156158185760015460005b81811015615815576157ec83600183815481106157cc57fe5b90600052602060002090600402016003015461653f90919063ffffffff16565b600182815481106157f957fe5b60009182526020909120600360049092020101556001016157b3565b50505b50600195945050505050565b606080600080808080615835613477565b6001549091505b8015615a6757600181039250600b838154811061585557fe5b600091825260209091206001601690920201015460ff1661587557615a5e565b6001838154811061588257fe5b600091825260208220600490910201546001600160a01b031695506158ac90869085908590613dad565b9350836158b857615a5e565b60405163436aa28360e11b81526000908190612002906386d54506906158e2908a906004016184f9565b60206040518083038186803b1580156158fa57600080fd5b505afa15801561590e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159329190618169565b90506001600160a01b038116156159bb576040516302ceee9160e11b81526120029063059ddd22906159689084906004016184f9565b60206040518083038186803b15801561598057600080fd5b505afa158015615994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159b89190618169565b91505b60005b8c51811015615a5a57876001600160a01b03168d82815181106159dd57fe5b6020026020010151600001516001600160a01b03161480615a265750826001600160a01b03168d8281518110615a0f57fe5b6020026020010151600001516001600160a01b0316145b15615a525760018d8281518110615a3957fe5b6020908102919091010151901515608090910152615a5a565b6001016159be565b5050505b6000190161583c565b5060005b8951811015615ad457898181518110615a8057fe5b60200260200101516080015180615ac0575060006001600160a01b03168a8281518110615aa957fe5b6020026020010151600001516001600160a01b0316145b15615acc578560010195505b600101615a6b565b5088518510615bbc5760408051600180825281830190925290816020015b615afa617df3565b815260200190600190039081615af2575050604080516001808252818301909252919850602082015b6060815260200190600190039081615b2357905050955088600081518110615b4757fe5b602002602001015187600081518110615b5c57fe5b602002602001018190525087600081518110615b7457fe5b602002602001015186600081518110615b8957fe5b6020026020010181905250600087600081518110615ba357fe5b6020908102919091010151901515608090910152615d01565b84895103604051908082528060200260200182016040528015615bf957816020015b615be6617df3565b815260200190600190039081615bde5790505b50965084895103604051908082528060200260200182016040528015615c3357816020015b6060815260200190600190039081615c1e5790505b5095506000915060005b8951811015615cff57898181518110615c5257fe5b602002602001015160800151158015615c95575060006001600160a01b03168a8281518110615c7d57fe5b6020026020010151600001516001600160a01b031614155b15615cf757898181518110615ca657fe5b6020026020010151888481518110615cba57fe5b6020026020010181905250888181518110615cd157fe5b6020026020010151878481518110615ce557fe5b60200260200101819052508260010192505b600101615c3d565b505b50505050505b9250929050565b600154825160005b82811015615e2b576001615d28617df3565b60018381548110615d3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615dff57878181518110615dc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615df75760009250615dff565b600101615db1565b508115615e215780516001600160a01b03166000908152600460205260408120555b5050600101615d16565b5080821115615eea57805b82811015615ee8576001805480615e4957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615e9c57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615ece6002830182617e28565b615edc600383016000617f2b565b50509055600101615e36565b505b6000818310615ef95781615efb565b825b905060005b8181101561629f57615fad868281518110615f1757fe5b602002602001015160018381548110615f2c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617334565b616161578060010160046000888481518110615fc557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061600157fe5b60200260200101516001828154811061601657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106160d157fe5b6020026020010151600b82815481106160e657fe5b9060005260206000209060160201600201908051906020019061610a929190617d28565b506000600b828154811061611a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061614b57fe5b6000918252602090912060169091020155616297565b85818151811061616d57fe5b6020026020010151606001516001828154811061618657fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555061624c8582815181106161ca57fe5b6020026020010151600b83815481106161df57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156137705780601f1061374557610100808354040283529160200191613770565b6162975784818151811061625c57fe5b6020026020010151600b828154811061627157fe5b90600052602060002090601602016002019080519060200190616295929190617d28565b505b600101615f00565b5082821115616477576162b0617cf9565b835b83811015616474578581815181106162c657fe5b6020026020010151826040018190525060018782815181106162e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206196738339815191528101918255858301516000805160206196b38339815191528201805491151560ff199092169190911790559285015180518694929361641a9360008051602061969383398151915201920190617d28565b5060608201516164309060038301906013617da2565b505050806001016004600089848151811061644757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016162b2565b50505b61647f617390565b616487617572565b6000600981905560015493505b838110156164f5576000600b82815481106164ab57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106164dc57fe5b6000918252602090912060169091020155600101616494565b505050505050565b60006111c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617760565b6000828201838110156111c05760405162461bcd60e51b8152600401610e72906188dc565b6001548151604080518281526020808402820101909152606092919083908280156165a357816020015b606081526020019060019003908161658e5790505b50600b5490915083146165ba579250611d7d915050565b60005b828110156166c957600b6001600460008985815181106165d957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061660d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156166a55780601f1061667a576101008083540402835291602001916166a5565b820191906000526020600020905b81548152906001019060200180831161668857829003601f168201915b50505050508282815181106166b657fe5b60209081029190910101526001016165bd565b50949350505050565b60005b8281101561681f57600082878388016040516020016166f59291906184eb565b6040516020818303038152906040528051906020012060001c8161671557fe5b06905080850182870114616816576000898388018151811061673357fe5b602002602001015190506060898489018151811061674d57fe5b602002602001015190508a8388018151811061676557fe5b60200260200101518b858a018151811061677b57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106167aa57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106167d857fe5b60200260200101518a858a01815181106167ee57fe5b6020026020010181905250808a8489018151811061680857fe5b602002602001018190525050505b506001016166d5565b5050505050505050565b600980546001908101909155600b80548390811061684357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061687957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016168d491906184cf565b60405160208183030381529060405280519060200120836040516020016168fb91906184cf565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461693b5760009250616979565b600160208701838101602088015b6002848385100114156169745780518351146169685760009650600093505b60209283019201616949565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806169ac57506000199050611d7d565b6001810390506000600182815481106169c157fe5b90600052602060002090600402016003015490506000600183815481106169e457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616a3d9085906193bb565b60405180910390a280616a5557829350505050611d7d565b6000818381616a6057fe5b0490508015616afc5760005b84811015616aae57616a8582600183815481106157cc57fe5b60018281548110616a9257fe5b6000918252602090912060036004909202010155600101616a6c565b50600180549085015b81811015616af957616ad083600183815481106157cc57fe5b60018281548110616add57fe5b6000918252602090912060036004909202010155600101616ab7565b50505b5091949350505050565b600082616b1557506000611e2d565b82820282848281616b2257fe5b04146111c05760405162461bcd60e51b8152600401610e7290618eda565b60006111c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061778c565b616b8a617f3a565b506040805180820190915281518152602082810190820152919050565b616baf617e6c565b616bb8826177c3565b616bc157600080fd5b6000616bd083602001516177fd565b60208085015160408051808201909152868152920190820152915050919050565b6000616bfb617f3a565b505080518051602091820151919092015191011190565b616c1a617f3a565b616c2382616bf1565b616c2c57600080fd5b60208201516000616c3c82617860565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590616c7557508151602110155b616c7e57600080fd5b6000616c8d83602001516177fd565b90508083600001511015616cb35760405162461bcd60e51b8152600401610e72906190cf565b8251602080850151830180519284900392918310156166c957506020919091036101000a90049392505050565b6060616ceb826177c3565b616cf457600080fd5b6000616cff83617941565b9050606081604051908082528060200260200182016040528015616d3d57816020015b616d2a617f3a565b815260200190600190039081616d225790505b5090506000616d4f85602001516177fd565b60208601510190506000805b84811015616da657616d6c83617860565b9150604051806040016040528083815260200184815250848281518110616d8f57fe5b602090810291909101015291810191600101616d5b565b509195945050505050565b616db9617df3565b60606000616dc5617df3565b6060616dcf617e6c565b616dd887616ba7565b90506000805b616de783616bf1565b15616ebc5780616e1257616e02616dfd84616c12565b61799d565b6001600160a01b03168552616eb4565b8060011415616e3a57616e27616dfd84616c12565b6001600160a01b03166020860152616eb4565b8060021415616e6257616e4f616dfd84616c12565b6001600160a01b03166040860152616eb4565b8060031415616e8e57616e776140d284616c12565b6001600160401b0316606086015260019150616eb4565b8060041415616eaf57616ea8616ea384616c12565b6179b7565b9350616eb4565b616ebc565b600101616dde565b50929791965091945092505050565b6060611e2d616ed983617a27565b617b0d565b6060815160001415616eff5750604080516000815260208101909152611d7d565b606082600081518110616f0e57fe5b602002602001015190506000600190505b8351811015616f4f57616f4582858381518110616f3857fe5b6020026020010151617b5f565b9150600101616f1f565b506111c0616f62825160c060ff16617bdc565b82617b5f565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616fa857600080fd5b505afa158015616fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616fe091906183a4565b90508085518851011015616ff5575083518651015b60608160405190808252806020026020018201604052801561703157816020015b61701e617df3565b8152602001906001900390816170165790505b50905060608260405190808252806020026020018201604052801561706a57816020015b60608152602001906001900390816170555790505b50905060008060005b8b518310806170825750895182105b801561708d57508581105b15617322578b518314156170fd578982815181106170a757fe5b60200260200101518582815181106170bb57fe5b60200260200101819052508882815181106170d257fe5b60200260200101518482815181106170e657fe5b602090810291909101015260019182019101617073565b8951821415617168578b838151811061711257fe5b602002602001015185828151811061712657fe5b60200260200101819052508a838151811061713d57fe5b602002602001015184828151811061715157fe5b602090810291909101015260019283019201617073565b89828151811061717457fe5b6020026020010151606001516001600160401b03168c848151811061719557fe5b6020026020010151606001516001600160401b03161115617211578b83815181106171bc57fe5b60200260200101518582815181106171d057fe5b60200260200101819052508a83815181106171e757fe5b60200260200101518482815181106171fb57fe5b602002602001018190525082600101925061731a565b89828151811061721d57fe5b6020026020010151606001516001600160401b03168c848151811061723e57fe5b6020026020010151606001516001600160401b031610156172ba5789828151811061726557fe5b602002602001015185828151811061727957fe5b602002602001018190525088828151811061729057fe5b60200260200101518482815181106172a457fe5b602002602001018190525081600101915061731a565b8982815181106172c657fe5b6020026020010151600001516001600160a01b03168c84815181106172e757fe5b6020026020010151600001516001600160a01b0316101561730e578b83815181106171bc57fe5b8982815181106170a757fe5b600101617073565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561736e575081602001516001600160a01b031683602001516001600160a01b0316145b80156111c05750506040908101519101516001600160a01b0390811691161490565b601254601354808211156173db57805b828110156173d95760128054806173b357fe5b6001900381819060005260206000200160006173cf9190617e28565b90556001016173a0565b505b60008183106173ea57816173ec565b825b905060005b81811015617504576174a96012828154811061740957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156174975780601f1061746c57610100808354040283529160200191617497565b820191906000526020600020905b81548152906001019060200180831161747a57829003601f168201915b5050505050601383815481106136e257fe5b6174fc57601381815481106174ba57fe5b90600052602060002001601282815481106174d157fe5b9060005260206000200190805460018160011615610100020316600290046174fa929190617e8c565b505b6001016173f1565b5082821115610e9457825b82811015613ccd5760126013828154811061752657fe5b6000918252602080832084546001818101875595855291909320929091018054617569949390920192909160026101009282161592909202600019011604617e8c565b5060010161750f565b601354600b54808211156175bd57805b828110156175bb57601380548061759557fe5b6001900381819060005260206000200160006175b19190617e28565b9055600101617582565b505b60008183106175cc57816175ce565b825b905060005b818110156176ed5761768b601382815481106175eb57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156176795780601f1061764e57610100808354040283529160200191617679565b820191906000526020600020905b81548152906001019060200180831161765c57829003601f168201915b5050505050600b83815481106161df57fe5b6176e557600b818154811061769c57fe5b9060005260206000209060160201600201601382815481106176ba57fe5b9060005260206000200190805460018160011615610100020316600290046176e3929190617e8c565b505b6001016175d3565b5082821115610e9457825b82811015613ccd576013600b828154811061770f57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461775795939094019390926000199082161561010002011604617e8c565b506001016176f8565b600081848411156177845760405162461bcd60e51b8152600401610e7291906186af565b505050900390565b600081836177ad5760405162461bcd60e51b8152600401610e7291906186af565b5060008385816177b957fe5b0495945050505050565b80516000906177d457506000611d7d565b6020820151805160001a9060c08210156177f357600092505050611d7d565b5060019392505050565b8051600090811a6080811015617817576000915050611d7d565b60b8811080617832575060c08110801590617832575060f881105b15617841576001915050611d7d565b60c08110156178555760b519019050611d7d565b60f519019050611d7d565b80516000908190811a608081101561787b576001915061793a565b60b881101561789057607e198101915061793a565b60c08110156178e157600060b78203600186019550806020036101000a8651049150600181018201935050808310156178db5760405162461bcd60e51b8152600401610e7290618d98565b5061793a565b60f88110156178f65760be198101915061793a565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156179385760405162461bcd60e51b8152600401610e7290618d98565b505b5092915050565b805160009061795257506000611d7d565b6000809050600061796684602001516177fd565b602085015185519181019250015b808210156179945761798582617860565b82019150826001019250617974565b50909392505050565b80516000906015146179ae57600080fd5b611e2d82616c60565b80516060906179c557600080fd5b60006179d483602001516177fd565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617a0b576020820181803683370190505b50905060008160200190506166c9848760200151018285617cae565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416617a6b57506018617a8f565b6fffffffffffffffffffffffffffffffff198416617a8b57506010617a8f565b5060005b6020811015617ac557818181518110617aa457fe5b01602001516001600160f81b03191615617abd57617ac5565b600101617a8f565b60008160200390506060816040519080825280601f01601f191660200182016040528015617afa576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015617b3f5750607f60f81b82600081518110617b2d57fe5b01602001516001600160f81b03191611155b15617b4b575080611d7d565b611e2d617b5d8351608060ff16617bdc565b835b6060806040519050835180825260208201818101602087015b81831015617b90578051835260209283019201617b78565b50855184518101855292509050808201602086015b81831015617bbd578051835260209283019201617ba5565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310617c065760405162461bcd60e51b8152600401610e7290618ad2565b60408051600180825281830190925260609160208201818036833701905050905060378411617c605782840160f81b81600081518110617c4257fe5b60200101906001600160f81b031916908160001a9053509050611e2d565b6060617c6b85617a27565b90508381510160370160f81b82600081518110617c8457fe5b60200101906001600160f81b031916908160001a905350617ca58282617b5f565b95945050505050565b80617cb857610e94565b5b60208110617cd8578251825260209283019290910190601f1901617cb9565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617d23617f54565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617d6957805160ff1916838001178555617d96565b82800160010185558215617d96579182015b82811115617d96578251825591602001919060010190617d7b565b506134b2929150617f73565b8260138101928215617d965791602002820182811115617d96578251825591602001919060010190617d7b565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617e4e5750611f95565b601f016020900490600052602060002090810190611f959190617f73565b6040518060400160405280617e7f617f3a565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617ec55780548555617d96565b82800160010185558215617d9657600052602060002091601f016020900482015b82811115617d96578254825591600101919060010190617ee6565b8260138101928215617d965791820182811115617d96578254825591600101919060010190617ee6565b50611f95906013810190617f73565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269b91905b808211156134b25760008155600101617f79565b8035611e2d81619492565b60008083601f840112617fa9578182fd5b5081356001600160401b03811115617fbf578182fd5b6020830191508360208083028501011115615d0757600080fd5b6000601f8381840112617fea578182fd5b8235617ffd617ff882619447565b619421565b818152925060208084019085810160005b8481101561808f578135880189603f82011261802957600080fd5b838101356001600160401b0381111561804157600080fd5b618052818901601f19168601619421565b81815260408c8184860101111561806857600080fd5b8281850188840137506000918101860191909152855250928201929082019060010161800e565b50505050505092915050565b600082601f8301126180ab578081fd5b81356180b9617ff882619447565b8181529150602080830190848101818402860182018710156180da57600080fd5b6000805b8581101561808f5782356001600160401b03811681146180fc578283fd5b855293830193918301916001016180de565b60008083601f84011261811f578182fd5b5081356001600160401b03811115618135578182fd5b602083019150836020828501011115615d0757600080fd5b60006020828403121561815e578081fd5b81356111c081619492565b60006020828403121561817a578081fd5b81516111c081619492565b6000806000806040858703121561819a578283fd5b84356001600160401b03808211156181b0578485fd5b6181bc88838901617f98565b909650945060208701359150808211156181d4578384fd5b506181e187828801617f98565b95989497509550505050565b600080600060608486031215618201578283fd5b83356001600160401b0380821115618217578485fd5b81860187601f820112618228578586fd5b80359250618238617ff884619447565b80848252602080830192508084018b82838902870101111561825857898afd5b8994505b868510156182825761826e8c82617f8d565b84526001949094019392810192810161825c565b509097508801359350505080821115618299578384fd5b6182a58783880161809b565b935060408601359150808211156182ba578283fd5b506182c786828701617fd9565b9150509250925092565b6000602082840312156182e2578081fd5b815180151581146111c0578182fd5b60008060208385031215618303578182fd5b82356001600160401b03811115618318578283fd5b6183248582860161810e565b90969095509350505050565b60008060008060408587031215618345578384fd5b84356001600160401b038082111561835b578586fd5b6183678883890161810e565b9096509450602087013591508082111561837f578384fd5b506181e18782880161810e565b60006020828403121561839d578081fd5b5035919050565b6000602082840312156183b5578081fd5b5051919050565b600080604083850312156183ce578182fd5b505080516020909101519092909150565b6000806000604084860312156183f3578081fd5b833560ff81168114618403578182fd5b925060208401356001600160401b0381111561841d578182fd5b6184298682870161810e565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561846e5781516001600160a01b031687529582019590820190600101618449565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526184bb816020860160208601619466565b601f01601f19169290920160200192915050565b600082516184e1818460208701619466565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082526111c06020830184618436565b6000604082526185cd6040830185618436565b602083820381850152818551808452828401915082838202850101838801865b8381101561861b57601f198784030185526186098383516184a3565b948601949250908501906001016185ed565b50909998505050505050505050565b60006080825261863d6080830187618436565b828103602084810191909152865180835287820192820190845b8181101561867357845183529383019391830191600101618657565b505084810360408601526186878188618436565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b6000602082526111c060208301846184a3565b6000604082526186d6604083018688618479565b82810360208401526186e9818587618479565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526063908201527f7468652073797374656d52657761726442617365526174696f20706c7573206260408201527f75726e526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252601d908201527f6c656e677468206f66207475726e4c656e677468206d69736d61746368000000604082015260600190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526063908201527f746865206275726e526174696f20706c75732073797374656d5265776172644260408201527f617365526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b6020808252602b908201527f6c656e677468206f662073797374656d526577617264416e74694d455652617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526063908201527f7468652073797374656d526577617264416e74694d4556526174696f20706c7560408201527f73206275726e526174696f20616e642073797374656d5265776172644261736560608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252602f908201527f746865207475726e4c656e6774682073686f756c6420626520696e205b332c3960408201526e5d206f7220657175616c20746f203160881b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526028908201527f6c656e677468206f662073797374656d52657761726442617365526174696f206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152617ca560608301846184a3565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152617ca5604083018486618479565b6040518181016001600160401b038111828210171561943f57600080fd5b604052919050565b60006001600160401b0382111561945c578081fd5b5060209081020190565b60005b83811015619481578181015183820152602001619469565b83811115613ccd5750506000910152565b6001600160a01b0381168114611f9557600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/bohr/mainnet/StakeHubContract b/core/systemcontracts/bohr/mainnet/StakeHubContract new file mode 100644 index 0000000000..4a47fc66ec --- /dev/null +++ b/core/systemcontracts/bohr/mainnet/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003ff5760003560e01c80638456cb59116200020f578063cbb04d9d1162000123578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000c98578063fb50b31f1462000cbd578063fc0c5ff11462000ce2578063ff69ab611462000cfa57600080fd5b8063e992aaf51462000c15578063efdbf0e11462000c2d578063f1f74d841462000c69578063f1fad1041462000c8157600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000ba8578063daacdb661462000bc0578063dbda7fb31462000bd8578063e8f67c3b1462000bfd57600080fd5b8063cbb04d9d1462000b04578063d115a2061462000b45578063d6ca429d1462000b5e578063d7c2dfc81462000b8357600080fd5b8063ac43175111620001a5578063bff02e201162000170578063bff02e201462000a91578063c38fbec81462000ac7578063c473318f1462000aec578063c8509d8114620008e557600080fd5b8063ac4317511462000a0f578063b187bd261462000a34578063baa7199e1462000a54578063bdceadf31462000a7957600080fd5b80638cd22b2211620001e65780638cd22b22146200097a578063982ef0a7146200099f578063a43569b314620009b6578063aad3ec9614620009ea57600080fd5b80638456cb59146200090a57806386d5450614620009225780638a4d3fa8146200095c57600080fd5b806349f41a42116200031357806364028fbd116200029d57806375cc7d89116200026857806375cc7d89146200089057806376e7d6d614620008b55780638129fc1c14620008cd578063831d65d114620008e557600080fd5b806364028fbd14620007cb578063663706d314620007e25780636ec01b2714620008135780636f8e2fa4146200086b57600080fd5b80634e6fd6c411620002de5780634e6fd6c4146200073257806359491871146200074a5780635e7cc1c9146200076f57806363a036b5146200079457600080fd5b806349f41a4214620006995780634a49ac4c14620006be5780634bf6c88214620006e35780634d99dd16146200070d57600080fd5b80631fa8882b1162000395578063417c73a71162000360578063417c73a714620005e5578063449ecfe6146200060a57806345211bfd146200062f5780634838d165146200065457600080fd5b80631fa8882b14620005555780632b727c86146200056e5780632e8e8c7114620005935780633840998814620005cd57600080fd5b8063092193ab11620003d6578063092193ab14620004a05780630e9fbf5114620004b75780631182b87514620004dc57806317b4f353146200051057600080fd5b8063046f7da2146200041f578063059ddd2214620004375780630661806e146200047957600080fd5b366200041a5760345460ff166001146200041857600080fd5b005b600080fd5b3480156200042c57600080fd5b506200041862000d12565b3480156200044457600080fd5b506200045c62000456366004620098e3565b62000da4565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200048657600080fd5b506200049160365481565b60405190815260200162000470565b62000418620004b1366004620098e3565b620011cc565b348015620004c457600080fd5b5062000418620004d636600462009947565b6200181d565b348015620004e957600080fd5b5062000501620004fb3660046200998c565b62001b49565b60405162000470919062009a3f565b3480156200051d57600080fd5b506200045c6200052f36600462009b35565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200056257600080fd5b50620004916201518081565b3480156200057b57600080fd5b506200045c6200058d366004620098e3565b62001ebc565b348015620005a057600080fd5b506200045c620005b2366004620098e3565b604d602052600090815260409020546001600160a01b031681565b348015620005da57600080fd5b506200049160375481565b348015620005f257600080fd5b506200041862000604366004620098e3565b62001f11565b3480156200061757600080fd5b506200041862000629366004620098e3565b62001f93565b3480156200063c57600080fd5b50620004186200064e366004620098e3565b62002178565b3480156200066157600080fd5b506200068862000673366004620098e3565b60016020526000908152604090205460ff1681565b604051901515815260200162000470565b348015620006a657600080fd5b5062000418620006b8366004620098e3565b62002377565b348015620006cb57600080fd5b5062000418620006dd366004620098e3565b62002558565b348015620006f057600080fd5b50620006fa600881565b60405160ff909116815260200162000470565b3480156200071a57600080fd5b50620004186200072c36600462009b8a565b620025d4565b3480156200073f57600080fd5b506200045c61dead81565b3480156200075757600080fd5b50620004186200076936600462009bc8565b62002c04565b3480156200077c57600080fd5b50620004186200078e36600462009c38565b620039fd565b348015620007a157600080fd5b50620007b9620007b336600462009c58565b62003c27565b60405162000470949392919062009cc1565b62000418620007dc36600462009d7d565b620042cc565b348015620007ef57600080fd5b506200049162000801366004620098e3565b60446020526000908152604090205481565b3480156200082057600080fd5b506200083862000832366004620098e3565b62004950565b6040805182516001600160401b039081168252602080850151821690830152928201519092169082015260600162000470565b3480156200087857600080fd5b50620005016200088a366004620098e3565b620049f5565b3480156200089d57600080fd5b5062000418620008af366004620098e3565b62004e21565b348015620008c257600080fd5b5062000491603d5481565b348015620008da57600080fd5b506200041862004ff3565b348015620008f257600080fd5b5062000418620009043660046200998c565b6200530a565b3480156200091757600080fd5b506200041862005374565b3480156200092f57600080fd5b506200045c62000941366004620098e3565b6043602052600090815260409020546001600160a01b031681565b3480156200096957600080fd5b5062000491670de0b6b3a764000081565b3480156200098757600080fd5b50620004916200099936600462009b8a565b6200540c565b62000418620009b036600462009e55565b620054c5565b348015620009c357600080fd5b50620009db620009d5366004620098e3565b62005b62565b60405162000470919062009e93565b348015620009f757600080fd5b506200041862000a0936600462009b8a565b62005e4f565b34801562000a1c57600080fd5b506200041862000a2e36600462009f10565b62005ebc565b34801562000a4157600080fd5b5060005462010000900460ff1662000688565b34801562000a6157600080fd5b506200041862000a7336600462009fc9565b62006d5b565b34801562000a8657600080fd5b5062000491603c5481565b34801562000a9e57600080fd5b5062000ab662000ab036600462009c58565b62006f28565b60405162000470939291906200a025565b34801562000ad457600080fd5b506200041862000ae6366004620098e3565b62007104565b34801562000af957600080fd5b506200049160385481565b34801562000b1157600080fd5b5062000b2962000b23366004620098e3565b620073c6565b6040805193845291151560208401529082015260600162000470565b34801562000b5257600080fd5b5062000491620186a081565b34801562000b6b57600080fd5b506200041862000b7d3660046200a082565b62007809565b34801562000b9057600080fd5b506200041862000ba23660046200a16b565b62007a2f565b34801562000bb557600080fd5b5062000491603b5481565b34801562000bcd57600080fd5b506200049160495481565b34801562000be557600080fd5b506200045c62000bf7366004620098e3565b62007b25565b34801562000c0a57600080fd5b506200049160355481565b34801562000c2257600080fd5b5062000491603a5481565b34801562000c3a57600080fd5b506200049162000c4c36600462009b35565b805160208183018101805160468252928201919093012091525481565b34801562000c7657600080fd5b5062000491603e5481565b34801562000c8e57600080fd5b50620006fa601181565b34801562000ca557600080fd5b506200049162000cb736600462009b8a565b62007f4f565b34801562000cca57600080fd5b506200041862000cdc36600462009f10565b62007fc0565b34801562000cef57600080fd5b506200049160395481565b34801562000d0757600080fd5b5062000491604a5481565b600054630100000090046001600160a01b0316331462000d45576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000d6f57604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000e0f906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3d906200a1d1565b801562000e8e5780601f1062000e625761010080835404028352916020019162000e8e565b820191906000526020600020905b81548152906001019060200180831162000e7057829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000eb9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462000ee7906200a1d1565b801562000f385780601f1062000f0c5761010080835404028352916020019162000f38565b820191906000526020600020905b81548152906001019060200180831162000f1a57829003601f168201915b5050505050815260200160018201805462000f53906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462000f81906200a1d1565b801562000fd25780601f1062000fa65761010080835404028352916020019162000fd2565b820191906000526020600020905b81548152906001019060200180831162000fb457829003601f168201915b5050505050815260200160028201805462000fed906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200101b906200a1d1565b80156200106c5780601f1062001040576101008083540402835291602001916200106c565b820191906000526020600020905b8154815290600101906020018083116200104e57829003601f168201915b5050505050815260200160038201805462001087906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620010b5906200a1d1565b8015620011065780601f10620010da5761010080835404028352916020019162001106565b820191906000526020600020905b815481529060010190602001808311620010e857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620011a5575050509190925250509051949350505050565b3361100014620011f857604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b0380821660009081526043602090815260408083205484168084526041835281842082516101808101845281548716815260018201548716948101949094526002810154909516918301919091526003840154606083015260048401805491949160808401919062001271906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200129f906200a1d1565b8015620012f05780601f10620012c457610100808354040283529160200191620012f0565b820191906000526020600020905b815481529060010190602001808311620012d257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200131b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462001349906200a1d1565b80156200139a5780601f106200136e576101008083540402835291602001916200139a565b820191906000526020600020905b8154815290600101906020018083116200137c57829003601f168201915b50505050508152602001600182018054620013b5906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013e3906200a1d1565b8015620014345780601f10620014085761010080835404028352916020019162001434565b820191906000526020600020905b8154815290600101906020018083116200141657829003601f168201915b505050505081526020016002820180546200144f906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200147d906200a1d1565b8015620014ce5780601f10620014a257610100808354040283529160200191620014ce565b820191906000526020600020905b815481529060010190602001808311620014b057829003601f168201915b50505050508152602001600382018054620014e9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462001517906200a1d1565b8015620015685780601f106200153c5761010080835404028352916020019162001568565b820191906000526020600020905b8154815290600101906020018083116200154a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162001607575050509190925250505060408101519091506001600160a01b031615806200164457508060e001515b156200170157604051611002903490600081818185875af1925050503d80600081146200168e576040519150601f19603f3d011682016040523d82523d6000602084013e62001693565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016f49060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200175857600080fd5b505af11580156200176d573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620017ae91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017e3919086906004016200a207565b600060405180830381600087803b158015620017fe57600080fd5b505af115801562001813573d6000803e3d6000fd5b5050505050505b50565b33611001146200184557604051630f22c43960e41b81526110016004820152602401620011ef565b60005462010000900460ff16156200187057604051631785c68160e01b815260040160405180910390fd5b600060458383604051620018869291906200a221565b908152604051908190036020019020546001600160a01b03169050620018ae603f826200822a565b620018cc5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038116600090815260416020526040812090620018f462015180426200a247565b604a546000828152604b602052604090205491925011620019285760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b60205260408120805460019290620019499084906200a26a565b90915550506040516046906200196390879087906200a221565b908152602001604051809103902054600014158015620019b45750426201518060468787604051620019979291906200a221565b908152602001604051809103902054620019b291906200a26a565b105b15620019d357604051631898eb6b60e01b815260040160405180910390fd5b600080620019e38560026200824d565b915091508162001a0657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562001a59573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a7f91906200a280565b905062001a8d8583620082d7565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600260405162001acd939291906200a2b0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001b0b916001600160a01b0316908a906004016200a207565b600060405180830381600087803b15801562001b2657600080fd5b505af115801562001b3b573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001b7357604051630f22c43960e41b81526120006004820152602401620011ef565b60005462010000900460ff161562001b9e57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001bef9187908790819084018382808284376000920191909152506200849e92505050565b915091508062001c125760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001c38575050604080516000815260208101909152905062001eab565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001c689160040190815260200190565b6020604051808303816000875af115801562001c88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cae91906200a2df565b90508062001d555782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001d0a9291906200a2ff565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001eab95505050505050565b600062001d628462008601565b9050600081600481111562001d7b5762001d7b6200a29a565b0362001d9d575050604080516000815260208101909152925062001eab915050565b6040516000906110049047908381818185875af1925050503d806000811462001de3576040519150601f19603f3d011682016040523d82523d6000602084013e62001de8565b606091505b505090508062001e0b576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001e5e9291906200a2ff565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001eab975050505050505050565b6034805460ff191690559392505050565b60008162001ecc603f826200822a565b62001eea5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038084166000908152604160205260409020600d01541691505b50919050565b600054630100000090046001600160a01b0316331462001f44576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001fbe57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ff05760405163b1d02c3d60e01b815260040160405180910390fd5b8062001ffe603f826200822a565b6200201c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff166200205a57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa158015620020aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020d091906200a280565b1015620020f0576040516317b204bf60e11b815260040160405180910390fd5b4281600b01541115620021165760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200213a9084906200a326565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff1615620021a357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620021d55760405163b1d02c3d60e01b815260040160405180910390fd5b620021df62008c6a565b620021ec603f826200822a565b6200220a5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200223257604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200227357506001600160a01b03821660009081526047602052604090205460ff165b156200229257604051631e6f587560e11b815260040160405180910390fd5b60006200229e62008c6a565b6001600160a01b0381166000908152604160205260409020600c810154919250904290620022d19062015180906200a26a565b1115620022f157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b3362002385603f826200822a565b620023a35760405163056e881160e01b815260040160405180910390fd5b60005462010000900460ff1615620023ce57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620024005760405163b1d02c3d60e01b815260040160405180910390fd5b6001600160a01b038281166000908152604d602052604090205416156200243a5760405163bebdc75760e01b815260040160405180910390fd5b62002447603f836200822a565b15620024665760405163bebdc75760e01b815260040160405180910390fd5b336000818152604160205260409020600d01546001600160a01b039081169084168103620024a75760405163bebdc75760e01b815260040160405180910390fd5b6001600160a01b03811615620024de576001600160a01b0381166000908152604d6020526040902080546001600160a01b03191690555b6001600160a01b038083166000818152604160209081526040808320600d018054868b166001600160a01b03199182168117909255818552604d90935281842080549093168517909255519093851692917fcbb728765de145e99c00e8ae32a325231e850359b7b8a6da3b84d672ab3f1d0a91a450505050565b600054630100000090046001600160a01b031633146200258b576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620025ff57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620026315760405163b1d02c3d60e01b815260040160405180910390fd5b816200263f603f826200822a565b6200265d5760405163056e881160e01b815260040160405180910390fd5b816000036200267f57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620026e7906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002715906200a1d1565b8015620027665780601f106200273a5761010080835404028352916020019162002766565b820191906000526020600020905b8154815290600101906020018083116200274857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002791906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620027bf906200a1d1565b8015620028105780601f10620027e45761010080835404028352916020019162002810565b820191906000526020600020905b815481529060010190602001808311620027f257829003601f168201915b505050505081526020016001820180546200282b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002859906200a1d1565b8015620028aa5780601f106200287e57610100808354040283529160200191620028aa565b820191906000526020600020905b8154815290600101906020018083116200288c57829003601f168201915b50505050508152602001600282018054620028c5906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620028f3906200a1d1565b8015620029445780601f10620029185761010080835404028352916020019162002944565b820191906000526020600020905b8154815290600101906020018083116200292657829003601f168201915b505050505081526020016003820180546200295f906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200298d906200a1d1565b8015620029de5780601f10620029b257610100808354040283529160200191620029de565b820191906000526020600020905b815481529060010190602001808311620029c057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162002a7d575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002af7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b1d91906200a280565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002b6e929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b03160362002b9b5762002b9b8662008cab565b6040808301519051633041949b60e01b815261200591633041949b9162002bc8919087906004016200a207565b600060405180830381600087803b15801562002be357600080fd5b505af115801562002bf8573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff161562002c2f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562002c615760405163b1d02c3d60e01b815260040160405180910390fd5b8362002c6f603f826200822a565b62002c8d5760405163056e881160e01b815260040160405180910390fd5b8362002c9b603f826200822a565b62002cb95760405163056e881160e01b815260040160405180910390fd5b6034805460ff19166001179055600084900362002ce957604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b03160362002d1c5760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002d84906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002db2906200a1d1565b801562002e035780601f1062002dd75761010080835404028352916020019162002e03565b820191906000526020600020905b81548152906001019060200180831162002de557829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e2e906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002e5c906200a1d1565b801562002ead5780601f1062002e815761010080835404028352916020019162002ead565b820191906000526020600020905b81548152906001019060200180831162002e8f57829003601f168201915b5050505050815260200160018201805462002ec8906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002ef6906200a1d1565b801562002f475780601f1062002f1b5761010080835404028352916020019162002f47565b820191906000526020600020905b81548152906001019060200180831162002f2957829003601f168201915b5050505050815260200160028201805462002f62906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462002f90906200a1d1565b801562002fe15780601f1062002fb55761010080835404028352916020019162002fe1565b820191906000526020600020905b81548152906001019060200180831162002fc357829003601f168201915b5050505050815260200160038201805462002ffc906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200302a906200a1d1565b80156200307b5780601f106200304f576101008083540402835291602001916200307b565b820191906000526020600020905b8154815290600101906020018083116200305d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200311a57505050919092525050506001600160a01b03808916600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620031a5906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620031d3906200a1d1565b8015620032245780601f10620031f85761010080835404028352916020019162003224565b820191906000526020600020905b8154815290600101906020018083116200320657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200324f906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200327d906200a1d1565b8015620032ce5780601f10620032a257610100808354040283529160200191620032ce565b820191906000526020600020905b815481529060010190602001808311620032b057829003601f168201915b50505050508152602001600182018054620032e9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003317906200a1d1565b8015620033685780601f106200333c5761010080835404028352916020019162003368565b820191906000526020600020905b8154815290600101906020018083116200334a57829003601f168201915b5050505050815260200160028201805462003383906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620033b1906200a1d1565b8015620034025780601f10620033d65761010080835404028352916020019162003402565b820191906000526020600020905b815481529060010190602001808311620033e457829003601f168201915b505050505081526020016003820180546200341d906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200344b906200a1d1565b80156200349c5780601f1062003470576101008083540402835291602001916200349c565b820191906000526020600020905b8154815290600101906020018083116200347e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200353b5750505050508152505090508060e0015180156200357e5750876001600160a01b0316836001600160a01b031614155b156200359d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620035f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200361a91906200a280565b9050603754811015620036405760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620036d557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620036ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036d391906200a280565b105b15620036f4576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a54836200370a91906200a33c565b6200371691906200a247565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200376b576040519150601f19603f3d011682016040523d82523d6000602084013e62003770565b606091505b505090508062003793576040516312171d8360e31b815260040160405180910390fd5b6200379f82846200a326565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620037f5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200381c91906200a280565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003881939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620038c557620038c56200a356565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200390057620039006200a356565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620039419084908c906004016200a36c565b600060405180830381600087803b1580156200395c57600080fd5b505af115801562003971573d6000803e3d6000fd5b505050508a15620039e3576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620039ae9291906200a207565b600060405180830381600087803b158015620039c957600080fd5b505af1158015620039de573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff161562003a2857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003a5a5760405163b1d02c3d60e01b815260040160405180910390fd5b62003a6462008c6a565b62003a71603f826200822a565b62003a8f5760405163056e881160e01b815260040160405180910390fd5b600062003a9b62008c6a565b6001600160a01b0381166000908152604160205260409020600c81015491925090429062003ace9062015180906200a26a565b111562003aee57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b9091048116908516111562003b285760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003b6657600982015462003b609086906001600160401b03166200a398565b62003b80565b600982015462003b80906001600160401b0316866200a398565b60098301546001600160401b039182169250600160801b90041681111562003bbb5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b6060806060600062003c3a603f62008dd1565b905080861015620042c357841562003c53578462003c55565b805b945060008562003c6688846200a326565b1162003c7e5762003c7887836200a326565b62003c80565b855b9050806001600160401b0381111562003c9d5762003c9d62009a54565b60405190808252806020026020018201604052801562003cc7578160200160208202803683370190505b509450806001600160401b0381111562003ce55762003ce562009a54565b60405190808252806020026020018201604052801562003d0f578160200160208202803683370190505b509350806001600160401b0381111562003d2d5762003d2d62009a54565b60405190808252806020026020018201604052801562003d6257816020015b606081526020019060019003908162003d4c5790505b50925060005b81811015620042c057600062003d8c62003d83838b6200a26a565b603f9062008ddc565b6001600160a01b0380821660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003df9906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003e27906200a1d1565b801562003e785780601f1062003e4c5761010080835404028352916020019162003e78565b820191906000526020600020905b81548152906001019060200180831162003e5a57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003ea3906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003ed1906200a1d1565b801562003f225780601f1062003ef65761010080835404028352916020019162003f22565b820191906000526020600020905b81548152906001019060200180831162003f0457829003601f168201915b5050505050815260200160018201805462003f3d906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462003f6b906200a1d1565b801562003fbc5780601f1062003f905761010080835404028352916020019162003fbc565b820191906000526020600020905b81548152906001019060200180831162003f9e57829003601f168201915b5050505050815260200160028201805462003fd7906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004005906200a1d1565b8015620040565780601f106200402a5761010080835404028352916020019162004056565b820191906000526020600020905b8154815290600101906020018083116200403857829003601f168201915b5050505050815260200160038201805462004071906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200409f906200a1d1565b8015620040f05780601f10620040c457610100808354040283529160200191620040f0565b820191906000526020600020905b815481529060010190602001808311620040d257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200418f5750505050508152505090508060000151888481518110620041c857620041c86200a356565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e00151620042615780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200425b91906200a280565b62004264565b60005b8784815181106200427957620042796200a356565b60200260200101818152505080608001518684815181106200429f576200429f6200a356565b6020026020010181905250505080620042b8906200a3bb565b905062003d68565b50505b92959194509250565b60005462010000900460ff1615620042f757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620043295760405163b1d02c3d60e01b815260040160405180910390fd5b3362004337603f826200822a565b156200435657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038181166000908152604d602052604090205416156200439057604051631a0a9b9f60e21b815260040160405180910390fd5b6001600160a01b0388811660009081526043602052604090205416151580620043d157506001600160a01b03881660009081526047602052604090205460ff165b15620043f057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200440f9291906200a221565b908152604051908190036020019020546001600160a01b031614158062004459575060488787604051620044459291906200a221565b9081526040519081900360200190205460ff165b1562004478576040516311fdb94760e01b815260040160405180910390fd5b60006200448683806200a3d7565b604051602001620044999291906200a221565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620044e35760405163c0bf414360e01b815260040160405180910390fd5b6000620044f9670de0b6b3a7640000346200a326565b90506036548110156200451f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200454757604051636520611b60e11b815260040160405180910390fd5b6113886200455c604087016020880162009c38565b6001600160401b03161180620045a257506200457f604086016020870162009c38565b6001600160401b031662004597602087018762009c38565b6001600160401b0316115b80620045e15750620045bb604086016020870162009c38565b6001600160401b0316620045d6606087016040880162009c38565b6001600160401b0316115b15620046005760405163dc81db8560e01b815260040160405180910390fd5b6200464b6200461085806200a3d7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008dea92505050565b6200466957604051635dba5ad760e01b815260040160405180910390fd5b62004678838a8a8a8a62008f8c565b6200469657604051631647e3cb60e11b815260040160405180910390fd5b6000620046e484620046a987806200a3d7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620090bc92505050565b9050620046f3603f85620091bd565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620047738b8d836200a47f565b5085600582016200478582826200a547565b50879050600982016200479982826200a680565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b03191692881692909217909155518590604590620047e7908e908e906200a221565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200486a9291906200a750565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200ba57833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200ba57833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200490e90859089906004016200a207565b600060405180830381600087803b1580156200492957600080fd5b505af11580156200493e573d6000803e3d6000fd5b50505050505050505050505050505050565b6040805160608101825260008082526020820181905291810191909152816200497b603f826200822a565b620049995760405163056e881160e01b815260040160405180910390fd5b50506001600160a01b031660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915290565b6001600160a01b0380821660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608281019190915260048401805491949160808401919062004a62906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004a90906200a1d1565b801562004ae15780601f1062004ab55761010080835404028352916020019162004ae1565b820191906000526020600020905b81548152906001019060200180831162004ac357829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462004b0c906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004b3a906200a1d1565b801562004b8b5780601f1062004b5f5761010080835404028352916020019162004b8b565b820191906000526020600020905b81548152906001019060200180831162004b6d57829003601f168201915b5050505050815260200160018201805462004ba6906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004bd4906200a1d1565b801562004c255780601f1062004bf95761010080835404028352916020019162004c25565b820191906000526020600020905b81548152906001019060200180831162004c0757829003601f168201915b5050505050815260200160028201805462004c40906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004c6e906200a1d1565b801562004cbf5780601f1062004c935761010080835404028352916020019162004cbf565b820191906000526020600020905b81548152906001019060200180831162004ca157829003601f168201915b5050505050815260200160038201805462004cda906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462004d08906200a1d1565b801562004d595780601f1062004d2d5761010080835404028352916020019162004d59565b820191906000526020600020905b81548152906001019060200180831162004d3b57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162004df85750505091909252505050608001519392505050565b336110011462004e4957604051630f22c43960e41b81526110016004820152602401620011ef565b6001600160a01b038082166000908152604360205260409020541662004e71603f826200822a565b62004e8f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004ef2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004f1891906200a280565b90506000603d544262004f2c91906200a26a565b905062004f3a8382620082d7565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004f7a939291906200a2b0565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004fb8916001600160a01b03169088906004016200a207565b600060405180830381600087803b15801562004fd357600080fd5b505af115801562004fe8573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff1615808015620050145750600054600160ff909116105b80620050305750303b15801562005030575060005460ff166001145b620050955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620011ef565b6000805460ff191660011790558015620050b9576000805461ff0019166101001790555b334114620050da5760405163022d8c9560e31b815260040160405180910390fd5b3a15620050fa576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d60385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562278d00603e55604a5560408051610760810190915261074080825260609182916200ba7760208301398060200190518101906200518b91906200a78c565b915060405180611160016040528061114081526020016200c1b76111409139806020019051810190620051bf91906200a830565b905060005b82518110156200522e57600160476000858481518110620051e957620051e96200a356565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562005226816200a3bb565b9050620051c4565b5060005b81518110156200529f57600160488383815181106200525557620052556200a356565b60200260200101516040516200526c91906200a92d565b908152604051908190036020019020805491151560ff1990921691909117905562005297816200a3bb565b905062005232565b50620052bf7308e68ec70fa3b629784fdb28887e206ce8561e08620091d4565b505080156200181a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b33612000146200533257604051630f22c43960e41b81526120006004820152602401620011ef565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162005367939291906200a94b565b60405180910390a1505050565b600054630100000090046001600160a01b03163314620053a7576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615620053d257604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200541b603f846200822a565b620054395760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa15801562005496573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620054bc91906200a280565b90505b92915050565b60005462010000900460ff1615620054f057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620055225760405163b1d02c3d60e01b815260040160405180910390fd5b8162005530603f826200822a565b6200554e5760405163056e881160e01b815260040160405180910390fd5b6037543490811015620055745760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620055dc906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200560a906200a1d1565b80156200565b5780601f106200562f576101008083540402835291602001916200565b565b820191906000526020600020905b8154815290600101906020018083116200563d57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462005686906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620056b4906200a1d1565b8015620057055780601f10620056d95761010080835404028352916020019162005705565b820191906000526020600020905b815481529060010190602001808311620056e757829003601f168201915b5050505050815260200160018201805462005720906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200574e906200a1d1565b80156200579f5780601f1062005773576101008083540402835291602001916200579f565b820191906000526020600020905b8154815290600101906020018083116200578157829003601f168201915b50505050508152602001600282018054620057ba906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620057e8906200a1d1565b8015620058395780601f106200580d5761010080835404028352916020019162005839565b820191906000526020600020905b8154815290600101906020018083116200581b57829003601f168201915b5050505050815260200160038201805462005854906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005882906200a1d1565b8015620058d35780601f10620058a757610100808354040283529160200191620058d3565b820191906000526020600020905b815481529060010190602001808311620058b557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620059725750505050508152505090508060e001518015620059b55750856001600160a01b0316826001600160a01b031614155b15620059d457604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005a25573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062005a4c91906200a280565b9050826001600160a01b0316876001600160a01b03166000805160206200ba57833981519152838760405162005a8c929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b9162005ac1919087906004016200a207565b600060405180830381600087803b15801562005adc57600080fd5b505af115801562005af1573d6000803e3d6000fd5b50505050851562001813576040516372f6ad8f60e11b81526120059063e5ed5b1e9062005b259086908b906004016200a207565b600060405180830381600087803b15801562005b4057600080fd5b505af115801562005b55573d6000803e3d6000fd5b5050505050505050505050565b62005b8e6040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005b9c603f826200822a565b62005bba5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383166000908152604160205260409081902081516080810190925260050180548290829062005bf1906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005c1f906200a1d1565b801562005c705780601f1062005c445761010080835404028352916020019162005c70565b820191906000526020600020905b81548152906001019060200180831162005c5257829003601f168201915b5050505050815260200160018201805462005c8b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005cb9906200a1d1565b801562005d0a5780601f1062005cde5761010080835404028352916020019162005d0a565b820191906000526020600020905b81548152906001019060200180831162005cec57829003601f168201915b5050505050815260200160028201805462005d25906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005d53906200a1d1565b801562005da45780601f1062005d785761010080835404028352916020019162005da4565b820191906000526020600020905b81548152906001019060200180831162005d8657829003601f168201915b5050505050815260200160038201805462005dbf906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462005ded906200a1d1565b801562005e3e5780601f1062005e125761010080835404028352916020019162005e3e565b820191906000526020600020905b81548152906001019060200180831162005e2057829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005e7a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005eac5760405163b1d02c3d60e01b815260040160405180910390fd5b62005eb882826200926d565b5050565b336110071462005ee457604051630f22c43960e41b81526110076004820152602401620011ef565b62005f516040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b156200600c576020811462005f835783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162005fc6918585808385018382808284376000920191909152509293925050620093d69050565b90506108fc81108062005fda575061271081115b15620060035784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60355562006d16565b6200607d6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620061475760208114620060af5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620060f2918585808385018382808284376000920191909152509293925050620093d69050565b9050683635c9adc5dea0000081108062006115575069152d02c7e14af680000081115b156200613e5784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60365562006d16565b620061ba604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620062815760208114620061ec5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f84018190048102820181019092528281526000916200622f918585808385018382808284376000920191909152509293925050620093d69050565b905067016345785d8a00008110806200624f5750678ac7230489e8000081115b15620062785784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60375562006d16565b620062f2604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620063aa5760208114620063245783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006367918585808385018382808284376000920191909152509293925050620093d69050565b90508015806200637857506101f481115b15620063a15784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60385562006d16565b620064136040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620064d05760208114620064455783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006488918585808385018382808284376000920191909152509293925050620093d69050565b90506203f4808110806200649e575062278d0081115b15620064c75784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b60395562006d16565b6200653e60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620065eb5760208114620065705783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620065b3918585808385018382808284376000920191909152509293925050620093d69050565b90506064811115620065e25784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603a5562006d16565b6200665b60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b156200671c57602081146200668d5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620066d0918585808385018382808284376000920191909152509293925050620093d69050565b9050674563918244f40000811080620066ea5750603c5481115b15620067135784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603b5562006d16565b6200678a6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b156200684d5760208114620067bc5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f8401819004810282018101909252828152600091620067ff918585808385018382808284376000920191909152509293925050620093d69050565b905068056bc75e2d631000008110806200681b5750603b548111155b15620068445784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603c5562006d16565b620068ba6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b15620069775760208114620068ec5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f84018190048102820181019092528281526000916200692f918585808385018382808284376000920191909152509293925050620093d69050565b90506202a300811080620069455750603e548110155b156200696e5784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603d5562006d16565b620069e26040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b1562006a9f576020811462006a145783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006a57918585808385018382808284376000920191909152509293925050620093d69050565b9050620d2f0081108062006a6d5750603d548111155b1562006a965784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b603e5562006d16565b62006b196040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b1562006bc5576020811462006b4b5783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604080516020601f840181900481028201810190925282815260009162006b8e918585808385018382808284376000920191909152509293925050620093d69050565b90508060000362006bbc5784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b604a5562006d16565b62006c336040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093799050565b1562006cf3576014811462006c655783838383604051630a5a604160e01b8152600401620011ef94939291906200a96a565b600062006cad601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093d69050565b90506001600160a01b03811662006ce15784848484604051630a5a604160e01b8152600401620011ef94939291906200a96a565b62006cec81620093db565b5062006d16565b838383836040516325ee20d560e21b8152600401620011ef94939291906200a96a565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e6338484848460405162006d4d94939291906200a96a565b60405180910390a150505050565b60005462010000900460ff161562006d8657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562006db85760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b0381111562006dd65762006dd662009a54565b60405190808252806020026020018201604052801562006e00578160200160208202803683370190505b5090506000805b8381101562006efe5762006e4987878381811062006e295762006e296200a356565b905060200201602081019062006e409190620098e3565b603f906200822a565b62006e675760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006e805762006e806200a356565b905060200201602081019062006e979190620098e3565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ed35762006ed36200a356565b6001600160a01b039092166020928302919091019091015262006ef6816200a3bb565b905062006e07565b50604051634484077560e01b81526120059063448407759062002bc890859088906004016200a36c565b606080600062006f39603f62008dd1565b905080851015620070fd57831562006f52578362006f54565b805b935060008462006f6587846200a326565b1162006f7d5762006f7786836200a326565b62006f7f565b845b9050806001600160401b0381111562006f9c5762006f9c62009a54565b60405190808252806020026020018201604052801562006fc6578160200160208202803683370190505b509350806001600160401b0381111562006fe45762006fe462009a54565b6040519080825280602002602001820160405280156200700e578160200160208202803683370190505b50925060005b81811015620070fa576200702d62003d8382896200a26a565b8582815181106200704257620070426200a356565b60200260200101906001600160a01b031690816001600160a01b031681525050604160008683815181106200707b576200707b6200a356565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b0316848281518110620070cf57620070cf6200a356565b6001600160a01b0390921660209283029190910190910152620070f2816200a3bb565b905062007014565b50505b9250925092565b33611001146200712c57604051630f22c43960e41b81526110016004820152602401620011ef565b60005462010000900460ff16156200715757604051631785c68160e01b815260040160405180910390fd5b6001600160a01b03808216600090815260436020526040902054166200717f603f826200822a565b6200719d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038116600090815260416020526040812090620071c562015180426200a247565b604a546000828152604b602052604090205491925011620071f95760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200721a9084906200a26a565b90915550506001600160a01b038416600090815260446020526040902054158015906200726f57506001600160a01b03841660009081526044602052604090205442906200726d9062015180906200a26a565b105b156200728e576040516330abb81d60e21b815260040160405180910390fd5b6000806200729e8560006200824d565b9150915081620072c157604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562007314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200733a91906200a280565b9050620073488583620082d7565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162007388939291906200a2b0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005b25916001600160a01b0316908a906004016200a207565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384938493849390929160808401919062007437906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007465906200a1d1565b8015620074b65780601f106200748a57610100808354040283529160200191620074b6565b820191906000526020600020905b8154815290600101906020018083116200749857829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620074e1906200a1d1565b80601f01602080910402602001604051908101604052809291908181526020018280546200750f906200a1d1565b8015620075605780601f10620075345761010080835404028352916020019162007560565b820191906000526020600020905b8154815290600101906020018083116200754257829003601f168201915b505050505081526020016001820180546200757b906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620075a9906200a1d1565b8015620075fa5780601f10620075ce57610100808354040283529160200191620075fa565b820191906000526020600020905b815481529060010190602001808311620075dc57829003601f168201915b5050505050815260200160028201805462007615906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007643906200a1d1565b8015620076945780601f10620076685761010080835404028352916020019162007694565b820191906000526020600020905b8154815290600101906020018083116200767657829003601f168201915b50505050508152602001600382018054620076af906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620076dd906200a1d1565b80156200772e5780601f1062007702576101008083540402835291602001916200772e565b820191906000526020600020905b8154815290600101906020018083116200771057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620077cd5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200783457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620078665760405163b1d02c3d60e01b815260040160405180910390fd5b6200787062008c6a565b6200787d603f826200822a565b6200789b5760405163056e881160e01b815260040160405180910390fd5b6000620078a762008c6a565b6001600160a01b0381166000908152604160205260409020600c810154919250904290620078da9062015180906200a26a565b1115620078fa57604051631f92cdbd60e11b815260040160405180910390fd5b6005810180546200790b906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007939906200a1d1565b80156200798a5780601f106200795e576101008083540402835291602001916200798a565b820191906000526020600020905b8154815290600101906020018083116200796c57829003601f168201915b5050508287525085916005840191508190620079a790826200a995565b5060208201516001820190620079be90826200a995565b5060408201516002820190620079d590826200a995565b5060608201516003820190620079ec90826200a995565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff161562007a5a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007a8c5760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007aad576040516341abc80160e01b815260040160405180910390fd5b60005b8381101562007b1e5762007b0b85858381811062007ad25762007ad26200a356565b905060200201602081019062007ae99190620098e3565b84848481811062007afe5762007afe6200a356565b905060200201356200926d565b62007b16816200a3bb565b905062007ab0565b5050505050565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162007b90906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007bbe906200a1d1565b801562007c0f5780601f1062007be35761010080835404028352916020019162007c0f565b820191906000526020600020905b81548152906001019060200180831162007bf157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462007c3a906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007c68906200a1d1565b801562007cb95780601f1062007c8d5761010080835404028352916020019162007cb9565b820191906000526020600020905b81548152906001019060200180831162007c9b57829003601f168201915b5050505050815260200160018201805462007cd4906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007d02906200a1d1565b801562007d535780601f1062007d275761010080835404028352916020019162007d53565b820191906000526020600020905b81548152906001019060200180831162007d3557829003601f168201915b5050505050815260200160028201805462007d6e906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007d9c906200a1d1565b801562007ded5780601f1062007dc15761010080835404028352916020019162007ded565b820191906000526020600020905b81548152906001019060200180831162007dcf57829003601f168201915b5050505050815260200160038201805462007e08906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462007e36906200a1d1565b801562007e875780601f1062007e5b5761010080835404028352916020019162007e87565b820191906000526020600020905b81548152906001019060200180831162007e6957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162007f265750505091909252505050604001519392505050565b600062007f5e603f846200822a565b62007f7c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005478565b60005462010000900460ff161562007feb57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200801d5760405163b1d02c3d60e01b815260040160405180910390fd5b6200802762008c6a565b62008034603f826200822a565b620080525760405163056e881160e01b815260040160405180910390fd5b60006200805e62008c6a565b90506200806f818787878762008f8c565b6200808d57604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b031660458787604051620080ac9291906200a221565b908152604051908190036020019020546001600160a01b0316141580620080f6575060488686604051620080e29291906200a221565b9081526040519081900360200190205460ff165b1562008115576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c8101544290620081449062015180906200a26a565b11156200816457604051631f92cdbd60e11b815260040160405180910390fd5b426046826004016040516200817a91906200aa5d565b90815260405190819003602001902055600481016200819b8789836200a47f565b5042600c8201556040518290604590620081b9908a908a906200a221565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062008219908a908a906200a750565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620054bc565b60008060008484604051602001620082679291906200aadb565b60408051601f1981840301815291815281516020928301206000818152604c90935291205490915042811115620082a757600080935093505050620082d0565b603e54620082b690426200a26a565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b1580156200831e57600080fd5b505af115801562008333573d6000803e3d6000fd5b505050506000600162008347603f62008dd1565b6200835391906200a326565b6049541080159150620084115760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa158015620083a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620083cd91906200a2df565b620084115760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b01548211156200842657600b83018290555b600a83015460ff166200849957600a8301805460ff1916600190811790915560498054600090620084599084906200a26a565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620085109062009447565b90506000805b6200852183620094ba565b15620085f457806000036200855657620085456200853f84620094e0565b62009544565b6001600160a01b03168452620085e1565b8060010362008582576200856e6200853f84620094e0565b6001600160a01b03166020850152620085e1565b80600203620085ae576200859a6200853f84620094e0565b6001600160a01b03166040850152620085e1565b80600303620085db57620085cc620085c684620094e0565b6200955c565b606085015260019150620085e1565b620085f4565b620085ec816200a3bb565b905062008516565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff168062008639575060208201516001600160a01b0316155b156200864757506004919050565b81516200865790603f906200822a565b6200866457506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620086d0906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620086fe906200a1d1565b80156200874f5780601f1062008723576101008083540402835291602001916200874f565b820191906000526020600020905b8154815290600101906020018083116200873157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200877a906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620087a8906200a1d1565b8015620087f95780601f10620087cd57610100808354040283529160200191620087f9565b820191906000526020600020905b815481529060010190602001808311620087db57829003601f168201915b5050505050815260200160018201805462008814906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462008842906200a1d1565b8015620088935780601f10620088675761010080835404028352916020019162008893565b820191906000526020600020905b8154815290600101906020018083116200887557829003601f168201915b50505050508152602001600282018054620088ae906200a1d1565b80601f0160208091040260200160405190810160405280929190818152602001828054620088dc906200a1d1565b80156200892d5780601f1062008901576101008083540402835291602001916200892d565b820191906000526020600020905b8154815290600101906020018083116200890f57829003601f168201915b5050505050815260200160038201805462008948906200a1d1565b80601f016020809104026020016040519081016040528092919081815260200182805462008976906200a1d1565b8015620089c75780601f106200899b57610100808354040283529160200191620089c7565b820191906000526020600020905b815481529060010190602001808311620089a957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162008a665750505050508152505090508060e00151801562008ab1575082600001516001600160a01b031683602001516001600160a01b031614155b1562008ac05750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af115801562008b1c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008b4391906200a280565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200ba5783398151915283876060015160405162008b8f929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008bf2929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b9262008c2c929091906004016200a207565b600060405180830381600087803b15801562008c4757600080fd5b505af115801562008c5c573d6000803e3d6000fd5b506000979650505050505050565b336000908152604d60205260408120546001600160a01b03161562008ca65750336000908152604d60205260409020546001600160a01b031690565b503390565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008cd5575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008d25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008d4b91906200a280565b101562005eb85762008d6d81603d544262008d6791906200a26a565b620082d7565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b15801562008db457600080fd5b505af115801562008dc9573d6000803e3d6000fd5b505050505050565b6000620054bf825490565b6000620054bc838362009634565b60008082905060038151108062008e02575060098151115b1562008e115750600092915050565b60418160008151811062008e295762008e296200a356565b016020015160f81c108062008e5b5750605a8160008151811062008e515762008e516200a356565b016020015160f81c115b1562008e6a5750600092915050565b60015b815181101562008f8257603082828151811062008e8e5762008e8e6200a356565b016020015160f81c108062008ebf5750603982828151811062008eb55762008eb56200a356565b016020015160f81c115b801562008f0f5750604182828151811062008ede5762008ede6200a356565b016020015160f81c108062008f0f5750605a82828151811062008f055762008f056200a356565b016020015160f81c115b801562008f5f5750606182828151811062008f2e5762008f2e6200a356565b016020015160f81c108062008f5f5750607a82828151811062008f555762008f556200a356565b016020015160f81c115b1562008f6f575060009392505050565b62008f7a816200a3bb565b905062008e6d565b5060019392505050565b600060308414158062008fa0575060608214155b1562008faf57506000620090b3565b60008686864660405160200162008fca94939291906200ab19565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a604051602001620090249594939291906200ab46565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa6200906e57600080fd5b506000816000815181106200908757620090876200a356565b016020015160f81c905060018114620090a957600095505050505050620090b3565b6001955050505050505b95945050505050565b60008061200361dead604051620090d390620098bf565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562009116573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b81526004016200914a9291906200ab7e565b6000604051808303818588803b1580156200916457600080fd5b505af115801562009179573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620054bc836001600160a01b03841662009661565b600054610100900460ff16620092415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620011ef565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b816200927b603f826200822a565b620092995760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af1158015620092fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200932391906200a280565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683836040516200936b91815260200190565b60405180910390a350505050565b6000816040516020016200938e91906200a92d565b6040516020818303038152906040528051906020012083604051602001620093b791906200a92d565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60408051608081018252600091810182815260608201839052815260208101919091526200947582620096b3565b6200947f57600080fd5b6000620094908360200151620096e6565b8360200151620094a191906200a26a565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620094d2916200a26a565b836020015110915050919050565b6040805180820190915260008082526020820152620094ff82620094ba565b6200950957600080fd5b602082015160006200951b8262009775565b90506200952981836200a26a565b60209485015260408051808201909152908152928301525090565b80516000906015146200955657600080fd5b620054bf825b8051600090158015906200957257508151602110155b6200957c57600080fd5b60006200958d8360200151620096e6565b90508083600001511015620095e55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f66667365740000000000006044820152606401620011ef565b8251600090620095f79083906200a326565b90506000808386602001516200960e91906200a26a565b90508051915060208310156200962b57826020036101000a820491505b50949350505050565b60008260000182815481106200964e576200964e6200a356565b9060005260206000200154905092915050565b6000818152600183016020526040812054620096aa57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620054bf565b506000620054bf565b80516000908103620096c757506000919050565b6020820151805160001a9060c082101562008f82575060009392505050565b8051600090811a6080811015620097005750600092915050565b60b88110806200971d575060c081108015906200971d575060f881105b156200972c5750600192915050565b60c0811015620097675762009744600160b86200aba4565b620097539060ff16826200a326565b620097609060016200a26a565b9392505050565b62009744600160f86200aba4565b80516000908190811a6080811015620097925760019150620098b8565b60b8811015620097be57620097a96080826200a326565b620097b69060016200a26a565b9150620098b8565b60c08110156200983757600060b78203600186019550806020036101000a865104915060018101820193505080831015620098305760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606401620011ef565b50620098b8565b60f88110156200984e57620097a960c0826200a326565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620098b65760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606401620011ef565b505b5092915050565b610e96806200abc183390190565b6001600160a01b03811681146200181a57600080fd5b600060208284031215620098f657600080fd5b81356200976081620098cd565b60008083601f8401126200991657600080fd5b5081356001600160401b038111156200992e57600080fd5b602083019150836020828501011115620082d057600080fd5b600080602083850312156200995b57600080fd5b82356001600160401b038111156200997257600080fd5b620099808582860162009903565b90969095509350505050565b600080600060408486031215620099a257600080fd5b833560ff81168114620099b457600080fd5b925060208401356001600160401b03811115620099d057600080fd5b620099de8682870162009903565b9497909650939450505050565b60005b8381101562009a08578181015183820152602001620099ee565b50506000910152565b6000815180845262009a2b816020860160208601620099eb565b601f01601f19169290920160200192915050565b602081526000620054bc602083018462009a11565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562009a8f5762009a8f62009a54565b60405290565b604051601f8201601f191681016001600160401b038111828210171562009ac05762009ac062009a54565b604052919050565b60006001600160401b0382111562009ae45762009ae462009a54565b50601f01601f191660200190565b600062009b0962009b038462009ac8565b62009a95565b905082815283838301111562009b1e57600080fd5b828260208301376000602084830101529392505050565b60006020828403121562009b4857600080fd5b81356001600160401b0381111562009b5f57600080fd5b8201601f8101841362009b7157600080fd5b62009b828482356020840162009af2565b949350505050565b6000806040838503121562009b9e57600080fd5b823562009bab81620098cd565b946020939093013593505050565b80151581146200181a57600080fd5b6000806000806080858703121562009bdf57600080fd5b843562009bec81620098cd565b9350602085013562009bfe81620098cd565b925060408501359150606085013562009c178162009bb9565b939692955090935050565b6001600160401b03811681146200181a57600080fd5b60006020828403121562009c4b57600080fd5b8135620097608162009c22565b6000806040838503121562009c6c57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b8381101562009cb65781516001600160a01b03168752958201959082019060010162009c8f565b509495945050505050565b60808152600062009cd6608083018762009c7b565b82810360208481019190915286518083528782019282019060005b8181101562009d0f5784518352938301939183019160010162009cf1565b5050848103604086015286518082528282019350600581901b8201830183890160005b8381101562009d6457601f1985840301875262009d5183835162009a11565b9686019692509085019060010162009d32565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e081121562009d9a57600080fd5b883562009da781620098cd565b975060208901356001600160401b038082111562009dc457600080fd5b62009dd28c838d0162009903565b909950975060408b013591508082111562009dec57600080fd5b62009dfa8c838d0162009903565b90975095508591506060605f198401121562009e1557600080fd5b60608b01945060c08b013592508083111562009e3057600080fd5b505088016080818b03121562009e4557600080fd5b8091505092959891949750929550565b6000806040838503121562009e6957600080fd5b823562009e7681620098cd565b9150602083013562009e888162009bb9565b809150509250929050565b60208152600082516080602084015262009eb160a084018262009a11565b90506020840151601f198085840301604086015262009ed1838362009a11565b9250604086015191508085840301606086015262009ef0838362009a11565b9250606086015191508085840301608086015250620090b3828262009a11565b6000806000806040858703121562009f2757600080fd5b84356001600160401b038082111562009f3f57600080fd5b62009f4d8883890162009903565b9096509450602087013591508082111562009f6757600080fd5b5062009f768782880162009903565b95989497509550505050565b60008083601f84011262009f9557600080fd5b5081356001600160401b0381111562009fad57600080fd5b6020830191508360208260051b8501011115620082d057600080fd5b60008060006040848603121562009fdf57600080fd5b83356001600160401b0381111562009ff657600080fd5b6200a0048682870162009f82565b90945092505060208401356200a01a81620098cd565b809150509250925092565b6060815260006200a03a606083018662009c7b565b82810360208401526200a04e818662009c7b565b915050826040830152949350505050565b600082601f8301126200a07157600080fd5b620054bc8383356020850162009af2565b6000602082840312156200a09557600080fd5b81356001600160401b03808211156200a0ad57600080fd5b90830190608082860312156200a0c257600080fd5b6200a0cc62009a6a565b8235828111156200a0dc57600080fd5b6200a0ea878286016200a05f565b8252506020830135828111156200a10057600080fd5b6200a10e878286016200a05f565b6020830152506040830135828111156200a12757600080fd5b6200a135878286016200a05f565b6040830152506060830135828111156200a14e57600080fd5b6200a15c878286016200a05f565b60608301525095945050505050565b600080600080604085870312156200a18257600080fd5b84356001600160401b03808211156200a19a57600080fd5b6200a1a88883890162009f82565b909650945060208701359150808211156200a1c257600080fd5b5062009f768782880162009f82565b600181811c908216806200a1e657607f821691505b60208210810362001f0b57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b6000826200a26557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620054bf57620054bf6200a231565b6000602082840312156200a29357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b8381526020810183905260608101600383106200a2d1576200a2d16200a29a565b826040830152949350505050565b6000602082840312156200a2f257600080fd5b8151620097608162009bb9565b82815260408101600583106200a319576200a3196200a29a565b8260208301529392505050565b81810381811115620054bf57620054bf6200a231565b8082028115828204841417620054bf57620054bf6200a231565b634e487b7160e01b600052603260045260246000fd5b6040815260006200a381604083018562009c7b565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620098b857620098b86200a231565b6000600182016200a3d0576200a3d06200a231565b5060010190565b6000808335601e198436030181126200a3ef57600080fd5b8301803591506001600160401b038211156200a40a57600080fd5b602001915036819003821315620082d057600080fd5b601f8211156200849957600081815260208120601f850160051c810160208610156200a4495750805b601f850160051c820191505b8181101562008dc9578281556001016200a455565b600019600383901b1c191660019190911b1790565b6001600160401b038311156200a499576200a49962009a54565b6200a4b1836200a4aa83546200a1d1565b836200a420565b6000601f8411600181146200a4e457600085156200a4cf5750838201355b6200a4db86826200a46a565b84555062007b1e565b600083815260209020601f19861690835b828110156200a51757868501358255602094850194600190920191016200a4f5565b50868210156200a5355760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a55382836200a3d7565b6001600160401b038111156200a56d576200a56d62009a54565b6200a585816200a57e85546200a1d1565b856200a420565b6000601f8211600181146200a5b857600083156200a5a35750838201355b6200a5af84826200a46a565b8655506200a615565b600085815260209020601f19841690835b828110156200a5eb57868501358255602094850194600190920191016200a5c9565b50848210156200a6095760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a62860208301836200a3d7565b6200a6388183600186016200a47f565b50506200a64960408301836200a3d7565b6200a6598183600286016200a47f565b50506200a66a60608301836200a3d7565b6200a67a8183600386016200a47f565b50505050565b81356200a68d8162009c22565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a6ba8162009c22565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a6fa8162009c22565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600062009b826020830184866200a727565b60006001600160401b038211156200a782576200a78262009a54565b5060051b60200190565b600060208083850312156200a7a057600080fd5b82516001600160401b038111156200a7b757600080fd5b8301601f810185136200a7c957600080fd5b80516200a7da62009b03826200a766565b81815260059190911b820183019083810190878311156200a7fa57600080fd5b928401925b828410156200a8255783516200a81581620098cd565b825292840192908401906200a7ff565b979650505050505050565b600060208083850312156200a84457600080fd5b82516001600160401b03808211156200a85c57600080fd5b818501915085601f8301126200a87157600080fd5b81516200a88262009b03826200a766565b81815260059190911b830184019084810190888311156200a8a257600080fd5b8585015b838110156200a920578051858111156200a8c05760008081fd5b8601603f81018b136200a8d35760008081fd5b8781015160406200a8e862009b038362009ac8565b8281528d828486010111156200a8fe5760008081fd5b6200a90f838c8301848701620099eb565b86525050509186019186016200a8a6565b5098975050505050505050565b600082516200a941818460208701620099eb565b9190910192915050565b60ff84168152604060208201526000620090b36040830184866200a727565b6040815260006200a9806040830186886200a727565b82810360208401526200a8258185876200a727565b81516001600160401b038111156200a9b1576200a9b162009a54565b6200a9c9816200a9c284546200a1d1565b846200a420565b602080601f8311600181146200a9fd57600084156200a9e85750858301515b6200a9f485826200a46a565b86555062008dc9565b600085815260208120601f198616915b828110156200aa2e578886015182559484019460019091019084016200aa0d565b50858210156200aa4d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200aa6d816200a1d1565b600182811680156200aa8857600181146200aa9e576200aacf565b60ff19841687528215158302870194506200aacf565b8760005260208060002060005b858110156200aac65781548a8201529084019082016200aaab565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200ab05576200ab056200a29a565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200ab5a818460208b01620099eb565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b038316815260406020820181905260009062009b829083018462009a11565b60ff8281168282160390811115620054bf57620054bf6200a23156fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038000000000000000000000000295e26495cef6f69dfa69911d9d8e4f3bbadb89b00000000000000000000000072b61c6014342d914470ec7ac2975be345796c2b0000000000000000000000002465176c461afb316ebc773c61faee85a6515daa0000000000000000000000007ae2f5b9e386cd1b50a4550696d957cb4900f03a000000000000000000000000b4dd66d7c2c7e57f628210187192fb89d4b99dd4000000000000000000000000e9ae3261a475a27bb1028f140bc2a7c843318afd000000000000000000000000ee226379db83cffc681495730c11fdde79ba4c0c0000000000000000000000003f349bbafec1551819b8be1efea2fc46ca749aa10000000000000000000000008b6c8fd93d6f4cea42bbb345dbc6f0dfdb5bec73000000000000000000000000ef0274e31810c9df02f98fafde0f841f4e66a1cd000000000000000000000000a6f79b60359f141df90a0c745125b131caaffd12000000000000000000000000e2d3a739effcd3a99387d015e260eefac72ebea100000000000000000000000061dd481a114a2e761c554b641742c973867899d3000000000000000000000000cc8e6d00c17eb431350c6c50d8b8f05176b90b11000000000000000000000000ea0a6e3c511bbd10f4519ece37dc24887e11b55d0000000000000000000000002d4c407bbe49438ed859fe965b140dcf1aab71a9000000000000000000000000685b1ded8013785d6623cc18d214320b6bb64759000000000000000000000000d1d6bf74282782b0b3eb1413c901d6ecf02e8e2800000000000000000000000070f657164e5b75689b64b7fd1fa275f334f28e18000000000000000000000000be807dddb074639cd9fa61b47676c064fc50d62c000000000000000000000000b218c5d6af1f979ac42bc68d98a5a0d796c6ab010000000000000000000000009f8ccdafcc39f3c7d6ebf637c9151673cbc36b88000000000000000000000000d93dbfb27e027f5e9e6da52b9e1c413ce35adc11000000000000000000000000ce2fd7544e0b2cc94692d4a704debef7bcb613280000000000000000000000000bac492386862ad3df4b666bc096b0505bb694da000000000000000000000000733fda7714a05960b7536330be4dbb135bef0ed600000000000000000000000035ebb5849518aff370ca25e19e1072cc1a9fabca000000000000000000000000ebe0b55ad7bb78309180cada12427d120fdbcc3a0000000000000000000000006488aa4d1955ee33403f8ccb1d4de5fb97c7ade20000000000000000000000004396e28197653d0c244d95f8c1e57da902a72b4e000000000000000000000000702be18040aa2a9b1af9219941469f1a435854fc00000000000000000000000012d810c13e42811e9907c02e02d1fad46cfa18ba0000000000000000000000002a7cdd959bfe8d9487b2a43b33565295a698f7e2000000000000000000000000b8f7166496996a7da21cf1f1b04d9b3e26a3d0770000000000000000000000009bb832254baf4e8b4cc26bd2b52b31389b56e98b0000000000000000000000004430b3230294d12c6ab2aac5c2cd68e80b16b581000000000000000000000000c2be4ec20253b8642161bc3f444f53679c1f3d47000000000000000000000000ee01c3b1283aa067c58eab4709f85e99d46de5fe0000000000000000000000009ef9f4360c606c7ab4db26b016007d3ad0ab86a00000000000000000000000002f7be8361c80a4c1e7e9aaf001d0877f1cfde21800000000000000000000000035e7a025f4da968de7e4d7e4004197917f4070f1000000000000000000000000d6caa02bbebaebb5d7e581e4b66559e635f805ff0000000000000000000000008c4d90829ce8f72d0163c1d5cf348a862d55063000000000000000000000000068bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d00000000000000000000000082012708dafc9e1b880fd083b32182b869be8e090000000000000000000000006bbad7cf34b5fa511d8e963dbba288b1960e75d600000000000000000000000022b81f8e175ffde54d797fe11eb03f9e3bf75f1d00000000000000000000000078f3adfc719c99674c072166708589033e2d9afe00000000000000000000000029a97c6effb8a411dabc6adeefaa84f5067c8bbe000000000000000000000000aacf6a8119f7e11623b5a43da638e91f669a130f0000000000000000000000002b3a6c089311b478bf629c29d790a7a6db3fc1b9000000000000000000000000fe6e72b223f6d6cf4edc6bff92f30e84b8258249000000000000000000000000a6503279e8b5c7bb5cf4defd3ec8abf3e009a80b0000000000000000000000004ee63a09170c3f2207aeca56134fc2bee1b28e3c000000000000000000000000ac0e15a038eedfc68ba3c35c73fed5be4a07afb500000000000000000000000069c77a677c40c7fbea129d4b171a39b7a8ddabfa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000920000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000104000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000030977cf58294f7239d515e15b24cfeb82494056cf691eaf729b165f32c9757c429dba5051155903067e56ebe3698678e9100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003081db0422a5fd08e40db1fc2368d2245e4b18b1d0b85c921aaaafd2e341760e29fc613edd39f71254614e2055c3287a510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a923564c6ffd37fb2fe9f118ef88092e8762c7addb526ab7eb1e772baef85181f892c731be0c1891a50e6b06262c816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b84f83ff2df44193496793b847f64e9d6db1b3953682bb95edd096eb1e69bbd357c200992ca78050d0cbe180cfaa018e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0de8472be0308918c8bdb369bf5a67525210daffa053c52224c1d2ef4f5b38e4ecfcd06a1cc51c39c3a7dccfcb6b507000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ae7bc6faa3f0cc3e6093b633fd7ee4f86970926958d0b7ec80437f936acf212b78f0cd095f4565fff144fd458d233a5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003084248a459464eec1a21e7fc7b71a053d9644e9bb8da4853b8f872cd7c1d6b324bf1922829830646ceadfb658d3de009a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a8a257074e82b881cfa06ef3eb4efeca060c2531359abd0eab8af1e3edfa2025fca464ac9c3fd123f6c24a0d7886948500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003098cbf822e4bc29f1701ac0350a3d042cd0756e9f74822c6481773ceb000641c51b870a996fe0f6a844510b1061f38cd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b772e180fbf38a051c97dabc8aaa0126a233a9e828cdafcc7422c4bb1f4030a56ba364c54103f26bad91508b5220b741000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030956c470ddff48cb49300200b5f83497f3a3ccb3aeb83c5edd9818569038e61d197184f4aa6939ea5e9911e3e98ac6d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a80967d39e406a0a9642d41e9007a27fc1150a267d143a9f786cd2b5eecbdcc4036273705225b956d5e2f8f5eb95d25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b3a3d4feb825ae9702711566df5dbf38e82add4dd1b573b95d2466fa6501ccb81e9d26a352b96150ccbf7b697fd0a419000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2d4c6283c44a1c7bd503aaba7666e9f0c830e0ff016c1c750a5e48757a713d0836b1cabfd5c281b1de3b77d1c19218300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003093c1f7f6929d1fe2a17b4e14614ef9fc5bdc713d6631d675403fbeefac55611bf612700b1b65f4744861b80b0f7d6ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a60f82a7bcf74b4cb053b9bfe83d0ed02a84ebb10865dfdd8e26e7535c43a1cccd268e860f502216b379dfc9971d358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030939e8fb41b682372335be8070199ad3e8621d1743bcac4cc9d8f0f6e10f41e56461385c8eb5daac804fe3f2bca6ce73900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096a26afa1295da81418593bd12814463d9f6e45c36a0e47eb4cd3e5b6af29c41e2a3a5636430155a466e216585af3ba7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1f2c71577def3144fabeb75a8a1c8cb5b51d1d1b4a05eec67988b8685008baa17459ec425dbaebc852f496dc92196cd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b659ad0fbd9f515893fdd740b29ba0772dbde9b4635921dd91bd2963a0fc855e31f6338f45b211c4e9dedb7f2eb09de70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308819ec5ec3e97e1f03bbb4bb6055c7a5feac8f4f259df58349a32bb5cb377e2cb1f362b77f1dd398cfd3e9dba46138c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b313f9cba57c63a84edb4079140e6dbd7829e5023c9532fce57e9fe602400a2953f4bf7dab66cca16e97be95d4de7044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b64abe25614c9cfd32e456b4d521f29c8357f4af4606978296c9be93494072ac05fa86e3d27cc8d66e65000f8ba33fbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0bec348681af766751cb839576e9c515a09c8bffa30a46296ccc56612490eb480d03bf948e10005bbcc0421f90b3d4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0245c33bc556cfeb013cd3643b30dbdef6df61a0be3ba00cae104b3c587083852e28f8911689c7033f7021a8a1774c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a7f3e2c0b4b16ad183c473bafe30a36e39fa4a143657e229cd23c77f8fbc8e4e4e241695dd3d248d1e51521eee6619140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308fdf49777b22f927d460fa3fcdd7f2ba0cf200634a3dfb5197d7359f2f88aaf496ef8c93a065de0f376d164ff2b6db9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308ab17a9148339ef40aed8c177379c4db0bb5efc6f5c57a5d1a6b58b84d4b562e227196c79bda9a136830ed0c09f378130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308dd20979bd63c14df617a6939c3a334798149151577dd3f1fadb2bd1c1b496bf84c25c879da5f0f9dfdb88c6dd17b1e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b679cbab0276ac30ff5f198e5e1dedf6b84959129f70fe7a07fcdf13444ba45b5dbaa7b1f650adf8b0acbecd04e2675b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308974616fe8ab950a3cded19b1d16ff49c97bf5af65154b3b097d5523eb213f3d35fc5c57e7276c7f2d83be87ebfdcdf9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ab764a39ff81dad720d5691b852898041a3842e09ecbac8025812d51b32223d8420e6ae51a01582220a10f7722de67c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309025b6715c8eaabac0bfccdb2f25d651c9b69b0a184011a4a486b0b2080319d2396e7ca337f2abdf01548b2de1b3ba06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2317f59d86abfaf690850223d90e9e7593d91a29331dfc2f84d5adecc75fc39ecab4632c1b4400a3dd1e1298835bcca00000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/bohr/mainnet/ValidatorContract b/core/systemcontracts/bohr/mainnet/ValidatorContract index e69de29bb2..9983f26d0b 100644 --- a/core/systemcontracts/bohr/mainnet/ValidatorContract +++ b/core/systemcontracts/bohr/mainnet/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061051c5760003560e01c80638a7beb01116102a2578063c81b166211610165578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d8d578063f9a2bbc714610da2578063fc3e590814610db7578063fccc281314610dcc578063fd4ad81f14610de1578063fd6a687914610e1057610523565b8063e40716a114610cfb578063ea321e4914610d10578063eb57e20214610d30578063eda5868c14610d50578063f1fad10414610d65578063f340fa0114610d7a57610523565b8063d86222d51161011e578063d86222d514610c7d578063daacdb6614610c92578063dc927faf14610ca7578063df8079e914610cbc578063e086c7b114610cd1578063e1c7392a14610ce657610523565b8063c81b166214610c09578063c8509d81146109ae578063cb75a59214610c1e578063ce910b0c14610c33578063d58918ae14610c53578063d68fb56a14610c6857610523565b8063aa82dce111610209578063aef198a9116101c2578063aef198a914610b93578063b7ab4db514610ba8578063b8cf4ef114610bca578063bf9f499514610734578063c466689d14610bdf578063c6d3394514610bf457610523565b8063aa82dce114610aff578063aad5606314610b14578063aaf5eb6814610b29578063ab51bb9614610b3e578063ac43175114610b53578063ad3c9da614610b7357610523565b80639dc092621161025b5780639dc0926214610a815780639fe0f81614610a96578063a0dc275814610aab578063a1a11bf514610ac0578063a5422d5c14610ad5578063a78abc1614610aea57610523565b80638a7beb01146109f85780638b5ad0c914610a0d5780638c5d749d14610a225780638d19a41014610a375780639369d7de14610a5757806396713da914610a6c57610523565b80635192c82c116103ea578063718a8aa81161035157806381650b621161030a57806381650b6214610984578063820dcaa814610999578063831d65d1146109ae578063853230aa1461093057806386249882146109ce57806388b32f11146109e357610523565b8063718a8aa81461090657806375d47a0a1461091b57806378dfed4a146109305780637942fd05146109455780637a84ca2a1461095a5780637e434d541461096f57610523565b80635d77156c116103a35780635d77156c1461086057806360eba4fe1461087557806362b72cf5146108955780636969a25c146108aa5780636e47b482146108dc57806370fd5bad146108f157610523565b80635192c82c146107cc57806351b4dce3146107e157806351e80672146107f657806355614fcc1461080b578063565c56b31461082b5780635667515a1461084b57610523565b80632a0ffb6e1161048e5780633dffc387116104475780633dffc3871461073457806343756e5c1461075657806345cf9daf1461076b578063493279b1146107805780634bf6c882146107a25780634df6e0c3146107b757610523565b80632a0ffb6e14610671578063300c356714610691578063321d398a146106b15780633365af3a146106d157806335409f7f146106f15780633b071dcc1461071157610523565b8063152ad3b8116104e0578063152ad3b8146105db5780631bd14ed8146105fd5780631e4c1524146106125780631ff1806914610632578063219f22d514610647578063280870281461065c57610523565b806304c4fec61461052857806307a568471461053f5780630bee7a671461056a5780630e2374a51461058c5780631182b875146105ae57610523565b3661052357005b600080fd5b34801561053457600080fd5b5061053d610e25565b005b34801561054b57600080fd5b50610554610e99565b60405161056191906193bb565b60405180910390f35b34801561057657600080fd5b5061057f610e9f565b60405161056191906193e5565b34801561059857600080fd5b506105a1610ea4565b60405161056191906184f9565b3480156105ba57600080fd5b506105ce6105c93660046183df565b610eaa565b60405161056191906186af565b3480156105e757600080fd5b506105f06111c7565b60405161056191906186a4565b34801561060957600080fd5b506105546111d0565b34801561061e57600080fd5b5061053d61062d3660046181ed565b6111d6565b34801561063e57600080fd5b506105546118ac565b34801561065357600080fd5b5061057f6118b2565b34801561066857600080fd5b506105a16118b7565b34801561067d57600080fd5b5061053d61068c36600461814d565b6118bd565b34801561069d57600080fd5b5061053d6106ac366004618185565b61196a565b3480156106bd57600080fd5b506105f06106cc36600461838c565b611cb3565b3480156106dd57600080fd5b506105f06106ec36600461838c565b611d82565b3480156106fd57600080fd5b5061053d61070c36600461814d565b611e33565b34801561071d57600080fd5b50610726611f98565b6040516105619291906185ba565b34801561074057600080fd5b50610749612274565b60405161056191906193f6565b34801561076257600080fd5b506105a1612279565b34801561077757600080fd5b5061055461227f565b34801561078c57600080fd5b50610795612285565b60405161056191906193ac565b3480156107ae57600080fd5b5061074961228a565b3480156107c357600080fd5b5061072661228f565b3480156107d857600080fd5b5061055461241b565b3480156107ed57600080fd5b506105a1612421565b34801561080257600080fd5b506105a1612427565b34801561081757600080fd5b506105f061082636600461814d565b61242d565b34801561083757600080fd5b5061055461084636600461814d565b612462565b34801561085757600080fd5b506107496124b3565b34801561086c57600080fd5b5061057f6124b8565b34801561088157600080fd5b506105ce61089036600461838c565b6124bd565b3480156108a157600080fd5b50610554612563565b3480156108b657600080fd5b506108ca6108c536600461838c565b612569565b60405161056196959493929190618526565b3480156108e857600080fd5b506105a16125cd565b3480156108fd57600080fd5b506107496125d3565b34801561091257600080fd5b506107496125d8565b34801561092757600080fd5b506105a16125dd565b34801561093c57600080fd5b506105546125e3565b34801561095157600080fd5b506107496125e9565b34801561096657600080fd5b506105546125ee565b34801561097b57600080fd5b506105a16125f4565b34801561099057600080fd5b5061057f6125fa565b3480156109a557600080fd5b506105546125ff565b3480156109ba57600080fd5b5061053d6109c93660046183df565b612605565b3480156109da57600080fd5b50610554612666565b3480156109ef57600080fd5b5061055461266c565b348015610a0457600080fd5b506105f0612672565b348015610a1957600080fd5b5061055461267b565b348015610a2e57600080fd5b50610554612681565b348015610a4357600080fd5b50610554610a5236600461814d565b61269e565b348015610a6357600080fd5b5061053d6126de565b348015610a7857600080fd5b506107496127f2565b348015610a8d57600080fd5b506105a16127f7565b348015610aa257600080fd5b506105546127fd565b348015610ab757600080fd5b50610554612802565b348015610acc57600080fd5b506105a1612807565b348015610ae157600080fd5b506105ce61280d565b348015610af657600080fd5b506105f061282c565b348015610b0b57600080fd5b506105a1612835565b348015610b2057600080fd5b506105a161283b565b348015610b3557600080fd5b50610554612841565b348015610b4a57600080fd5b5061057f6124b3565b348015610b5f57600080fd5b5061053d610b6e366004618330565b61284a565b348015610b7f57600080fd5b50610554610b8e36600461814d565b613343565b348015610b9f57600080fd5b50610554613355565b348015610bb457600080fd5b50610bbd613362565b60405161056191906185a7565b348015610bd657600080fd5b5061055461344d565b348015610beb57600080fd5b50610554613452565b348015610c0057600080fd5b506105546125d3565b348015610c1557600080fd5b506105a1613458565b348015610c2a57600080fd5b5061055461345e565b348015610c3f57600080fd5b506105ce610c4e36600461838c565b613464565b348015610c5f57600080fd5b50610554613471565b348015610c7457600080fd5b50610554613477565b348015610c8957600080fd5b506105546134b6565b348015610c9e57600080fd5b506105546134c2565b348015610cb357600080fd5b506105a16134c8565b348015610cc857600080fd5b506105a16134ce565b348015610cdd57600080fd5b50610554610e9f565b348015610cf257600080fd5b5061053d6134d4565b348015610d0757600080fd5b50610554613683565b348015610d1c57600080fd5b506105f0610d2b3660046182f1565b613689565b348015610d3c57600080fd5b5061053d610d4b36600461814d565b61380f565b348015610d5c57600080fd5b5061057f613913565b348015610d7157600080fd5b50610749613918565b61053d610d8836600461814d565b61391d565b348015610d9957600080fd5b50610554613cd3565b348015610dae57600080fd5b506105a1613cd9565b348015610dc357600080fd5b506107496127fd565b348015610dd857600080fd5b506105a1613cdf565b348015610ded57600080fd5b50610e01610dfc36600461838c565b613ce5565b604051610561939291906193c4565b348015610e1c57600080fd5b506105a1613da7565b6000610e303361269e565b9050600b8181548110610e3f57fe5b600091825260209091206001601690920201015460ff16610e7b5760405162461bcd60e51b8152600401610e7290618fdc565b60405180910390fd5b6000610e85613477565b9050610e943383836001613dad565b505050565b60095481565b606481565b61200181565b60005460609060ff16610ecf5760405162461bcd60e51b8152600401610e729061886e565b3361200014610ef05760405162461bcd60e51b8152600401610e72906191c4565b600b54610fae57610eff617cf9565b60015460005b81811015610faa57600b805460018101825560009190915283516000805160206194c88339815191526016909202918201908155602080860151600080516020619af78339815191528401805460ff1916911515919091179055604086015180518794610f86936000805160206194e8833981519152909101920190617d28565b506060820151610f9c9060038301906013617da2565b505050806001019050610f05565b5050505b610fb6617dcf565b6000610ff785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061408292505050565b91509150806110135761100a606461423e565b925050506111c0565b815160009060ff16611038576110318360200151846040015161429f565b905061118c565b825160ff16600114156111885782602001515160011461107d576000805160206194a883398151915260405161106d90618e95565b60405180910390a1506067611183565b6000836020015160008151811061109057fe5b602090810291909101810151516001600160a01b038116600090815260049092526040909120549091508015806110f157506001808203815481106110d157fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561112f576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261117c565b600061113e8360018403615461565b90508061117a576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61118c565b5060655b63ffffffff81166111b157505060408051600081526020810190915291506111c09050565b6111ba8161423e565b93505050505b9392505050565b60075460ff1681565b600f5481565b3341146111f55760405162461bcd60e51b8152600401610e7290619213565b3a156112135760405162461bcd60e51b8152600401610e7290618f1b565b825160408051828152602080840282010190915260609082801561125157816020015b61123e617df3565b8152602001906001900390816112365790505b50905060005b828110156112fb576040518060c0016040528087838151811061127657fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020018683815181106112b857fe5b60200260200101516001600160401b0316815260200160001515815260200160008152508282815181106112e857fe5b6020908102919091010152600101611257565b5060405163d31f968d60e01b81526120009063d31f968d90611326906110009060089060040161858b565b60206040518083038186803b15801561133e57600080fd5b505afa158015611352573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137691906182d1565b156116995780516015548181111561141857815b8181101561141657601580548061139d57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b031916905560030155905560168054806113f057fe5b60019003818190600052602060002001600061140c9190617e28565b905560010161138a565b505b60005b828110156116585781811061154057601584828151811061143857fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a00151600390910155855160169087908390811061150857fe5b6020908102919091018101518254600181018455600093845292829020815161153a9491909101929190910190617d28565b50611650565b83818151811061154c57fe5b60200260200101516015828154811061156157fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155855186908290811061161c57fe5b60200260200101516016828154811061163157fe5b90600052602060002001908051906020019061164e929190617d28565b505b60010161141b565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b442468260405161168891906193bb565b60405180910390a150505050610e94565b6060806116a68386615824565b9150915060005b60015481101561179c576000600182815481106116c657fe5b906000526020600020906004020160030154905080600014611793576000600183815481106116f157fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab826001858154811061172557fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b168152611760926001600160a01b0390921691016184f9565b6000604051808303818588803b15801561177957600080fd5b505af115801561178d573d6000803e3d6000fd5b50505050505b506001016116ad565b50471561180a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516117d291906193bb565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015611808573d6000803e3d6000fd5b505b60006003819055600555815115611825576118258282615d0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561186257600080fd5b505af1158015611876573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118de5760405162461bcd60e51b8152600401610e7290619375565b60005b60155481101561196657816001600160a01b03166015828154811061190257fe5b60009182526020909120600490910201546001600160a01b0316141561195e5760016015828154811061193157fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611966565b6001016118e1565b5050565b3341146119895760405162461bcd60e51b8152600401610e7290619213565b60105443116119aa5760405162461bcd60e51b8152600401610e7290618a90565b3a156119c85760405162461bcd60e51b8152600401610e7290618f1b565b60005460ff166119ea5760405162461bcd60e51b8152600401610e729061886e565b60006110023168056bc75e2d63100000811115611a2157611a1a8168056bc75e2d6310000063ffffffff6164fd16565b9150611a28565b5050611ca9565b6040516309a99b4f60e41b815261100290639a99b4f090611a4f903090869060040161850d565b602060405180830381600087803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa191906183a4565b915081611aaf575050611ca9565b6000805b84811015611add57858582818110611ac757fe5b9050602002013582019150806001019050611ab3565b5080611aeb57505050611ca9565b6000806000805b89811015611ca15784898983818110611b0757fe5b90506020020135880281611b1757fe5b0493508a8a82818110611b2657fe5b9050602002016020810190611b3b919061814d565b6001600160a01b03811660009081526004602052604090205490935091508115611c57576000600180840381548110611b7057fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611bdd57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611bd091906193bb565b60405180910390a2611c51565b600354611bf0908663ffffffff61653f16565b6003908155810154611c08908663ffffffff61653f16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611c489088906193bb565b60405180910390a25b50611c99565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c9091906193bb565b60405180910390a25b600101611af2565b505050505050505b5050436010555050565b6001546000908210611cc757506000611d7d565b60006001600160a01b031660018381548110611cdf57fe5b60009182526020909120600490910201546001600160a01b03161480611d0f57506008541580611d0f5750600a54155b80611d1e575060085460095410155b80611d2f5750611d2d82611d82565b155b80611d5857506000600b8381548110611d4457fe5b906000526020600020906016020160000154115b80611d6c57506001611d68613362565b5111155b15611d7957506000611d7d565b5060015b919050565b6001546000908210611d9657506000611d7d565b600b548210611dd35760018281548110611dac57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d7d565b60018281548110611de057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611e2d5750600b8281548110611e1457fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611ef157611e42617cf9565b60015460005b81811015611eed57600b805460018101825560009190915283516000805160206194c88339815191526016909202918201908155602080860151600080516020619af78339815191528401805460ff1916911515919091179055604086015180518794611ec9936000805160206194e8833981519152909101920190617d28565b506060820151611edf9060038301906013617da2565b505050806001019050611e48565b5050505b336110011480611f02575033612002145b611f1e5760405162461bcd60e51b8152600401610e72906188a5565b6001600160a01b03811660009081526004602052604090205480611f425750611f95565b6001810390506000600b8281548110611f5757fe5b600091825260209091206001601690920201015460ff169050611f7a8383615461565b8015611f835750805b15610e94576009805460001901905550505b50565b60015460609081906000805b82811015611feb5760018181548110611fb957fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611fe3576001909101905b600101611fa4565b50606081604051908082528060200260200182016040528015612018578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561205157816020015b606081526020019060019003908161203c5790505b50600b54600094509091508414156121cc5760005b848110156121c6576001818154811061207b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121be57600181815481106120ab57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106120d657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061210357fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561219b5780601f106121705761010080835404028352916020019161219b565b820191906000526020600020905b81548152906001019060200180831161217e57829003601f168201915b50505050508285815181106121ac57fe5b60209081029190910101526001909301925b600101612066565b50612268565b60005b8481101561226657600181815481106121e457fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661225e576001818154811061221457fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061223f57fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016121cf565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c54116122ab5760156122af565b600c545b905060606122bb613362565b905060606122c882616564565b9050828251116122df579094509250612270915050565b838383510310156122f1578282510393505b83156123275760c8430461230d83838388880360008a8a6166d2565b6123258383838888038989038a8b8b8b5103016166d2565b505b606083604051908082528060200260200182016040528015612353578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561238c57816020015b60608152602001906001900390816123775790505b50905060005b8581101561240d578481815181106123a657fe5b60200260200101518382815181106123ba57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106123e657fe5b60200260200101518282815181106123fa57fe5b6020908102919091010152600101612392565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b03811660009081526004602052604081205480612455576000915050611d7d565b600019016111c081611d82565b6001600160a01b0381166000908152600460205260408120548061248a576000915050611d7d565b60018082038154811061249957fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b601281815481106124ca57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561255b5780601f106125305761010080835404028352916020019161255b565b820191906000526020600020905b81548152906001019060200180831161253e57829003601f168201915b505050505081565b60105481565b6001818154811061257657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146126265760405162461bcd60e51b8152600401610e72906191c4565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f3890210160583838360405161265993929190619404565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6000601754600014156126965750600161269b565b506017545b90565b6001600160a01b038116600090815260046020526040812054806126d45760405162461bcd60e51b8152600401610e729061914c565b6000190192915050565b600b5461279c576126ed617cf9565b60015460005b8181101561279857600b805460018101825560009190915283516000805160206194c88339815191526016909202918201908155602080860151600080516020619af78339815191528401805460ff1916911515919091179055604086015180518794612774936000805160206194e8833981519152909101920190617d28565b50606082015161278a9060038301906013617da2565b5050508060010190506126f3565b5050505b6008546127a95760036008555b600a546127b6576002600a555b60006127c13361269e565b90506127cc81611cb3565b6127e85760405162461bcd60e51b8152600401610e7290618e52565b611f953382616829565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016195086105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff1661286c5760405162461bcd60e51b8152600401610e729061886e565b336110071461288d5760405162461bcd60e51b8152600401610e7290618f49565b6128f784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506168c19050565b15612994576020811461291c5760405162461bcd60e51b8152600401610e7290619106565b604080516020601f840181900481028201810190925282815260009161295a9185858083850183828082843760009201919091525061691a92505050565b9050606481101580156129705750620186a08111155b61298c5760405162461bcd60e51b8152600401610e7290618cb3565b600255613300565b6129f484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506168c19050565b15612aa95760208114612a195760405162461bcd60e51b8152600401610e72906186f4565b604080516020601f8401819004810282018101909252828152600091612a579185858083850183828082843760009201919091525061691a92505050565b9050612710612a83601854612a77600f548561653f90919063ffffffff16565b9063ffffffff61653f16565b1115612aa15760405162461bcd60e51b8152600401610e7290618bd9565b600655613300565b612b1384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506168c19050565b15612bad5760208114612b385760405162461bcd60e51b8152600401610e729061872b565b604080516020601f8401819004810282018101909252828152600091612b769185858083850183828082843760009201919091525061691a92505050565b600c5490915080612b85575060155b808210612ba45760405162461bcd60e51b8152600401610e7290618afa565b50600855613300565b612c1684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506168c19050565b15612caf5760208114612c3b5760405162461bcd60e51b8152600401610e72906187f4565b604080516020601f8401819004810282018101909252828152600091612c799185858083850183828082843760009201919091525061691a92505050565b9050600081118015612c8b5750600a81105b612ca75760405162461bcd60e51b8152600401610e72906192a8565b600a55613300565b612d2384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506168c19050565b15612db25760208114612d485760405162461bcd60e51b8152600401610e72906187a8565b604080516020601f8401819004810282018101909252828152600091612d869185858083850183828082843760009201919091525061691a92505050565b9050600d54811115612daa5760405162461bcd60e51b8152600401610e7290618d29565b600e55613300565b612e1b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506168c19050565b15612e9d5760208114612e405760405162461bcd60e51b8152600401610e7290618f97565b604080516020601f8401819004810282018101909252828152600091612e7e9185858083850183828082843760009201919091525061691a92505050565b600d819055600e54909150811015612e9757600d54600e555b50613300565b612f0184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506168c19050565b15612faf5760208114612f265760405162461bcd60e51b8152600401610e7290618839565b604080516020601f8401819004810282018101909252828152600091612f649185858083850183828082843760009201919091525061691a92505050565b905060008111612f865760405162461bcd60e51b8152600401610e72906189a2565b6064811115612fa75760405162461bcd60e51b8152600401610e72906189ea565b600c55613300565b61301b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601581527473797374656d52657761726442617365526174696f60581b602082015291506168c19050565b156130c457602081146130405760405162461bcd60e51b8152600401610e7290619260565b604080516020601f840181900481028201810190925282815260009161307e9185858083850183828082843760009201919091525061691a92505050565b905061271061309e601854612a776006548561653f90919063ffffffff16565b11156130bc5760405162461bcd60e51b8152600401610e7290618913565b600f55613300565b61313884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f73797374656d526577617264416e74694d4556526174696f0000000000000000602082015291506168c19050565b156131e1576020811461315d5760405162461bcd60e51b8152600401610e7290618c68565b604080516020601f840181900481028201810190925282815260009161319b9185858083850183828082843760009201919091525061691a92505050565b90506127106131bb600f54612a776006548561653f90919063ffffffff16565b11156131d95760405162461bcd60e51b8152600401610e7290618dc3565b601855613300565b61324284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a8152690e8eae4dc98cadccee8d60b31b602082015291506168c19050565b156132e857602081146132675760405162461bcd60e51b8152600401610e7290618b57565b604080516020601f84018190048102820181019092528281526000916132a59185858083850183828082843760009201919091525061691a92505050565b9050600381101580156132b9575060098111155b806132c45750806001145b6132e05760405162461bcd60e51b8152600401610e7290619080565b601755613300565b60405162461bcd60e51b8152600401610e7290619305565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161333594939291906186c2565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156133915761337d81611d82565b15613389578160010191505b60010161336c565b506060816040519080825280602002602001820160405280156133be578160200160208202803683370190505b5090506000915060005b83811015613445576133d981611d82565b1561343d57600181815481106133eb57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061341657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016133c8565b509250505090565b601581565b61027181565b61100281565b60175481565b601381815481106124ca57fe5b60185481565b6000613481613362565b519050600080600c541161349657601561349a565b600c545b9050808211156134a8578091505b816134b257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff16156134f75760405162461bcd60e51b8152600401610e7290619049565b6134ff617dcf565b60006135256040518061062001604052806105ef81526020016195086105ef9139614082565b91509150806135465760405162461bcd60e51b8152600401610e7290619183565b60005b82602001515181101561366b5760018360200151828151811061356857fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061363e57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613549565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156137925761377a85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506013805490925085915081106136e257fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156137705780601f1061374557610100808354040283529160200191613770565b820191906000526020600020905b81548152906001019060200180831161375357829003601f168201915b505050505061691f565b1561378a57600192505050611e2d565b600101613691565b5060125460005b81811015613803576137ea86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506012805490925085915081106136e257fe5b156137fb5760019350505050611e2d565b600101613799565b50600095945050505050565b33611001146138305760405162461bcd60e51b8152600401610e729061932c565b600b546138ee5761383f617cf9565b60015460005b818110156138ea57600b805460018101825560009190915283516000805160206194c88339815191526016909202918201908155602080860151600080516020619af78339815191528401805460ff19169115159190911790556040860151805187946138c6936000805160206194e8833981519152909101920190617d28565b5060608201516138dc9060038301906013617da2565b505050806001019050613845565b5050505b60006138f982616983565b905061390481611cb3565b15611966576119668282616829565b606581565b601181565b33411461393c5760405162461bcd60e51b8152600401610e7290619213565b60005460ff1661395e5760405162461bcd60e51b8152600401610e729061886e565b6000341161397e5760405162461bcd60e51b8152600401610e7290618cfa565b3a1561399c5760405162461bcd60e51b8152600401610e7290618f1b565b6001600160a01b03811660009081526004602052604090205460145434919060ff166139dc57610271600f556103e86006556014805460ff191660011790555b600f5460175460011080156139f357506000601854115b15613a18576001601754036017544381613a0957fe5b066018540281613a1557fe5b04015b600083118015613a285750600081115b15613ad5576000613a51612710613a45348563ffffffff616b0616565b9063ffffffff616b4016565b90508015613ad3576040516110029082156108fc029083906000818181858888f19350505050158015613a88573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051613ab891906193bb565b60405180910390a1613ad0848263ffffffff6164fd16565b93505b505b600083118015613ae757506000600654115b15613b8d576000613b09612710613a4560065434616b0690919063ffffffff16565b90508015613b8b5760405161dead9082156108fc029083906000818181858888f19350505050158015613b40573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051613b7091906193bb565b60405180910390a1613b88848263ffffffff6164fd16565b93505b505b8115613c8b576000600180840381548110613ba457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615613c1157846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051613c0491906193bb565b60405180910390a2613c85565b600354613c24908563ffffffff61653f16565b6003908155810154613c3c908563ffffffff61653f16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590613c7c9087906193bb565b60405180910390a25b50613ccd565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051613cc491906193bb565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110613cf257fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613d9d5780601f10613d7257610100808354040283529160200191613d9d565b820191906000526020600020905b815481529060010190602001808311613d8057829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613dbe575082155b80613dc95750600954155b15613dd65750600061407a565b60096000815460019003919050819055506000613e21600a54613a4586613a45600b8a81548110613e0357fe5b6000918252602090912060169091020154439063ffffffff6164fd16565b90506000600b8681548110613e3257fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613e9757600080fd5b505afa158015613eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ecf91906183bc565b915091506000935080831061403057613ee88888615461565b5060405163436aa28360e11b8152600090612002906386d5450690613f11908c906004016184f9565b60206040518083038186803b158015613f2957600080fd5b505afa158015613f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f619190618169565b6001600160a01b031614613fcf576040516328aa02b160e01b8152611001906328aa02b190613f98908b9087908a90600401618568565b600060405180830381600087803b158015613fb257600080fd5b505af1158015613fc6573d6000803e3d6000fd5b50505050614027565b6040516305bfb49960e41b815261100190635bfb499090613ff4908b906004016184f9565b600060405180830381600087803b15801561400e57600080fd5b505af1158015614022573d6000803e3d6000fd5b505050505b60019350614042565b8183106140425761404088616983565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b61408a617dcf565b6000614094617dcf565b61409c617e6c565b6140ad6140a886616b82565b616ba7565b90506000805b6140bc83616bf1565b1561423057806140e1576140d76140d284616c12565b616c60565b60ff168452614228565b80600114156142235760606140fd6140f885616c12565b616ce0565b9050805160405190808252806020026020018201604052801561413a57816020015b614127617df3565b81526020019060019003908161411f5790505b508560200181905250805160405190808252806020026020018201604052801561417857816020015b60608152602001906001900390816141635790505b50604086015260005b815181101561421857614192617df3565b606060006141b28585815181106141a557fe5b6020026020010151616db1565b925092509250806141d2578860009a509a50505050505050505050614239565b82896020015185815181106141e357fe5b602002602001018190525081896040015185815181106141ff57fe5b6020026020010181905250505050806001019050614181565b506001925050614228565b614230565b6001016140b3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161425857905050905061427e8363ffffffff16616ecb565b8160008151811061428b57fe5b60200260200101819052506111c081616ede565b60006064835111156142d6576000805160206194a88339815191526040516142c690618a47565b60405180910390a1506066611e2d565b60005b83518110156143745760005b8181101561436b578481815181106142f957fe5b6020026020010151600001516001600160a01b031685838151811061431a57fe5b6020026020010151600001516001600160a01b03161415614363576000805160206194a883398151915260405161435090618b8e565b60405180910390a1606692505050611e2d565b6001016142e5565b506001016142d9565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156144265760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161439c565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156144fb5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156144e75780601f106144bc576101008083540402835291602001916144e7565b820191906000526020600020905b8154815290600101906020018083116144ca57829003601f168201915b505050505081526020019060010190614450565b50505050905060005b82518110156145585782818151811061451957fe5b60200260200101516060015160030283828151811061453457fe5b60209081029190910101516001600160401b03909116606090910152600101614504565b5060608061456889898686616f68565b915091506145768282615824565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156145b5578160200160208202803683370190505b50905060005b828110156147465760006001600160a01b03166120026001600160a01b03166386d54506600184815481106145ec57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614627926001600160a01b0390921691016184f9565b60206040518083038186803b15801561463f57600080fd5b505afa158015614653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146779190618169565b6001600160a01b0316146146d957600182828151811061469357fe5b602002602001019060ff16908160ff1681525050600181815481106146b457fe5b9060005260206000209060040201600301546000146146d4578360010193505b61473e565b67016345785d8a0000600182815481106146ef57fe5b906000526020600020906004020160030154106147115784600101945061473e565b6001818154811061471e57fe5b90600052602060002090600402016003015460001461473e578360010193505b6001016145bb565b50606084604051908082528060200260200182016040528015614773578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156147a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156147d1578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015614800578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614831578160200160208202803683370190505b509050606089604051908082528060200260200182016040528015614860578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156148a857600080fd5b505afa1580156148bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e091906183a4565b905067016345785d8a000081111561492c576000805160206194a883398151915260405161490d90619008565b60405180910390a160689e505050505050505050505050505050611e2d565b60005b8a811015614cc05789818151811061494357fe5b602002602001015160ff1660011415614a39576001818154811061496357fe5b906000526020600020906004020160030154600014614a34576001818154811061498957fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106149b457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106149e157fe5b906000526020600020906004020160030154838d815181106149ff57fe5b60200260200101818152505060018a8d81518110614a1957fe5b602002602001019060ff16908160ff16815250508b6001019b505b614cb8565b67016345785d8a000060018281548110614a4f57fe5b90600052602060002090600402016003015410614bd45760018181548110614a7357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e81518110614aa457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be40060018381548110614ad957fe5b90600052602060002090600402016003015481614af257fe5b0660018381548110614b0057fe5b906000526020600020906004020160030154039050614b2883826164fd90919063ffffffff16565b898f81518110614b3457fe5b60200260200101818152505060018281548110614b4d57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f81518110614b7e57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f81518110614bab57fe5b6020908102919091010152614bc6868263ffffffff61653f16565b95508d6001019d5050614cb8565b60018181548110614be157fe5b906000526020600020906004020160030154600014614cb85760018181548110614c0757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d81518110614c3857fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614c6557fe5b906000526020600020906004020160030154838d81518110614c8357fe5b60200260200101818152505060008a8d81518110614c9d57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161492f565b5060008415614f36576002546040516303702b2960e51b815261100491636e056520918891614cfa918e918e918d9142019060040161862a565b6020604051808303818588803b158015614d1357600080fd5b505af193505050508015614d44575060408051601f3d908101601f19168201909252614d41918101906182d1565b60015b614ebb576040516000815260443d1015614d6057506000614dfb565b60046000803e60005160e01c6308c379a08114614d81576000915050614dfb565b60043d036004833e81513d60248201116001600160401b0382111715614dac57600092505050614dfb565b80830180516001600160401b03811115614dcd576000945050505050614dfb565b8060208301013d8601811115614deb57600095505050505050614dfb565b601f01601f191660405250925050505b80614e065750614e48565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614e3a91906186af565b60405180910390a250614eb6565b3d808015614e72576040519150601f19603f3d011682016040523d82523d6000602084013e614e77565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614eac91906186af565b60405180910390a2505b614f36565b8015614efd577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614ef091906193bb565b60405180910390a1614f34565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614f2b90618771565b60405180910390a25b505b80156150ec5760005b87518110156150ea576000888281518110614f5657fe5b60200260200101519050600060018281548110614f6f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614fa057fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f193505050509050801561505c5760018281548110614fe157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061503057fe5b90600052602060002090600402016003015460405161504f91906193bb565b60405180910390a26150e0565b6001828154811061506957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d91859081106150b857fe5b9060005260206000209060040201600301546040516150d791906193bb565b60405180910390a25b5050600101614f3f565b505b8351156152e25760005b84518110156152e0578a818151811061510b57fe5b602002602001015160ff16600114156151aa576120026001600160a01b031663092193ab85838151811061513b57fe5b602002602001015187848151811061514f57fe5b60200260200101516040518363ffffffff1660e01b815260040161517391906184f9565b6000604051808303818588803b15801561518c57600080fd5b505af11580156151a0573d6000803e3d6000fd5b50505050506152d8565b60008582815181106151b857fe5b60200260200101516001600160a01b03166108fc8684815181106151d857fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561526e5785828151811061520e57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d86848151811061524c57fe5b602002602001015160405161526191906193bb565b60405180910390a26152d6565b85828151811061527a57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d8684815181106152b857fe5b60200260200101516040516152cd91906193bb565b60405180910390a25b505b6001016150f6565b505b5050505050505050505050505060005b60015481101561534f576001818154811061530957fe5b9060005260206000209060040201600301546000146153475760006001828154811061533157fe5b9060005260206000209060040201600301819055505b6001016152f2565b5047156153bd577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161538591906193bb565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156153bb573d6000803e3d6000fd5b505b600060038190556005558151156153d8576153d88282615d0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561541557600080fd5b505af1158015615429573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061547157fe5b9060005260206000209060040201600301549050600060018080549050039050600161549b613362565b51116154d0576000600185815481106154b057fe5b906000526020600020906004020160030181905550600092505050611e2d565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a708360405161550991906193bb565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156156f6576001816001018154811061554a57fe5b90600052602060002090600402016001828154811061556557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061562657fe5b9060005260206000209060160201600b828154811061564157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615698938386019390821615610100026000190190911604617e8c565b506156ab60038281019084016013617f01565b509050508060010160046000600184815481106156c457fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161552c565b50600180548061570257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061575557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906157876002830182617e28565b615795600383016000617f2b565b5050905560008183816157a457fe5b04905080156158185760015460005b81811015615815576157ec83600183815481106157cc57fe5b90600052602060002090600402016003015461653f90919063ffffffff16565b600182815481106157f957fe5b60009182526020909120600360049092020101556001016157b3565b50505b50600195945050505050565b606080600080808080615835613477565b6001549091505b8015615a6757600181039250600b838154811061585557fe5b600091825260209091206001601690920201015460ff1661587557615a5e565b6001838154811061588257fe5b600091825260208220600490910201546001600160a01b031695506158ac90869085908590613dad565b9350836158b857615a5e565b60405163436aa28360e11b81526000908190612002906386d54506906158e2908a906004016184f9565b60206040518083038186803b1580156158fa57600080fd5b505afa15801561590e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159329190618169565b90506001600160a01b038116156159bb576040516302ceee9160e11b81526120029063059ddd22906159689084906004016184f9565b60206040518083038186803b15801561598057600080fd5b505afa158015615994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159b89190618169565b91505b60005b8c51811015615a5a57876001600160a01b03168d82815181106159dd57fe5b6020026020010151600001516001600160a01b03161480615a265750826001600160a01b03168d8281518110615a0f57fe5b6020026020010151600001516001600160a01b0316145b15615a525760018d8281518110615a3957fe5b6020908102919091010151901515608090910152615a5a565b6001016159be565b5050505b6000190161583c565b5060005b8951811015615ad457898181518110615a8057fe5b60200260200101516080015180615ac0575060006001600160a01b03168a8281518110615aa957fe5b6020026020010151600001516001600160a01b0316145b15615acc578560010195505b600101615a6b565b5088518510615bbc5760408051600180825281830190925290816020015b615afa617df3565b815260200190600190039081615af2575050604080516001808252818301909252919850602082015b6060815260200190600190039081615b2357905050955088600081518110615b4757fe5b602002602001015187600081518110615b5c57fe5b602002602001018190525087600081518110615b7457fe5b602002602001015186600081518110615b8957fe5b6020026020010181905250600087600081518110615ba357fe5b6020908102919091010151901515608090910152615d01565b84895103604051908082528060200260200182016040528015615bf957816020015b615be6617df3565b815260200190600190039081615bde5790505b50965084895103604051908082528060200260200182016040528015615c3357816020015b6060815260200190600190039081615c1e5790505b5095506000915060005b8951811015615cff57898181518110615c5257fe5b602002602001015160800151158015615c95575060006001600160a01b03168a8281518110615c7d57fe5b6020026020010151600001516001600160a01b031614155b15615cf757898181518110615ca657fe5b6020026020010151888481518110615cba57fe5b6020026020010181905250888181518110615cd157fe5b6020026020010151878481518110615ce557fe5b60200260200101819052508260010192505b600101615c3d565b505b50505050505b9250929050565b600154825160005b82811015615e2b576001615d28617df3565b60018381548110615d3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615dff57878181518110615dc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615df75760009250615dff565b600101615db1565b508115615e215780516001600160a01b03166000908152600460205260408120555b5050600101615d16565b5080821115615eea57805b82811015615ee8576001805480615e4957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615e9c57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615ece6002830182617e28565b615edc600383016000617f2b565b50509055600101615e36565b505b6000818310615ef95781615efb565b825b905060005b8181101561629f57615fad868281518110615f1757fe5b602002602001015160018381548110615f2c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617334565b616161578060010160046000888481518110615fc557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061600157fe5b60200260200101516001828154811061601657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106160d157fe5b6020026020010151600b82815481106160e657fe5b9060005260206000209060160201600201908051906020019061610a929190617d28565b506000600b828154811061611a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061614b57fe5b6000918252602090912060169091020155616297565b85818151811061616d57fe5b6020026020010151606001516001828154811061618657fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555061624c8582815181106161ca57fe5b6020026020010151600b83815481106161df57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156137705780601f1061374557610100808354040283529160200191613770565b6162975784818151811061625c57fe5b6020026020010151600b828154811061627157fe5b90600052602060002090601602016002019080519060200190616295929190617d28565b505b600101615f00565b5082821115616477576162b0617cf9565b835b83811015616474578581815181106162c657fe5b6020026020010151826040018190525060018782815181106162e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206194c8833981519152810191825585830151600080516020619af78339815191528201805491151560ff199092169190911790559285015180518694929361641a936000805160206194e883398151915201920190617d28565b5060608201516164309060038301906013617da2565b505050806001016004600089848151811061644757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016162b2565b50505b61647f617390565b616487617572565b6000600981905560015493505b838110156164f5576000600b82815481106164ab57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106164dc57fe5b6000918252602090912060169091020155600101616494565b505050505050565b60006111c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617760565b6000828201838110156111c05760405162461bcd60e51b8152600401610e72906188dc565b6001548151604080518281526020808402820101909152606092919083908280156165a357816020015b606081526020019060019003908161658e5790505b50600b5490915083146165ba579250611d7d915050565b60005b828110156166c957600b6001600460008985815181106165d957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061660d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156166a55780601f1061667a576101008083540402835291602001916166a5565b820191906000526020600020905b81548152906001019060200180831161668857829003601f168201915b50505050508282815181106166b657fe5b60209081029190910101526001016165bd565b50949350505050565b60005b8281101561681f57600082878388016040516020016166f59291906184eb565b6040516020818303038152906040528051906020012060001c8161671557fe5b06905080850182870114616816576000898388018151811061673357fe5b602002602001015190506060898489018151811061674d57fe5b602002602001015190508a8388018151811061676557fe5b60200260200101518b858a018151811061677b57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106167aa57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106167d857fe5b60200260200101518a858a01815181106167ee57fe5b6020026020010181905250808a8489018151811061680857fe5b602002602001018190525050505b506001016166d5565b5050505050505050565b600980546001908101909155600b80548390811061684357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061687957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016168d491906184cf565b60405160208183030381529060405280519060200120836040516020016168fb91906184cf565b6040516020818303038152906040528051906020012014905092915050565b015190565b81518151600091600191811480831461693b5760009250616979565b600160208701838101602088015b6002848385100114156169745780518351146169685760009650600093505b60209283019201616949565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806169ac57506000199050611d7d565b6001810390506000600182815481106169c157fe5b90600052602060002090600402016003015490506000600183815481106169e457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616a3d9085906193bb565b60405180910390a280616a5557829350505050611d7d565b6000818381616a6057fe5b0490508015616afc5760005b84811015616aae57616a8582600183815481106157cc57fe5b60018281548110616a9257fe5b6000918252602090912060036004909202010155600101616a6c565b50600180549085015b81811015616af957616ad083600183815481106157cc57fe5b60018281548110616add57fe5b6000918252602090912060036004909202010155600101616ab7565b50505b5091949350505050565b600082616b1557506000611e2d565b82820282848281616b2257fe5b04146111c05760405162461bcd60e51b8152600401610e7290618eda565b60006111c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061778c565b616b8a617f3a565b506040805180820190915281518152602082810190820152919050565b616baf617e6c565b616bb8826177c3565b616bc157600080fd5b6000616bd083602001516177fd565b60208085015160408051808201909152868152920190820152915050919050565b6000616bfb617f3a565b505080518051602091820151919092015191011190565b616c1a617f3a565b616c2382616bf1565b616c2c57600080fd5b60208201516000616c3c82617860565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590616c7557508151602110155b616c7e57600080fd5b6000616c8d83602001516177fd565b90508083600001511015616cb35760405162461bcd60e51b8152600401610e72906190cf565b8251602080850151830180519284900392918310156166c957506020919091036101000a90049392505050565b6060616ceb826177c3565b616cf457600080fd5b6000616cff83617941565b9050606081604051908082528060200260200182016040528015616d3d57816020015b616d2a617f3a565b815260200190600190039081616d225790505b5090506000616d4f85602001516177fd565b60208601510190506000805b84811015616da657616d6c83617860565b9150604051806040016040528083815260200184815250848281518110616d8f57fe5b602090810291909101015291810191600101616d5b565b509195945050505050565b616db9617df3565b60606000616dc5617df3565b6060616dcf617e6c565b616dd887616ba7565b90506000805b616de783616bf1565b15616ebc5780616e1257616e02616dfd84616c12565b61799d565b6001600160a01b03168552616eb4565b8060011415616e3a57616e27616dfd84616c12565b6001600160a01b03166020860152616eb4565b8060021415616e6257616e4f616dfd84616c12565b6001600160a01b03166040860152616eb4565b8060031415616e8e57616e776140d284616c12565b6001600160401b0316606086015260019150616eb4565b8060041415616eaf57616ea8616ea384616c12565b6179b7565b9350616eb4565b616ebc565b600101616dde565b50929791965091945092505050565b6060611e2d616ed983617a27565b617b0d565b6060815160001415616eff5750604080516000815260208101909152611d7d565b606082600081518110616f0e57fe5b602002602001015190506000600190505b8351811015616f4f57616f4582858381518110616f3857fe5b6020026020010151617b5f565b9150600101616f1f565b506111c0616f62825160c060ff16617bdc565b82617b5f565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616fa857600080fd5b505afa158015616fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616fe091906183a4565b90508085518851011015616ff5575083518651015b60608160405190808252806020026020018201604052801561703157816020015b61701e617df3565b8152602001906001900390816170165790505b50905060608260405190808252806020026020018201604052801561706a57816020015b60608152602001906001900390816170555790505b50905060008060005b8b518310806170825750895182105b801561708d57508581105b15617322578b518314156170fd578982815181106170a757fe5b60200260200101518582815181106170bb57fe5b60200260200101819052508882815181106170d257fe5b60200260200101518482815181106170e657fe5b602090810291909101015260019182019101617073565b8951821415617168578b838151811061711257fe5b602002602001015185828151811061712657fe5b60200260200101819052508a838151811061713d57fe5b602002602001015184828151811061715157fe5b602090810291909101015260019283019201617073565b89828151811061717457fe5b6020026020010151606001516001600160401b03168c848151811061719557fe5b6020026020010151606001516001600160401b03161115617211578b83815181106171bc57fe5b60200260200101518582815181106171d057fe5b60200260200101819052508a83815181106171e757fe5b60200260200101518482815181106171fb57fe5b602002602001018190525082600101925061731a565b89828151811061721d57fe5b6020026020010151606001516001600160401b03168c848151811061723e57fe5b6020026020010151606001516001600160401b031610156172ba5789828151811061726557fe5b602002602001015185828151811061727957fe5b602002602001018190525088828151811061729057fe5b60200260200101518482815181106172a457fe5b602002602001018190525081600101915061731a565b8982815181106172c657fe5b6020026020010151600001516001600160a01b03168c84815181106172e757fe5b6020026020010151600001516001600160a01b0316101561730e578b83815181106171bc57fe5b8982815181106170a757fe5b600101617073565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561736e575081602001516001600160a01b031683602001516001600160a01b0316145b80156111c05750506040908101519101516001600160a01b0390811691161490565b601254601354808211156173db57805b828110156173d95760128054806173b357fe5b6001900381819060005260206000200160006173cf9190617e28565b90556001016173a0565b505b60008183106173ea57816173ec565b825b905060005b81811015617504576174a96012828154811061740957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156174975780601f1061746c57610100808354040283529160200191617497565b820191906000526020600020905b81548152906001019060200180831161747a57829003601f168201915b5050505050601383815481106136e257fe5b6174fc57601381815481106174ba57fe5b90600052602060002001601282815481106174d157fe5b9060005260206000200190805460018160011615610100020316600290046174fa929190617e8c565b505b6001016173f1565b5082821115610e9457825b82811015613ccd5760126013828154811061752657fe5b6000918252602080832084546001818101875595855291909320929091018054617569949390920192909160026101009282161592909202600019011604617e8c565b5060010161750f565b601354600b54808211156175bd57805b828110156175bb57601380548061759557fe5b6001900381819060005260206000200160006175b19190617e28565b9055600101617582565b505b60008183106175cc57816175ce565b825b905060005b818110156176ed5761768b601382815481106175eb57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156176795780601f1061764e57610100808354040283529160200191617679565b820191906000526020600020905b81548152906001019060200180831161765c57829003601f168201915b5050505050600b83815481106161df57fe5b6176e557600b818154811061769c57fe5b9060005260206000209060160201600201601382815481106176ba57fe5b9060005260206000200190805460018160011615610100020316600290046176e3929190617e8c565b505b6001016175d3565b5082821115610e9457825b82811015613ccd576013600b828154811061770f57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461775795939094019390926000199082161561010002011604617e8c565b506001016176f8565b600081848411156177845760405162461bcd60e51b8152600401610e7291906186af565b505050900390565b600081836177ad5760405162461bcd60e51b8152600401610e7291906186af565b5060008385816177b957fe5b0495945050505050565b80516000906177d457506000611d7d565b6020820151805160001a9060c08210156177f357600092505050611d7d565b5060019392505050565b8051600090811a6080811015617817576000915050611d7d565b60b8811080617832575060c08110801590617832575060f881105b15617841576001915050611d7d565b60c08110156178555760b519019050611d7d565b60f519019050611d7d565b80516000908190811a608081101561787b576001915061793a565b60b881101561789057607e198101915061793a565b60c08110156178e157600060b78203600186019550806020036101000a8651049150600181018201935050808310156178db5760405162461bcd60e51b8152600401610e7290618d98565b5061793a565b60f88110156178f65760be198101915061793a565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156179385760405162461bcd60e51b8152600401610e7290618d98565b505b5092915050565b805160009061795257506000611d7d565b6000809050600061796684602001516177fd565b602085015185519181019250015b808210156179945761798582617860565b82019150826001019250617974565b50909392505050565b80516000906015146179ae57600080fd5b611e2d82616c60565b80516060906179c557600080fd5b60006179d483602001516177fd565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617a0b576020820181803683370190505b50905060008160200190506166c9848760200151018285617cae565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416617a6b57506018617a8f565b6fffffffffffffffffffffffffffffffff198416617a8b57506010617a8f565b5060005b6020811015617ac557818181518110617aa457fe5b01602001516001600160f81b03191615617abd57617ac5565b600101617a8f565b60008160200390506060816040519080825280601f01601f191660200182016040528015617afa576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015617b3f5750607f60f81b82600081518110617b2d57fe5b01602001516001600160f81b03191611155b15617b4b575080611d7d565b611e2d617b5d8351608060ff16617bdc565b835b6060806040519050835180825260208201818101602087015b81831015617b90578051835260209283019201617b78565b50855184518101855292509050808201602086015b81831015617bbd578051835260209283019201617ba5565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310617c065760405162461bcd60e51b8152600401610e7290618ad2565b60408051600180825281830190925260609160208201818036833701905050905060378411617c605782840160f81b81600081518110617c4257fe5b60200101906001600160f81b031916908160001a9053509050611e2d565b6060617c6b85617a27565b90508381510160370160f81b82600081518110617c8457fe5b60200101906001600160f81b031916908160001a905350617ca58282617b5f565b95945050505050565b80617cb857610e94565b5b60208110617cd8578251825260209283019290910190601f1901617cb9565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617d23617f54565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617d6957805160ff1916838001178555617d96565b82800160010185558215617d96579182015b82811115617d96578251825591602001919060010190617d7b565b506134b2929150617f73565b8260138101928215617d965791602002820182811115617d96578251825591602001919060010190617d7b565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617e4e5750611f95565b601f016020900490600052602060002090810190611f959190617f73565b6040518060400160405280617e7f617f3a565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617ec55780548555617d96565b82800160010185558215617d9657600052602060002091601f016020900482015b82811115617d96578254825591600101919060010190617ee6565b8260138101928215617d965791820182811115617d96578254825591600101919060010190617ee6565b50611f95906013810190617f73565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269b91905b808211156134b25760008155600101617f79565b8035611e2d81619492565b60008083601f840112617fa9578182fd5b5081356001600160401b03811115617fbf578182fd5b6020830191508360208083028501011115615d0757600080fd5b6000601f8381840112617fea578182fd5b8235617ffd617ff882619447565b619421565b818152925060208084019085810160005b8481101561808f578135880189603f82011261802957600080fd5b838101356001600160401b0381111561804157600080fd5b618052818901601f19168601619421565b81815260408c8184860101111561806857600080fd5b8281850188840137506000918101860191909152855250928201929082019060010161800e565b50505050505092915050565b600082601f8301126180ab578081fd5b81356180b9617ff882619447565b8181529150602080830190848101818402860182018710156180da57600080fd5b6000805b8581101561808f5782356001600160401b03811681146180fc578283fd5b855293830193918301916001016180de565b60008083601f84011261811f578182fd5b5081356001600160401b03811115618135578182fd5b602083019150836020828501011115615d0757600080fd5b60006020828403121561815e578081fd5b81356111c081619492565b60006020828403121561817a578081fd5b81516111c081619492565b6000806000806040858703121561819a578283fd5b84356001600160401b03808211156181b0578485fd5b6181bc88838901617f98565b909650945060208701359150808211156181d4578384fd5b506181e187828801617f98565b95989497509550505050565b600080600060608486031215618201578283fd5b83356001600160401b0380821115618217578485fd5b81860187601f820112618228578586fd5b80359250618238617ff884619447565b80848252602080830192508084018b82838902870101111561825857898afd5b8994505b868510156182825761826e8c82617f8d565b84526001949094019392810192810161825c565b509097508801359350505080821115618299578384fd5b6182a58783880161809b565b935060408601359150808211156182ba578283fd5b506182c786828701617fd9565b9150509250925092565b6000602082840312156182e2578081fd5b815180151581146111c0578182fd5b60008060208385031215618303578182fd5b82356001600160401b03811115618318578283fd5b6183248582860161810e565b90969095509350505050565b60008060008060408587031215618345578384fd5b84356001600160401b038082111561835b578586fd5b6183678883890161810e565b9096509450602087013591508082111561837f578384fd5b506181e18782880161810e565b60006020828403121561839d578081fd5b5035919050565b6000602082840312156183b5578081fd5b5051919050565b600080604083850312156183ce578182fd5b505080516020909101519092909150565b6000806000604084860312156183f3578081fd5b833560ff81168114618403578182fd5b925060208401356001600160401b0381111561841d578182fd5b6184298682870161810e565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561846e5781516001600160a01b031687529582019590820190600101618449565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526184bb816020860160208601619466565b601f01601f19169290920160200192915050565b600082516184e1818460208701619466565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082526111c06020830184618436565b6000604082526185cd6040830185618436565b602083820381850152818551808452828401915082838202850101838801865b8381101561861b57601f198784030185526186098383516184a3565b948601949250908501906001016185ed565b50909998505050505050505050565b60006080825261863d6080830187618436565b828103602084810191909152865180835287820192820190845b8181101561867357845183529383019391830191600101618657565b505084810360408601526186878188618436565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b6000602082526111c060208301846184a3565b6000604082526186d6604083018688618479565b82810360208401526186e9818587618479565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526063908201527f7468652073797374656d52657761726442617365526174696f20706c7573206260408201527f75726e526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252601d908201527f6c656e677468206f66207475726e4c656e677468206d69736d61746368000000604082015260600190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526063908201527f746865206275726e526174696f20706c75732073797374656d5265776172644260408201527f617365526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b6020808252602b908201527f6c656e677468206f662073797374656d526577617264416e74694d455652617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526063908201527f7468652073797374656d526577617264416e74694d4556526174696f20706c7560408201527f73206275726e526174696f20616e642073797374656d5265776172644261736560608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252602f908201527f746865207475726e4c656e6774682073686f756c6420626520696e205b332c3960408201526e5d206f7220657175616c20746f203160881b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526028908201527f6c656e677468206f662073797374656d52657761726442617365526174696f206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152617ca560608301846184a3565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152617ca5604083018486618479565b6040518181016001600160401b038111828210171561943f57600080fd5b604052919050565b60006001600160401b0382111561945c578081fd5b5060209081020190565b60005b83811015619481578181015183820152602001619469565b83811115613ccd5750506000910152565b6001600160a01b0381168114611f9557600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/bohr/rialto/StakeHubContract b/core/systemcontracts/bohr/rialto/StakeHubContract new file mode 100644 index 0000000000..f48173ed1c --- /dev/null +++ b/core/systemcontracts/bohr/rialto/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003ff5760003560e01c80638456cb59116200020f578063cbb04d9d1162000123578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000c98578063fb50b31f1462000cbd578063fc0c5ff11462000ce2578063ff69ab611462000cfa57600080fd5b8063e992aaf51462000c15578063efdbf0e11462000c2d578063f1f74d841462000c69578063f1fad1041462000c8157600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000ba8578063daacdb661462000bc0578063dbda7fb31462000bd8578063e8f67c3b1462000bfd57600080fd5b8063cbb04d9d1462000b04578063d115a2061462000b45578063d6ca429d1462000b5e578063d7c2dfc81462000b8357600080fd5b8063ac43175111620001a5578063bff02e201162000170578063bff02e201462000a91578063c38fbec81462000ac7578063c473318f1462000aec578063c8509d8114620008e557600080fd5b8063ac4317511462000a0f578063b187bd261462000a34578063baa7199e1462000a54578063bdceadf31462000a7957600080fd5b80638cd22b2211620001e65780638cd22b22146200097a578063982ef0a7146200099f578063a43569b314620009b6578063aad3ec9614620009ea57600080fd5b80638456cb59146200090a57806386d5450614620009225780638a4d3fa8146200095c57600080fd5b806349f41a42116200031357806364028fbd116200029d57806375cc7d89116200026857806375cc7d89146200089057806376e7d6d614620008b55780638129fc1c14620008cd578063831d65d114620008e557600080fd5b806364028fbd14620007cb578063663706d314620007e25780636ec01b2714620008135780636f8e2fa4146200086b57600080fd5b80634e6fd6c411620002de5780634e6fd6c4146200073257806359491871146200074a5780635e7cc1c9146200076f57806363a036b5146200079457600080fd5b806349f41a4214620006995780634a49ac4c14620006be5780634bf6c88214620006e35780634d99dd16146200070d57600080fd5b80631fa8882b1162000395578063417c73a71162000360578063417c73a714620005e5578063449ecfe6146200060a57806345211bfd146200062f5780634838d165146200065457600080fd5b80631fa8882b14620005555780632b727c86146200056e5780632e8e8c7114620005935780633840998814620005cd57600080fd5b8063092193ab11620003d6578063092193ab14620004a05780630e9fbf5114620004b75780631182b87514620004dc57806317b4f353146200051057600080fd5b8063046f7da2146200041f578063059ddd2214620004375780630661806e146200047957600080fd5b366200041a5760345460ff166001146200041857600080fd5b005b600080fd5b3480156200042c57600080fd5b506200041862000d12565b3480156200044457600080fd5b506200045c62000456366004620098db565b62000da4565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200048657600080fd5b506200049160365481565b60405190815260200162000470565b62000418620004b1366004620098db565b620011cc565b348015620004c457600080fd5b5062000418620004d63660046200993f565b6200181d565b348015620004e957600080fd5b5062000501620004fb36600462009984565b62001b49565b60405162000470919062009a37565b3480156200051d57600080fd5b506200045c6200052f36600462009b2d565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200056257600080fd5b50620004916201518081565b3480156200057b57600080fd5b506200045c6200058d366004620098db565b62001ebc565b348015620005a057600080fd5b506200045c620005b2366004620098db565b604d602052600090815260409020546001600160a01b031681565b348015620005da57600080fd5b506200049160375481565b348015620005f257600080fd5b506200041862000604366004620098db565b62001f11565b3480156200061757600080fd5b506200041862000629366004620098db565b62001f93565b3480156200063c57600080fd5b50620004186200064e366004620098db565b62002178565b3480156200066157600080fd5b506200068862000673366004620098db565b60016020526000908152604090205460ff1681565b604051901515815260200162000470565b348015620006a657600080fd5b5062000418620006b8366004620098db565b62002377565b348015620006cb57600080fd5b5062000418620006dd366004620098db565b62002558565b348015620006f057600080fd5b50620006fa600881565b60405160ff909116815260200162000470565b3480156200071a57600080fd5b50620004186200072c36600462009b82565b620025d4565b3480156200073f57600080fd5b506200045c61dead81565b3480156200075757600080fd5b50620004186200076936600462009bc0565b62002c04565b3480156200077c57600080fd5b50620004186200078e36600462009c30565b620039fd565b348015620007a157600080fd5b50620007b9620007b336600462009c50565b62003c27565b60405162000470949392919062009cb9565b62000418620007dc36600462009d75565b620042cc565b348015620007ef57600080fd5b506200049162000801366004620098db565b60446020526000908152604090205481565b3480156200082057600080fd5b506200083862000832366004620098db565b62004950565b6040805182516001600160401b039081168252602080850151821690830152928201519092169082015260600162000470565b3480156200087857600080fd5b50620005016200088a366004620098db565b620049f5565b3480156200089d57600080fd5b5062000418620008af366004620098db565b62004e21565b348015620008c257600080fd5b5062000491603d5481565b348015620008da57600080fd5b506200041862004ff3565b348015620008f257600080fd5b50620004186200090436600462009984565b62005302565b3480156200091757600080fd5b50620004186200536c565b3480156200092f57600080fd5b506200045c62000941366004620098db565b6043602052600090815260409020546001600160a01b031681565b3480156200096957600080fd5b5062000491670de0b6b3a764000081565b3480156200098757600080fd5b50620004916200099936600462009b82565b62005404565b62000418620009b036600462009e4d565b620054bd565b348015620009c357600080fd5b50620009db620009d5366004620098db565b62005b5a565b60405162000470919062009e8b565b348015620009f757600080fd5b506200041862000a0936600462009b82565b62005e47565b34801562000a1c57600080fd5b506200041862000a2e36600462009f08565b62005eb4565b34801562000a4157600080fd5b5060005462010000900460ff1662000688565b34801562000a6157600080fd5b506200041862000a7336600462009fc1565b62006d53565b34801562000a8657600080fd5b5062000491603c5481565b34801562000a9e57600080fd5b5062000ab662000ab036600462009c50565b62006f20565b60405162000470939291906200a01d565b34801562000ad457600080fd5b506200041862000ae6366004620098db565b620070fc565b34801562000af957600080fd5b506200049160385481565b34801562000b1157600080fd5b5062000b2962000b23366004620098db565b620073be565b6040805193845291151560208401529082015260600162000470565b34801562000b5257600080fd5b5062000491620186a081565b34801562000b6b57600080fd5b506200041862000b7d3660046200a07a565b62007801565b34801562000b9057600080fd5b506200041862000ba23660046200a163565b62007a27565b34801562000bb557600080fd5b5062000491603b5481565b34801562000bcd57600080fd5b506200049160495481565b34801562000be557600080fd5b506200045c62000bf7366004620098db565b62007b1d565b34801562000c0a57600080fd5b506200049160355481565b34801562000c2257600080fd5b5062000491603a5481565b34801562000c3a57600080fd5b506200049162000c4c36600462009b2d565b805160208183018101805160468252928201919093012091525481565b34801562000c7657600080fd5b5062000491603e5481565b34801562000c8e57600080fd5b50620006fa601181565b34801562000ca557600080fd5b506200049162000cb736600462009b82565b62007f47565b34801562000cca57600080fd5b506200041862000cdc36600462009f08565b62007fb8565b34801562000cef57600080fd5b506200049160395481565b34801562000d0757600080fd5b5062000491604a5481565b600054630100000090046001600160a01b0316331462000d45576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000d6f57604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000e0f906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3d906200a1c9565b801562000e8e5780601f1062000e625761010080835404028352916020019162000e8e565b820191906000526020600020905b81548152906001019060200180831162000e7057829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000eb9906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462000ee7906200a1c9565b801562000f385780601f1062000f0c5761010080835404028352916020019162000f38565b820191906000526020600020905b81548152906001019060200180831162000f1a57829003601f168201915b5050505050815260200160018201805462000f53906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462000f81906200a1c9565b801562000fd25780601f1062000fa65761010080835404028352916020019162000fd2565b820191906000526020600020905b81548152906001019060200180831162000fb457829003601f168201915b5050505050815260200160028201805462000fed906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200101b906200a1c9565b80156200106c5780601f1062001040576101008083540402835291602001916200106c565b820191906000526020600020905b8154815290600101906020018083116200104e57829003601f168201915b5050505050815260200160038201805462001087906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620010b5906200a1c9565b8015620011065780601f10620010da5761010080835404028352916020019162001106565b820191906000526020600020905b815481529060010190602001808311620010e857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620011a5575050509190925250509051949350505050565b3361100014620011f857604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b0380821660009081526043602090815260408083205484168084526041835281842082516101808101845281548716815260018201548716948101949094526002810154909516918301919091526003840154606083015260048401805491949160808401919062001271906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200129f906200a1c9565b8015620012f05780601f10620012c457610100808354040283529160200191620012f0565b820191906000526020600020905b815481529060010190602001808311620012d257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200131b906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462001349906200a1c9565b80156200139a5780601f106200136e576101008083540402835291602001916200139a565b820191906000526020600020905b8154815290600101906020018083116200137c57829003601f168201915b50505050508152602001600182018054620013b5906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620013e3906200a1c9565b8015620014345780601f10620014085761010080835404028352916020019162001434565b820191906000526020600020905b8154815290600101906020018083116200141657829003601f168201915b505050505081526020016002820180546200144f906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200147d906200a1c9565b8015620014ce5780601f10620014a257610100808354040283529160200191620014ce565b820191906000526020600020905b815481529060010190602001808311620014b057829003601f168201915b50505050508152602001600382018054620014e9906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462001517906200a1c9565b8015620015685780601f106200153c5761010080835404028352916020019162001568565b820191906000526020600020905b8154815290600101906020018083116200154a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162001607575050509190925250505060408101519091506001600160a01b031615806200164457508060e001515b156200170157604051611002903490600081818185875af1925050503d80600081146200168e576040519150601f19603f3d011682016040523d82523d6000602084013e62001693565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016f49060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200175857600080fd5b505af11580156200176d573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620017ae91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017e3919086906004016200a1ff565b600060405180830381600087803b158015620017fe57600080fd5b505af115801562001813573d6000803e3d6000fd5b5050505050505b50565b33611001146200184557604051630f22c43960e41b81526110016004820152602401620011ef565b60005462010000900460ff16156200187057604051631785c68160e01b815260040160405180910390fd5b600060458383604051620018869291906200a219565b908152604051908190036020019020546001600160a01b03169050620018ae603f8262008222565b620018cc5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038116600090815260416020526040812090620018f462015180426200a23f565b604a546000828152604b602052604090205491925011620019285760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b60205260408120805460019290620019499084906200a262565b90915550506040516046906200196390879087906200a219565b908152602001604051809103902054600014158015620019b45750426201518060468787604051620019979291906200a219565b908152602001604051809103902054620019b291906200a262565b105b15620019d357604051631898eb6b60e01b815260040160405180910390fd5b600080620019e385600262008245565b915091508162001a0657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562001a59573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a7f91906200a278565b905062001a8d8583620082cf565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600260405162001acd939291906200a2a8565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001b0b916001600160a01b0316908a906004016200a1ff565b600060405180830381600087803b15801562001b2657600080fd5b505af115801562001b3b573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001b7357604051630f22c43960e41b81526120006004820152602401620011ef565b60005462010000900460ff161562001b9e57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001bef9187908790819084018382808284376000920191909152506200849692505050565b915091508062001c125760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001c38575050604080516000815260208101909152905062001eab565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001c689160040190815260200190565b6020604051808303816000875af115801562001c88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cae91906200a2d7565b90508062001d555782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001d0a9291906200a2f7565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001eab95505050505050565b600062001d6284620085f9565b9050600081600481111562001d7b5762001d7b6200a292565b0362001d9d575050604080516000815260208101909152925062001eab915050565b6040516000906110049047908381818185875af1925050503d806000811462001de3576040519150601f19603f3d011682016040523d82523d6000602084013e62001de8565b606091505b505090508062001e0b576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001e5e9291906200a2f7565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001eab975050505050505050565b6034805460ff191690559392505050565b60008162001ecc603f8262008222565b62001eea5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038084166000908152604160205260409020600d01541691505b50919050565b600054630100000090046001600160a01b0316331462001f44576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001fbe57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ff05760405163b1d02c3d60e01b815260040160405180910390fd5b8062001ffe603f8262008222565b6200201c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff166200205a57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa158015620020aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020d091906200a278565b1015620020f0576040516317b204bf60e11b815260040160405180910390fd5b4281600b01541115620021165760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200213a9084906200a31e565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff1615620021a357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620021d55760405163b1d02c3d60e01b815260040160405180910390fd5b620021df62008c62565b620021ec603f8262008222565b6200220a5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200223257604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200227357506001600160a01b03821660009081526047602052604090205460ff165b156200229257604051631e6f587560e11b815260040160405180910390fd5b60006200229e62008c62565b6001600160a01b0381166000908152604160205260409020600c810154919250904290620022d19062015180906200a262565b1115620022f157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b3362002385603f8262008222565b620023a35760405163056e881160e01b815260040160405180910390fd5b60005462010000900460ff1615620023ce57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620024005760405163b1d02c3d60e01b815260040160405180910390fd5b6001600160a01b038281166000908152604d602052604090205416156200243a5760405163bebdc75760e01b815260040160405180910390fd5b62002447603f8362008222565b15620024665760405163bebdc75760e01b815260040160405180910390fd5b336000818152604160205260409020600d01546001600160a01b039081169084168103620024a75760405163bebdc75760e01b815260040160405180910390fd5b6001600160a01b03811615620024de576001600160a01b0381166000908152604d6020526040902080546001600160a01b03191690555b6001600160a01b038083166000818152604160209081526040808320600d018054868b166001600160a01b03199182168117909255818552604d90935281842080549093168517909255519093851692917fcbb728765de145e99c00e8ae32a325231e850359b7b8a6da3b84d672ab3f1d0a91a450505050565b600054630100000090046001600160a01b031633146200258b576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620025ff57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620026315760405163b1d02c3d60e01b815260040160405180910390fd5b816200263f603f8262008222565b6200265d5760405163056e881160e01b815260040160405180910390fd5b816000036200267f57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620026e7906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462002715906200a1c9565b8015620027665780601f106200273a5761010080835404028352916020019162002766565b820191906000526020600020905b8154815290600101906020018083116200274857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002791906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620027bf906200a1c9565b8015620028105780601f10620027e45761010080835404028352916020019162002810565b820191906000526020600020905b815481529060010190602001808311620027f257829003601f168201915b505050505081526020016001820180546200282b906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462002859906200a1c9565b8015620028aa5780601f106200287e57610100808354040283529160200191620028aa565b820191906000526020600020905b8154815290600101906020018083116200288c57829003601f168201915b50505050508152602001600282018054620028c5906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620028f3906200a1c9565b8015620029445780601f10620029185761010080835404028352916020019162002944565b820191906000526020600020905b8154815290600101906020018083116200292657829003601f168201915b505050505081526020016003820180546200295f906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200298d906200a1c9565b8015620029de5780601f10620029b257610100808354040283529160200191620029de565b820191906000526020600020905b815481529060010190602001808311620029c057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162002a7d575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002af7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b1d91906200a278565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002b6e929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b03160362002b9b5762002b9b8662008ca3565b6040808301519051633041949b60e01b815261200591633041949b9162002bc8919087906004016200a1ff565b600060405180830381600087803b15801562002be357600080fd5b505af115801562002bf8573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff161562002c2f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562002c615760405163b1d02c3d60e01b815260040160405180910390fd5b8362002c6f603f8262008222565b62002c8d5760405163056e881160e01b815260040160405180910390fd5b8362002c9b603f8262008222565b62002cb95760405163056e881160e01b815260040160405180910390fd5b6034805460ff19166001179055600084900362002ce957604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b03160362002d1c5760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002d84906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462002db2906200a1c9565b801562002e035780601f1062002dd75761010080835404028352916020019162002e03565b820191906000526020600020905b81548152906001019060200180831162002de557829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e2e906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462002e5c906200a1c9565b801562002ead5780601f1062002e815761010080835404028352916020019162002ead565b820191906000526020600020905b81548152906001019060200180831162002e8f57829003601f168201915b5050505050815260200160018201805462002ec8906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462002ef6906200a1c9565b801562002f475780601f1062002f1b5761010080835404028352916020019162002f47565b820191906000526020600020905b81548152906001019060200180831162002f2957829003601f168201915b5050505050815260200160028201805462002f62906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462002f90906200a1c9565b801562002fe15780601f1062002fb55761010080835404028352916020019162002fe1565b820191906000526020600020905b81548152906001019060200180831162002fc357829003601f168201915b5050505050815260200160038201805462002ffc906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200302a906200a1c9565b80156200307b5780601f106200304f576101008083540402835291602001916200307b565b820191906000526020600020905b8154815290600101906020018083116200305d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200311a57505050919092525050506001600160a01b03808916600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620031a5906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620031d3906200a1c9565b8015620032245780601f10620031f85761010080835404028352916020019162003224565b820191906000526020600020905b8154815290600101906020018083116200320657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200324f906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200327d906200a1c9565b8015620032ce5780601f10620032a257610100808354040283529160200191620032ce565b820191906000526020600020905b815481529060010190602001808311620032b057829003601f168201915b50505050508152602001600182018054620032e9906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462003317906200a1c9565b8015620033685780601f106200333c5761010080835404028352916020019162003368565b820191906000526020600020905b8154815290600101906020018083116200334a57829003601f168201915b5050505050815260200160028201805462003383906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620033b1906200a1c9565b8015620034025780601f10620033d65761010080835404028352916020019162003402565b820191906000526020600020905b815481529060010190602001808311620033e457829003601f168201915b505050505081526020016003820180546200341d906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200344b906200a1c9565b80156200349c5780601f1062003470576101008083540402835291602001916200349c565b820191906000526020600020905b8154815290600101906020018083116200347e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200353b5750505050508152505090508060e0015180156200357e5750876001600160a01b0316836001600160a01b031614155b156200359d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620035f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200361a91906200a278565b9050603754811015620036405760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620036d557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620036ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036d391906200a278565b105b15620036f4576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a54836200370a91906200a334565b6200371691906200a23f565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200376b576040519150601f19603f3d011682016040523d82523d6000602084013e62003770565b606091505b505090508062003793576040516312171d8360e31b815260040160405180910390fd5b6200379f82846200a31e565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620037f5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200381c91906200a278565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003881939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620038c557620038c56200a34e565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200390057620039006200a34e565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620039419084908c906004016200a364565b600060405180830381600087803b1580156200395c57600080fd5b505af115801562003971573d6000803e3d6000fd5b505050508a15620039e3576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620039ae9291906200a1ff565b600060405180830381600087803b158015620039c957600080fd5b505af1158015620039de573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff161562003a2857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003a5a5760405163b1d02c3d60e01b815260040160405180910390fd5b62003a6462008c62565b62003a71603f8262008222565b62003a8f5760405163056e881160e01b815260040160405180910390fd5b600062003a9b62008c62565b6001600160a01b0381166000908152604160205260409020600c81015491925090429062003ace9062015180906200a262565b111562003aee57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b9091048116908516111562003b285760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003b6657600982015462003b609086906001600160401b03166200a390565b62003b80565b600982015462003b80906001600160401b0316866200a390565b60098301546001600160401b039182169250600160801b90041681111562003bbb5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b6060806060600062003c3a603f62008dc9565b905080861015620042c357841562003c53578462003c55565b805b945060008562003c6688846200a31e565b1162003c7e5762003c7887836200a31e565b62003c80565b855b9050806001600160401b0381111562003c9d5762003c9d62009a4c565b60405190808252806020026020018201604052801562003cc7578160200160208202803683370190505b509450806001600160401b0381111562003ce55762003ce562009a4c565b60405190808252806020026020018201604052801562003d0f578160200160208202803683370190505b509350806001600160401b0381111562003d2d5762003d2d62009a4c565b60405190808252806020026020018201604052801562003d6257816020015b606081526020019060019003908162003d4c5790505b50925060005b81811015620042c057600062003d8c62003d83838b6200a262565b603f9062008dd4565b6001600160a01b0380821660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003df9906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462003e27906200a1c9565b801562003e785780601f1062003e4c5761010080835404028352916020019162003e78565b820191906000526020600020905b81548152906001019060200180831162003e5a57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003ea3906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462003ed1906200a1c9565b801562003f225780601f1062003ef65761010080835404028352916020019162003f22565b820191906000526020600020905b81548152906001019060200180831162003f0457829003601f168201915b5050505050815260200160018201805462003f3d906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462003f6b906200a1c9565b801562003fbc5780601f1062003f905761010080835404028352916020019162003fbc565b820191906000526020600020905b81548152906001019060200180831162003f9e57829003601f168201915b5050505050815260200160028201805462003fd7906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462004005906200a1c9565b8015620040565780601f106200402a5761010080835404028352916020019162004056565b820191906000526020600020905b8154815290600101906020018083116200403857829003601f168201915b5050505050815260200160038201805462004071906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200409f906200a1c9565b8015620040f05780601f10620040c457610100808354040283529160200191620040f0565b820191906000526020600020905b815481529060010190602001808311620040d257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200418f5750505050508152505090508060000151888481518110620041c857620041c86200a34e565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e00151620042615780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200425b91906200a278565b62004264565b60005b8784815181106200427957620042796200a34e565b60200260200101818152505080608001518684815181106200429f576200429f6200a34e565b6020026020010181905250505080620042b8906200a3b3565b905062003d68565b50505b92959194509250565b60005462010000900460ff1615620042f757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620043295760405163b1d02c3d60e01b815260040160405180910390fd5b3362004337603f8262008222565b156200435657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038181166000908152604d602052604090205416156200439057604051631a0a9b9f60e21b815260040160405180910390fd5b6001600160a01b0388811660009081526043602052604090205416151580620043d157506001600160a01b03881660009081526047602052604090205460ff165b15620043f057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200440f9291906200a219565b908152604051908190036020019020546001600160a01b031614158062004459575060488787604051620044459291906200a219565b9081526040519081900360200190205460ff165b1562004478576040516311fdb94760e01b815260040160405180910390fd5b60006200448683806200a3cf565b604051602001620044999291906200a219565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620044e35760405163c0bf414360e01b815260040160405180910390fd5b6000620044f9670de0b6b3a7640000346200a31e565b90506036548110156200451f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200454757604051636520611b60e11b815260040160405180910390fd5b6113886200455c604087016020880162009c30565b6001600160401b03161180620045a257506200457f604086016020870162009c30565b6001600160401b031662004597602087018762009c30565b6001600160401b0316115b80620045e15750620045bb604086016020870162009c30565b6001600160401b0316620045d6606087016040880162009c30565b6001600160401b0316115b15620046005760405163dc81db8560e01b815260040160405180910390fd5b6200464b6200461085806200a3cf565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008de292505050565b6200466957604051635dba5ad760e01b815260040160405180910390fd5b62004678838a8a8a8a62008f84565b6200469657604051631647e3cb60e11b815260040160405180910390fd5b6000620046e484620046a987806200a3cf565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620090b492505050565b9050620046f3603f85620091b5565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620047738b8d836200a477565b5085600582016200478582826200a53f565b50879050600982016200479982826200a678565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b03191692881692909217909155518590604590620047e7908e908e906200a219565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200486a9291906200a748565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200ba4f833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200ba4f833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200490e90859089906004016200a1ff565b600060405180830381600087803b1580156200492957600080fd5b505af11580156200493e573d6000803e3d6000fd5b50505050505050505050505050505050565b6040805160608101825260008082526020820181905291810191909152816200497b603f8262008222565b620049995760405163056e881160e01b815260040160405180910390fd5b50506001600160a01b031660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915290565b6001600160a01b0380821660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608281019190915260048401805491949160808401919062004a62906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462004a90906200a1c9565b801562004ae15780601f1062004ab55761010080835404028352916020019162004ae1565b820191906000526020600020905b81548152906001019060200180831162004ac357829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462004b0c906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462004b3a906200a1c9565b801562004b8b5780601f1062004b5f5761010080835404028352916020019162004b8b565b820191906000526020600020905b81548152906001019060200180831162004b6d57829003601f168201915b5050505050815260200160018201805462004ba6906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462004bd4906200a1c9565b801562004c255780601f1062004bf95761010080835404028352916020019162004c25565b820191906000526020600020905b81548152906001019060200180831162004c0757829003601f168201915b5050505050815260200160028201805462004c40906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462004c6e906200a1c9565b801562004cbf5780601f1062004c935761010080835404028352916020019162004cbf565b820191906000526020600020905b81548152906001019060200180831162004ca157829003601f168201915b5050505050815260200160038201805462004cda906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462004d08906200a1c9565b801562004d595780601f1062004d2d5761010080835404028352916020019162004d59565b820191906000526020600020905b81548152906001019060200180831162004d3b57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162004df85750505091909252505050608001519392505050565b336110011462004e4957604051630f22c43960e41b81526110016004820152602401620011ef565b6001600160a01b038082166000908152604360205260409020541662004e71603f8262008222565b62004e8f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004ef2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004f1891906200a278565b90506000603d544262004f2c91906200a262565b905062004f3a8382620082cf565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004f7a939291906200a2a8565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004fb8916001600160a01b03169088906004016200a1ff565b600060405180830381600087803b15801562004fd357600080fd5b505af115801562004fe8573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff1615808015620050145750600054600160ff909116105b80620050305750303b15801562005030575060005460ff166001145b620050955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620011ef565b6000805460ff191660011790558015620050b9576000805461ff0019166101001790555b334114620050da5760405163022d8c9560e31b815260040160405180910390fd5b3a15620050fa576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d60385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562278d00603e55604a556040805160608181018352828252918291906200ba6f60208301398060200190518101906200518691906200a784565b91506040518060600160405280604081526020016200ba6f60409139806020019051810190620051b791906200a828565b905060005b82518110156200522657600160476000858481518110620051e157620051e16200a34e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556200521e816200a3b3565b9050620051bc565b5060005b81518110156200529757600160488383815181106200524d576200524d6200a34e565b60200260200101516040516200526491906200a925565b908152604051908190036020019020805491151560ff199092169190911790556200528f816200a3b3565b90506200522a565b50620052b77304d63abcd2b9b1baa327f2dda0f873f197ccd186620091cc565b505080156200181a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b33612000146200532a57604051630f22c43960e41b81526120006004820152602401620011ef565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b658383836040516200535f939291906200a943565b60405180910390a1505050565b600054630100000090046001600160a01b031633146200539f576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615620053ca57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b600062005413603f8462008222565b620054315760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa1580156200548e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620054b491906200a278565b90505b92915050565b60005462010000900460ff1615620054e857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200551a5760405163b1d02c3d60e01b815260040160405180910390fd5b8162005528603f8262008222565b620055465760405163056e881160e01b815260040160405180910390fd5b60375434908110156200556c5760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610180810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620055d4906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462005602906200a1c9565b8015620056535780601f10620056275761010080835404028352916020019162005653565b820191906000526020600020905b8154815290600101906020018083116200563557829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200567e906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620056ac906200a1c9565b8015620056fd5780601f10620056d157610100808354040283529160200191620056fd565b820191906000526020600020905b815481529060010190602001808311620056df57829003601f168201915b5050505050815260200160018201805462005718906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462005746906200a1c9565b8015620057975780601f106200576b5761010080835404028352916020019162005797565b820191906000526020600020905b8154815290600101906020018083116200577957829003601f168201915b50505050508152602001600282018054620057b2906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620057e0906200a1c9565b8015620058315780601f10620058055761010080835404028352916020019162005831565b820191906000526020600020905b8154815290600101906020018083116200581357829003601f168201915b505050505081526020016003820180546200584c906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200587a906200a1c9565b8015620058cb5780601f106200589f57610100808354040283529160200191620058cb565b820191906000526020600020905b815481529060010190602001808311620058ad57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b8154815260200190600101908083116200596a5750505050508152505090508060e001518015620059ad5750856001600160a01b0316826001600160a01b031614155b15620059cc57604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005a1d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062005a4491906200a278565b9050826001600160a01b0316876001600160a01b03166000805160206200ba4f833981519152838760405162005a84929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b9162005ab9919087906004016200a1ff565b600060405180830381600087803b15801562005ad457600080fd5b505af115801562005ae9573d6000803e3d6000fd5b50505050851562001813576040516372f6ad8f60e11b81526120059063e5ed5b1e9062005b1d9086908b906004016200a1ff565b600060405180830381600087803b15801562005b3857600080fd5b505af115801562005b4d573d6000803e3d6000fd5b5050505050505050505050565b62005b866040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005b94603f8262008222565b62005bb25760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383166000908152604160205260409081902081516080810190925260050180548290829062005be9906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462005c17906200a1c9565b801562005c685780601f1062005c3c5761010080835404028352916020019162005c68565b820191906000526020600020905b81548152906001019060200180831162005c4a57829003601f168201915b5050505050815260200160018201805462005c83906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462005cb1906200a1c9565b801562005d025780601f1062005cd65761010080835404028352916020019162005d02565b820191906000526020600020905b81548152906001019060200180831162005ce457829003601f168201915b5050505050815260200160028201805462005d1d906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462005d4b906200a1c9565b801562005d9c5780601f1062005d705761010080835404028352916020019162005d9c565b820191906000526020600020905b81548152906001019060200180831162005d7e57829003601f168201915b5050505050815260200160038201805462005db7906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462005de5906200a1c9565b801562005e365780601f1062005e0a5761010080835404028352916020019162005e36565b820191906000526020600020905b81548152906001019060200180831162005e1857829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005e7257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005ea45760405163b1d02c3d60e01b815260040160405180910390fd5b62005eb0828262009265565b5050565b336110071462005edc57604051630f22c43960e41b81526110076004820152602401620011ef565b62005f496040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b1562006004576020811462005f7b5783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f840181900481028201810190925282815260009162005fbe918585808385018382808284376000920191909152509293925050620093ce9050565b90506108fc81108062005fd2575061271081115b1562005ffb5784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b60355562006d0e565b620060756040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b156200613f5760208114620060a75783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f8401819004810282018101909252828152600091620060ea918585808385018382808284376000920191909152509293925050620093ce9050565b9050683635c9adc5dea000008110806200610d575069152d02c7e14af680000081115b15620061365784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b60365562006d0e565b620061b2604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b15620062795760208114620061e45783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f840181900481028201810190925282815260009162006227918585808385018382808284376000920191909152509293925050620093ce9050565b905067016345785d8a0000811080620062475750678ac7230489e8000081115b15620062705784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b60375562006d0e565b620062ea604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b15620063a257602081146200631c5783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f84018190048102820181019092528281526000916200635f918585808385018382808284376000920191909152509293925050620093ce9050565b90508015806200637057506101f481115b15620063995784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b60385562006d0e565b6200640b6040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b15620064c857602081146200643d5783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f840181900481028201810190925282815260009162006480918585808385018382808284376000920191909152509293925050620093ce9050565b90506203f48081108062006496575062278d0081115b15620064bf5784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b60395562006d0e565b6200653660405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b15620065e35760208114620065685783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f8401819004810282018101909252828152600091620065ab918585808385018382808284376000920191909152509293925050620093ce9050565b90506064811115620065da5784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b603a5562006d0e565b6200665360405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b15620067145760208114620066855783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f8401819004810282018101909252828152600091620066c8918585808385018382808284376000920191909152509293925050620093ce9050565b9050674563918244f40000811080620066e25750603c5481115b156200670b5784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b603b5562006d0e565b620067826040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b15620068455760208114620067b45783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f8401819004810282018101909252828152600091620067f7918585808385018382808284376000920191909152509293925050620093ce9050565b905068056bc75e2d63100000811080620068135750603b548111155b156200683c5784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b603c5562006d0e565b620068b26040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b156200696f5760208114620068e45783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f840181900481028201810190925282815260009162006927918585808385018382808284376000920191909152509293925050620093ce9050565b90506202a3008110806200693d5750603e548110155b15620069665784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b603d5562006d0e565b620069da6040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b1562006a97576020811462006a0c5783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f840181900481028201810190925282815260009162006a4f918585808385018382808284376000920191909152509293925050620093ce9050565b9050620d2f0081108062006a655750603d548111155b1562006a8e5784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b603e5562006d0e565b62006b116040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b1562006bbd576020811462006b435783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b604080516020601f840181900481028201810190925282815260009162006b86918585808385018382808284376000920191909152509293925050620093ce9050565b90508060000362006bb45784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b604a5562006d0e565b62006c2b6040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093719050565b1562006ceb576014811462006c5d5783838383604051630a5a604160e01b8152600401620011ef94939291906200a962565b600062006ca5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050620093ce9050565b90506001600160a01b03811662006cd95784848484604051630a5a604160e01b8152600401620011ef94939291906200a962565b62006ce481620093d3565b5062006d0e565b838383836040516325ee20d560e21b8152600401620011ef94939291906200a962565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e6338484848460405162006d4594939291906200a962565b60405180910390a150505050565b60005462010000900460ff161562006d7e57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562006db05760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b0381111562006dce5762006dce62009a4c565b60405190808252806020026020018201604052801562006df8578160200160208202803683370190505b5090506000805b8381101562006ef65762006e4187878381811062006e215762006e216200a34e565b905060200201602081019062006e389190620098db565b603f9062008222565b62006e5f5760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006e785762006e786200a34e565b905060200201602081019062006e8f9190620098db565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ecb5762006ecb6200a34e565b6001600160a01b039092166020928302919091019091015262006eee816200a3b3565b905062006dff565b50604051634484077560e01b81526120059063448407759062002bc890859088906004016200a364565b606080600062006f31603f62008dc9565b905080851015620070f557831562006f4a578362006f4c565b805b935060008462006f5d87846200a31e565b1162006f755762006f6f86836200a31e565b62006f77565b845b9050806001600160401b0381111562006f945762006f9462009a4c565b60405190808252806020026020018201604052801562006fbe578160200160208202803683370190505b509350806001600160401b0381111562006fdc5762006fdc62009a4c565b60405190808252806020026020018201604052801562007006578160200160208202803683370190505b50925060005b81811015620070f2576200702562003d8382896200a262565b8582815181106200703a576200703a6200a34e565b60200260200101906001600160a01b031690816001600160a01b031681525050604160008683815181106200707357620070736200a34e565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b0316848281518110620070c757620070c76200a34e565b6001600160a01b0390921660209283029190910190910152620070ea816200a3b3565b90506200700c565b50505b9250925092565b33611001146200712457604051630f22c43960e41b81526110016004820152602401620011ef565b60005462010000900460ff16156200714f57604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662007177603f8262008222565b620071955760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038116600090815260416020526040812090620071bd62015180426200a23f565b604a546000828152604b602052604090205491925011620071f15760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b60205260408120805460019290620072129084906200a262565b90915550506001600160a01b038416600090815260446020526040902054158015906200726757506001600160a01b0384166000908152604460205260409020544290620072659062015180906200a262565b105b1562007286576040516330abb81d60e21b815260040160405180910390fd5b6000806200729685600062008245565b9150915081620072b957604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200730c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200733291906200a278565b9050620073408583620082cf565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162007380939291906200a2a8565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005b1d916001600160a01b0316908a906004016200a1ff565b6001600160a01b03808216600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493849384939092916080840191906200742f906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200745d906200a1c9565b8015620074ae5780601f106200748257610100808354040283529160200191620074ae565b820191906000526020600020905b8154815290600101906020018083116200749057829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620074d9906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007507906200a1c9565b8015620075585780601f106200752c5761010080835404028352916020019162007558565b820191906000526020600020905b8154815290600101906020018083116200753a57829003601f168201915b5050505050815260200160018201805462007573906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620075a1906200a1c9565b8015620075f25780601f10620075c657610100808354040283529160200191620075f2565b820191906000526020600020905b815481529060010190602001808311620075d457829003601f168201915b505050505081526020016002820180546200760d906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200763b906200a1c9565b80156200768c5780601f1062007660576101008083540402835291602001916200768c565b820191906000526020600020905b8154815290600101906020018083116200766e57829003601f168201915b50505050508152602001600382018054620076a7906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620076d5906200a1c9565b8015620077265780601f10620076fa5761010080835404028352916020019162007726565b820191906000526020600020905b8154815290600101906020018083116200770857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b815481526020019060010190808311620077c55750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200782c57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200785e5760405163b1d02c3d60e01b815260040160405180910390fd5b6200786862008c62565b62007875603f8262008222565b620078935760405163056e881160e01b815260040160405180910390fd5b60006200789f62008c62565b6001600160a01b0381166000908152604160205260409020600c810154919250904290620078d29062015180906200a262565b1115620078f257604051631f92cdbd60e11b815260040160405180910390fd5b60058101805462007903906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007931906200a1c9565b8015620079825780601f10620079565761010080835404028352916020019162007982565b820191906000526020600020905b8154815290600101906020018083116200796457829003601f168201915b50505082875250859160058401915081906200799f90826200a98d565b5060208201516001820190620079b690826200a98d565b5060408201516002820190620079cd90826200a98d565b5060608201516003820190620079e490826200a98d565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff161562007a5257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007a845760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007aa5576040516341abc80160e01b815260040160405180910390fd5b60005b8381101562007b165762007b0385858381811062007aca5762007aca6200a34e565b905060200201602081019062007ae19190620098db565b84848481811062007af65762007af66200a34e565b9050602002013562009265565b62007b0e816200a3b3565b905062007aa8565b5050505050565b6001600160a01b038082166000908152604160209081526040808320815161018081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162007b88906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007bb6906200a1c9565b801562007c075780601f1062007bdb5761010080835404028352916020019162007c07565b820191906000526020600020905b81548152906001019060200180831162007be957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462007c32906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007c60906200a1c9565b801562007cb15780601f1062007c855761010080835404028352916020019162007cb1565b820191906000526020600020905b81548152906001019060200180831162007c9357829003601f168201915b5050505050815260200160018201805462007ccc906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007cfa906200a1c9565b801562007d4b5780601f1062007d1f5761010080835404028352916020019162007d4b565b820191906000526020600020905b81548152906001019060200180831162007d2d57829003601f168201915b5050505050815260200160028201805462007d66906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007d94906200a1c9565b801562007de55780601f1062007db95761010080835404028352916020019162007de5565b820191906000526020600020905b81548152906001019060200180831162007dc757829003601f168201915b5050505050815260200160038201805462007e00906200a1c9565b80601f016020809104026020016040519081016040528092919081815260200182805462007e2e906200a1c9565b801562007e7f5780601f1062007e535761010080835404028352916020019162007e7f565b820191906000526020600020905b81548152906001019060200180831162007e6157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162007f1e5750505091909252505050604001519392505050565b600062007f56603f8462008222565b62007f745760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005470565b60005462010000900460ff161562007fe357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620080155760405163b1d02c3d60e01b815260040160405180910390fd5b6200801f62008c62565b6200802c603f8262008222565b6200804a5760405163056e881160e01b815260040160405180910390fd5b60006200805662008c62565b905062008067818787878762008f84565b6200808557604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b031660458787604051620080a49291906200a219565b908152604051908190036020019020546001600160a01b0316141580620080ee575060488686604051620080da9291906200a219565b9081526040519081900360200190205460ff165b156200810d576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c81015442906200813c9062015180906200a262565b11156200815c57604051631f92cdbd60e11b815260040160405180910390fd5b426046826004016040516200817291906200aa55565b9081526040519081900360200190205560048101620081938789836200a477565b5042600c8201556040518290604590620081b1908a908a906200a219565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062008211908a908a906200a748565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620054b4565b600080600084846040516020016200825f9291906200aad3565b60408051601f1981840301815291815281516020928301206000818152604c909352912054909150428111156200829f57600080935093505050620082c8565b603e54620082ae90426200a262565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b1580156200831657600080fd5b505af11580156200832b573d6000803e3d6000fd5b50505050600060016200833f603f62008dc9565b6200834b91906200a31e565b6049541080159150620084095760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa1580156200839f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620083c591906200a2d7565b620084095760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b01548211156200841e57600b83018290555b600a83015460ff166200849157600a8301805460ff1916600190811790915560498054600090620084519084906200a262565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b6040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284528382018390528386018390528301829052845180860186528281528101829052845180860190955285518552858101908501529192829062008508906200943f565b90506000805b6200851983620094b2565b15620085ec57806000036200854e576200853d6200853784620094d8565b6200953c565b6001600160a01b03168452620085d9565b806001036200857a57620085666200853784620094d8565b6001600160a01b03166020850152620085d9565b80600203620085a657620085926200853784620094d8565b6001600160a01b03166040850152620085d9565b80600303620085d357620085c4620085be84620094d8565b62009554565b606085015260019150620085d9565b620085ec565b620085e4816200a3b3565b90506200850e565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff168062008631575060208201516001600160a01b0316155b156200863f57506004919050565b81516200864f90603f9062008222565b6200865c57506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101808101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620086c8906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620086f6906200a1c9565b8015620087475780601f106200871b5761010080835404028352916020019162008747565b820191906000526020600020905b8154815290600101906020018083116200872957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462008772906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620087a0906200a1c9565b8015620087f15780601f10620087c557610100808354040283529160200191620087f1565b820191906000526020600020905b815481529060010190602001808311620087d357829003601f168201915b505050505081526020016001820180546200880c906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200883a906200a1c9565b80156200888b5780601f106200885f576101008083540402835291602001916200888b565b820191906000526020600020905b8154815290600101906020018083116200886d57829003601f168201915b50505050508152602001600282018054620088a6906200a1c9565b80601f0160208091040260200160405190810160405280929190818152602001828054620088d4906200a1c9565b8015620089255780601f10620088f95761010080835404028352916020019162008925565b820191906000526020600020905b8154815290600101906020018083116200890757829003601f168201915b5050505050815260200160038201805462008940906200a1c9565b80601f01602080910402602001604051908101604052809291908181526020018280546200896e906200a1c9565b8015620089bf5780601f106200899357610100808354040283529160200191620089bf565b820191906000526020600020905b815481529060010190602001808311620089a157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152600d8301546001600160a01b031660a0830152805161026081019182905260c09092019190600e84019060139082845b81548152602001906001019080831162008a5e5750505050508152505090508060e00151801562008aa9575082600001516001600160a01b031683602001516001600160a01b031614155b1562008ab85750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af115801562008b14573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008b3b91906200a278565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200ba4f83398151915283876060015160405162008b87929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008bea929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b9262008c24929091906004016200a1ff565b600060405180830381600087803b15801562008c3f57600080fd5b505af115801562008c54573d6000803e3d6000fd5b506000979650505050505050565b336000908152604d60205260408120546001600160a01b03161562008c9e5750336000908152604d60205260409020546001600160a01b031690565b503390565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008ccd575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008d1d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008d4391906200a278565b101562005eb05762008d6581603d544262008d5f91906200a262565b620082cf565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b15801562008dac57600080fd5b505af115801562008dc1573d6000803e3d6000fd5b505050505050565b6000620054b7825490565b6000620054b483836200962c565b60008082905060038151108062008dfa575060098151115b1562008e095750600092915050565b60418160008151811062008e215762008e216200a34e565b016020015160f81c108062008e535750605a8160008151811062008e495762008e496200a34e565b016020015160f81c115b1562008e625750600092915050565b60015b815181101562008f7a57603082828151811062008e865762008e866200a34e565b016020015160f81c108062008eb75750603982828151811062008ead5762008ead6200a34e565b016020015160f81c115b801562008f075750604182828151811062008ed65762008ed66200a34e565b016020015160f81c108062008f075750605a82828151811062008efd5762008efd6200a34e565b016020015160f81c115b801562008f575750606182828151811062008f265762008f266200a34e565b016020015160f81c108062008f575750607a82828151811062008f4d5762008f4d6200a34e565b016020015160f81c115b1562008f67575060009392505050565b62008f72816200a3b3565b905062008e65565b5060019392505050565b600060308414158062008f98575060608214155b1562008fa757506000620090ab565b60008686864660405160200162008fc294939291906200ab11565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a6040516020016200901c9594939291906200ab3e565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa6200906657600080fd5b506000816000815181106200907f576200907f6200a34e565b016020015160f81c905060018114620090a157600095505050505050620090ab565b6001955050505050505b95945050505050565b60008061200361dead604051620090cb90620098b7565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f0801580156200910e573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b8152600401620091429291906200ab76565b6000604051808303818588803b1580156200915c57600080fd5b505af115801562009171573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620054b4836001600160a01b03841662009659565b600054610100900460ff16620092395760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620011ef565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162009273603f8262008222565b620092915760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af1158015620092f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200931b91906200a278565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683836040516200936391815260200190565b60405180910390a350505050565b6000816040516020016200938691906200a925565b6040516020818303038152906040528051906020012083604051602001620093af91906200a925565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60408051608081018252600091810182815260608201839052815260208101919091526200946d82620096ab565b6200947757600080fd5b6000620094888360200151620096de565b83602001516200949991906200a262565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620094ca916200a262565b836020015110915050919050565b6040805180820190915260008082526020820152620094f782620094b2565b6200950157600080fd5b6020820151600062009513826200976d565b90506200952181836200a262565b60209485015260408051808201909152908152928301525090565b80516000906015146200954e57600080fd5b620054b7825b8051600090158015906200956a57508151602110155b6200957457600080fd5b6000620095858360200151620096de565b90508083600001511015620095dd5760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f66667365740000000000006044820152606401620011ef565b8251600090620095ef9083906200a31e565b90506000808386602001516200960691906200a262565b90508051915060208310156200962357826020036101000a820491505b50949350505050565b60008260000182815481106200964657620096466200a34e565b9060005260206000200154905092915050565b6000818152600183016020526040812054620096a257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620054b7565b506000620054b7565b80516000908103620096bf57506000919050565b6020820151805160001a9060c082101562008f7a575060009392505050565b8051600090811a6080811015620096f85750600092915050565b60b881108062009715575060c0811080159062009715575060f881105b15620097245750600192915050565b60c08110156200975f576200973c600160b86200ab9c565b6200974b9060ff16826200a31e565b620097589060016200a262565b9392505050565b6200973c600160f86200ab9c565b80516000908190811a60808110156200978a5760019150620098b0565b60b8811015620097b657620097a16080826200a31e565b620097ae9060016200a262565b9150620098b0565b60c08110156200982f57600060b78203600186019550806020036101000a865104915060018101820193505080831015620098285760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606401620011ef565b50620098b0565b60f88110156200984657620097a160c0826200a31e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620098ae5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b6044820152606401620011ef565b505b5092915050565b610e96806200abb983390190565b6001600160a01b03811681146200181a57600080fd5b600060208284031215620098ee57600080fd5b81356200975881620098c5565b60008083601f8401126200990e57600080fd5b5081356001600160401b038111156200992657600080fd5b602083019150836020828501011115620082c857600080fd5b600080602083850312156200995357600080fd5b82356001600160401b038111156200996a57600080fd5b6200997885828601620098fb565b90969095509350505050565b6000806000604084860312156200999a57600080fd5b833560ff81168114620099ac57600080fd5b925060208401356001600160401b03811115620099c857600080fd5b620099d686828701620098fb565b9497909650939450505050565b60005b8381101562009a00578181015183820152602001620099e6565b50506000910152565b6000815180845262009a23816020860160208601620099e3565b601f01601f19169290920160200192915050565b602081526000620054b4602083018462009a09565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562009a875762009a8762009a4c565b60405290565b604051601f8201601f191681016001600160401b038111828210171562009ab85762009ab862009a4c565b604052919050565b60006001600160401b0382111562009adc5762009adc62009a4c565b50601f01601f191660200190565b600062009b0162009afb8462009ac0565b62009a8d565b905082815283838301111562009b1657600080fd5b828260208301376000602084830101529392505050565b60006020828403121562009b4057600080fd5b81356001600160401b0381111562009b5757600080fd5b8201601f8101841362009b6957600080fd5b62009b7a8482356020840162009aea565b949350505050565b6000806040838503121562009b9657600080fd5b823562009ba381620098c5565b946020939093013593505050565b80151581146200181a57600080fd5b6000806000806080858703121562009bd757600080fd5b843562009be481620098c5565b9350602085013562009bf681620098c5565b925060408501359150606085013562009c0f8162009bb1565b939692955090935050565b6001600160401b03811681146200181a57600080fd5b60006020828403121562009c4357600080fd5b8135620097588162009c1a565b6000806040838503121562009c6457600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b8381101562009cae5781516001600160a01b03168752958201959082019060010162009c87565b509495945050505050565b60808152600062009cce608083018762009c73565b82810360208481019190915286518083528782019282019060005b8181101562009d075784518352938301939183019160010162009ce9565b5050848103604086015286518082528282019350600581901b8201830183890160005b8381101562009d5c57601f1985840301875262009d4983835162009a09565b9686019692509085019060010162009d2a565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e081121562009d9257600080fd5b883562009d9f81620098c5565b975060208901356001600160401b038082111562009dbc57600080fd5b62009dca8c838d01620098fb565b909950975060408b013591508082111562009de457600080fd5b62009df28c838d01620098fb565b90975095508591506060605f198401121562009e0d57600080fd5b60608b01945060c08b013592508083111562009e2857600080fd5b505088016080818b03121562009e3d57600080fd5b8091505092959891949750929550565b6000806040838503121562009e6157600080fd5b823562009e6e81620098c5565b9150602083013562009e808162009bb1565b809150509250929050565b60208152600082516080602084015262009ea960a084018262009a09565b90506020840151601f198085840301604086015262009ec9838362009a09565b9250604086015191508085840301606086015262009ee8838362009a09565b9250606086015191508085840301608086015250620090ab828262009a09565b6000806000806040858703121562009f1f57600080fd5b84356001600160401b038082111562009f3757600080fd5b62009f4588838901620098fb565b9096509450602087013591508082111562009f5f57600080fd5b5062009f6e87828801620098fb565b95989497509550505050565b60008083601f84011262009f8d57600080fd5b5081356001600160401b0381111562009fa557600080fd5b6020830191508360208260051b8501011115620082c857600080fd5b60008060006040848603121562009fd757600080fd5b83356001600160401b0381111562009fee57600080fd5b62009ffc8682870162009f7a565b90945092505060208401356200a01281620098c5565b809150509250925092565b6060815260006200a032606083018662009c73565b82810360208401526200a046818662009c73565b915050826040830152949350505050565b600082601f8301126200a06957600080fd5b620054b48383356020850162009aea565b6000602082840312156200a08d57600080fd5b81356001600160401b03808211156200a0a557600080fd5b90830190608082860312156200a0ba57600080fd5b6200a0c462009a62565b8235828111156200a0d457600080fd5b6200a0e2878286016200a057565b8252506020830135828111156200a0f857600080fd5b6200a106878286016200a057565b6020830152506040830135828111156200a11f57600080fd5b6200a12d878286016200a057565b6040830152506060830135828111156200a14657600080fd5b6200a154878286016200a057565b60608301525095945050505050565b600080600080604085870312156200a17a57600080fd5b84356001600160401b03808211156200a19257600080fd5b6200a1a08883890162009f7a565b909650945060208701359150808211156200a1ba57600080fd5b5062009f6e8782880162009f7a565b600181811c908216806200a1de57607f821691505b60208210810362001f0b57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b6000826200a25d57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620054b757620054b76200a229565b6000602082840312156200a28b57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b8381526020810183905260608101600383106200a2c9576200a2c96200a292565b826040830152949350505050565b6000602082840312156200a2ea57600080fd5b8151620097588162009bb1565b82815260408101600583106200a311576200a3116200a292565b8260208301529392505050565b81810381811115620054b757620054b76200a229565b8082028115828204841417620054b757620054b76200a229565b634e487b7160e01b600052603260045260246000fd5b6040815260006200a379604083018562009c73565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620098b057620098b06200a229565b6000600182016200a3c8576200a3c86200a229565b5060010190565b6000808335601e198436030181126200a3e757600080fd5b8301803591506001600160401b038211156200a40257600080fd5b602001915036819003821315620082c857600080fd5b601f8211156200849157600081815260208120601f850160051c810160208610156200a4415750805b601f850160051c820191505b8181101562008dc1578281556001016200a44d565b600019600383901b1c191660019190911b1790565b6001600160401b038311156200a491576200a49162009a4c565b6200a4a9836200a4a283546200a1c9565b836200a418565b6000601f8411600181146200a4dc57600085156200a4c75750838201355b6200a4d386826200a462565b84555062007b16565b600083815260209020601f19861690835b828110156200a50f57868501358255602094850194600190920191016200a4ed565b50868210156200a52d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a54b82836200a3cf565b6001600160401b038111156200a565576200a56562009a4c565b6200a57d816200a57685546200a1c9565b856200a418565b6000601f8211600181146200a5b057600083156200a59b5750838201355b6200a5a784826200a462565b8655506200a60d565b600085815260209020601f19841690835b828110156200a5e357868501358255602094850194600190920191016200a5c1565b50848210156200a6015760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a62060208301836200a3cf565b6200a6308183600186016200a477565b50506200a64160408301836200a3cf565b6200a6518183600286016200a477565b50506200a66260608301836200a3cf565b6200a6728183600386016200a477565b50505050565b81356200a6858162009c1a565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a6b28162009c1a565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a6f28162009c1a565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600062009b7a6020830184866200a71f565b60006001600160401b038211156200a77a576200a77a62009a4c565b5060051b60200190565b600060208083850312156200a79857600080fd5b82516001600160401b038111156200a7af57600080fd5b8301601f810185136200a7c157600080fd5b80516200a7d262009afb826200a75e565b81815260059190911b820183019083810190878311156200a7f257600080fd5b928401925b828410156200a81d5783516200a80d81620098c5565b825292840192908401906200a7f7565b979650505050505050565b600060208083850312156200a83c57600080fd5b82516001600160401b03808211156200a85457600080fd5b818501915085601f8301126200a86957600080fd5b81516200a87a62009afb826200a75e565b81815260059190911b830184019084810190888311156200a89a57600080fd5b8585015b838110156200a918578051858111156200a8b85760008081fd5b8601603f81018b136200a8cb5760008081fd5b8781015160406200a8e062009afb8362009ac0565b8281528d828486010111156200a8f65760008081fd5b6200a907838c8301848701620099e3565b86525050509186019186016200a89e565b5098975050505050505050565b600082516200a939818460208701620099e3565b9190910192915050565b60ff84168152604060208201526000620090ab6040830184866200a71f565b6040815260006200a9786040830186886200a71f565b82810360208401526200a81d8185876200a71f565b81516001600160401b038111156200a9a9576200a9a962009a4c565b6200a9c1816200a9ba84546200a1c9565b846200a418565b602080601f8311600181146200a9f557600084156200a9e05750858301515b6200a9ec85826200a462565b86555062008dc1565b600085815260208120601f198616915b828110156200aa26578886015182559484019460019091019084016200aa05565b50858210156200aa455787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200aa65816200a1c9565b600182811680156200aa8057600181146200aa96576200aac7565b60ff19841687528215158302870194506200aac7565b8760005260208060002060005b858110156200aabe5781548a8201529084019082016200aaa3565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200aafd576200aafd6200a292565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200ab52818460208b01620099e3565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b038316815260406020820181905260009062009b7a9083018462009a09565b60ff8281168282160390811115620054b757620054b76200a22956fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/bohr/rialto/ValidatorContract b/core/systemcontracts/bohr/rialto/ValidatorContract new file mode 100644 index 0000000000..78dbe27aa8 --- /dev/null +++ b/core/systemcontracts/bohr/rialto/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061051c5760003560e01c80638a7beb01116102a2578063c81b166211610165578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d8d578063f9a2bbc714610da2578063fc3e590814610db7578063fccc281314610dcc578063fd4ad81f14610de1578063fd6a687914610e1057610523565b8063e40716a114610cfb578063ea321e4914610d10578063eb57e20214610d30578063eda5868c14610d50578063f1fad10414610d65578063f340fa0114610d7a57610523565b8063d86222d51161011e578063d86222d514610c7d578063daacdb6614610c92578063dc927faf14610ca7578063df8079e914610cbc578063e086c7b114610cd1578063e1c7392a14610ce657610523565b8063c81b166214610c09578063c8509d81146109ae578063cb75a59214610c1e578063ce910b0c14610c33578063d58918ae14610c53578063d68fb56a14610c6857610523565b8063aa82dce111610209578063aef198a9116101c2578063aef198a914610b93578063b7ab4db514610ba8578063b8cf4ef114610bca578063bf9f499514610734578063c466689d14610bdf578063c6d3394514610bf457610523565b8063aa82dce114610aff578063aad5606314610b14578063aaf5eb6814610b29578063ab51bb9614610b3e578063ac43175114610b53578063ad3c9da614610b7357610523565b80639dc092621161025b5780639dc0926214610a815780639fe0f81614610a96578063a0dc275814610aab578063a1a11bf514610ac0578063a5422d5c14610ad5578063a78abc1614610aea57610523565b80638a7beb01146109f85780638b5ad0c914610a0d5780638c5d749d14610a225780638d19a41014610a375780639369d7de14610a5757806396713da914610a6c57610523565b80635192c82c116103ea578063718a8aa81161035157806381650b621161030a57806381650b6214610984578063820dcaa814610999578063831d65d1146109ae578063853230aa1461093057806386249882146109ce57806388b32f11146109e357610523565b8063718a8aa81461090657806375d47a0a1461091b57806378dfed4a146109305780637942fd05146109455780637a84ca2a1461095a5780637e434d541461096f57610523565b80635d77156c116103a35780635d77156c1461086057806360eba4fe1461087557806362b72cf5146108955780636969a25c146108aa5780636e47b482146108dc57806370fd5bad146108f157610523565b80635192c82c146107cc57806351b4dce3146107e157806351e80672146107f657806355614fcc1461080b578063565c56b31461082b5780635667515a1461084b57610523565b80632a0ffb6e1161048e5780633dffc387116104475780633dffc3871461073457806343756e5c1461075657806345cf9daf1461076b578063493279b1146107805780634bf6c882146107a25780634df6e0c3146107b757610523565b80632a0ffb6e14610671578063300c356714610691578063321d398a146106b15780633365af3a146106d157806335409f7f146106f15780633b071dcc1461071157610523565b8063152ad3b8116104e0578063152ad3b8146105db5780631bd14ed8146105fd5780631e4c1524146106125780631ff1806914610632578063219f22d514610647578063280870281461065c57610523565b806304c4fec61461052857806307a568471461053f5780630bee7a671461056a5780630e2374a51461058c5780631182b875146105ae57610523565b3661052357005b600080fd5b34801561053457600080fd5b5061053d610e25565b005b34801561054b57600080fd5b50610554610e99565b604051610561919061947a565b60405180910390f35b34801561057657600080fd5b5061057f610e9f565b60405161056191906194a4565b34801561059857600080fd5b506105a1610ea4565b60405161056191906185b8565b3480156105ba57600080fd5b506105ce6105c936600461849e565b610eaa565b604051610561919061876e565b3480156105e757600080fd5b506105f06111a6565b6040516105619190618763565b34801561060957600080fd5b506105546111af565b34801561061e57600080fd5b5061053d61062d3660046182ac565b6111b5565b34801561063e57600080fd5b5061055461188b565b34801561065357600080fd5b5061057f611891565b34801561066857600080fd5b506105a1611896565b34801561067d57600080fd5b5061053d61068c36600461820c565b61189c565b34801561069d57600080fd5b5061053d6106ac366004618244565b611949565b3480156106bd57600080fd5b506105f06106cc36600461844b565b611c92565b3480156106dd57600080fd5b506105f06106ec36600461844b565b611d61565b3480156106fd57600080fd5b5061053d61070c36600461820c565b611e12565b34801561071d57600080fd5b50610726611f77565b604051610561929190618679565b34801561074057600080fd5b50610749612253565b60405161056191906194b5565b34801561076257600080fd5b506105a1612258565b34801561077757600080fd5b5061055461225e565b34801561078c57600080fd5b50610795612264565b604051610561919061946b565b3480156107ae57600080fd5b5061074961226a565b3480156107c357600080fd5b5061072661226f565b3480156107d857600080fd5b506105546123fb565b3480156107ed57600080fd5b506105a1612401565b34801561080257600080fd5b506105a1612407565b34801561081757600080fd5b506105f061082636600461820c565b61240d565b34801561083757600080fd5b5061055461084636600461820c565b612442565b34801561085757600080fd5b50610749612493565b34801561086c57600080fd5b5061057f612498565b34801561088157600080fd5b506105ce61089036600461844b565b61249d565b3480156108a157600080fd5b50610554612543565b3480156108b657600080fd5b506108ca6108c536600461844b565b612549565b604051610561969594939291906185e5565b3480156108e857600080fd5b506105a16125ad565b3480156108fd57600080fd5b506107496125b3565b34801561091257600080fd5b506107496125b8565b34801561092757600080fd5b506105a16125bd565b34801561093c57600080fd5b506105546125c3565b34801561095157600080fd5b506107496125c9565b34801561096657600080fd5b506105546125ce565b34801561097b57600080fd5b506105a16125d4565b34801561099057600080fd5b5061057f6125da565b3480156109a557600080fd5b506105546125df565b3480156109ba57600080fd5b5061053d6109c936600461849e565b6125e5565b3480156109da57600080fd5b50610554612646565b3480156109ef57600080fd5b5061055461264c565b348015610a0457600080fd5b506105f0612652565b348015610a1957600080fd5b5061055461265b565b348015610a2e57600080fd5b50610554612661565b348015610a4357600080fd5b50610554610a5236600461820c565b61267e565b348015610a6357600080fd5b5061053d6126be565b348015610a7857600080fd5b506107496127d2565b348015610a8d57600080fd5b506105a16127d7565b348015610aa257600080fd5b506105546127dd565b348015610ab757600080fd5b506105546127e2565b348015610acc57600080fd5b506105a16127e7565b348015610ae157600080fd5b506105ce6127ed565b348015610af657600080fd5b506105f0612809565b348015610b0b57600080fd5b506105a1612812565b348015610b2057600080fd5b506105a1612818565b348015610b3557600080fd5b5061055461281e565b348015610b4a57600080fd5b5061057f612493565b348015610b5f57600080fd5b5061053d610b6e3660046183ef565b612827565b348015610b7f57600080fd5b50610554610b8e36600461820c565b613320565b348015610b9f57600080fd5b50610554613332565b348015610bb457600080fd5b50610bbd61333f565b6040516105619190618666565b348015610bd657600080fd5b5061055461342a565b348015610beb57600080fd5b5061055461342f565b348015610c0057600080fd5b506105546125b3565b348015610c1557600080fd5b506105a1613435565b348015610c2a57600080fd5b5061055461343b565b348015610c3f57600080fd5b506105ce610c4e36600461844b565b613441565b348015610c5f57600080fd5b5061055461344e565b348015610c7457600080fd5b50610554613454565b348015610c8957600080fd5b50610554613493565b348015610c9e57600080fd5b5061055461349f565b348015610cb357600080fd5b506105a16134a5565b348015610cc857600080fd5b506105a16134ab565b348015610cdd57600080fd5b50610554610e9f565b348015610cf257600080fd5b5061053d6134b1565b348015610d0757600080fd5b50610554613742565b348015610d1c57600080fd5b506105f0610d2b3660046183b0565b613748565b348015610d3c57600080fd5b5061053d610d4b36600461820c565b6138ce565b348015610d5c57600080fd5b5061057f6139d2565b348015610d7157600080fd5b506107496139d7565b61053d610d8836600461820c565b6139dc565b348015610d9957600080fd5b50610554613d92565b348015610dae57600080fd5b506105a1613d98565b348015610dc357600080fd5b506107496127dd565b348015610dd857600080fd5b506105a1613d9e565b348015610ded57600080fd5b50610e01610dfc36600461844b565b613da4565b60405161056193929190619483565b348015610e1c57600080fd5b506105a1613e66565b6000610e303361267e565b9050600b8181548110610e3f57fe5b600091825260209091206001601690920201015460ff16610e7b5760405162461bcd60e51b8152600401610e729061909b565b60405180910390fd5b6000610e85613454565b9050610e943383836001613e6c565b505050565b60095481565b606481565b61200181565b60005460609060ff16610ecf5760405162461bcd60e51b8152600401610e729061892d565b600b54610f8d57610ede617db8565b60015460005b81811015610f8957600b8054600181018255600091909152835160008051602061958783398151915260169092029182019081556020808601516000805160206195c78339815191528401805460ff1916911515919091179055604086015180518794610f65936000805160206195a7833981519152909101920190617de7565b506060820151610f7b9060038301906013617e61565b505050806001019050610ee4565b5050505b610f95617e8e565b6000610fd685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061414192505050565b9150915080610ff257610fe960646142fd565b9250505061119f565b815160009060ff16611017576110108360200151846040015161435e565b905061116b565b825160ff16600114156111675782602001515160011461105c5760008051602061956783398151915260405161104c90618f54565b60405180910390a1506067611162565b6000836020015160008151811061106f57fe5b602090810291909101810151516001600160a01b038116600090815260049092526040909120549091508015806110d057506001808203815481106110b057fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561110e576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261115b565b600061111d8360018403615520565b905080611159576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61116b565b5060655b63ffffffff8116611190575050604080516000815260208101909152915061119f9050565b611199816142fd565b93505050505b9392505050565b60075460ff1681565b600f5481565b3341146111d45760405162461bcd60e51b8152600401610e72906192d2565b3a156111f25760405162461bcd60e51b8152600401610e7290618fda565b825160408051828152602080840282010190915260609082801561123057816020015b61121d617eb2565b8152602001906001900390816112155790505b50905060005b828110156112da576040518060c0016040528087838151811061125557fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061129757fe5b60200260200101516001600160401b0316815260200160001515815260200160008152508282815181106112c757fe5b6020908102919091010152600101611236565b5060405163d31f968d60e01b81526120009063d31f968d90611305906110009060089060040161864a565b60206040518083038186803b15801561131d57600080fd5b505afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113559190618390565b15611678578051601554818111156113f757815b818110156113f557601580548061137c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b031916905560030155905560168054806113cf57fe5b6001900381819060005260206000200160006113eb9190617ee7565b9055600101611369565b505b60005b828110156116375781811061151f57601584828151811061141757fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114e757fe5b602090810291909101810151825460018101845560009384529282902081516115199491909101929190910190617de7565b5061162f565b83818151811061152b57fe5b60200260200101516015828154811061154057fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115fb57fe5b60200260200101516016828154811061161057fe5b90600052602060002001908051906020019061162d929190617de7565b505b6001016113fa565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b4424682604051611667919061947a565b60405180910390a150505050610e94565b60608061168583866158e3565b9150915060005b60015481101561177b576000600182815481106116a557fe5b906000526020600020906004020160030154905080600014611772576000600183815481106116d057fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab826001858154811061170457fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b16815261173f926001600160a01b0390921691016185b8565b6000604051808303818588803b15801561175857600080fd5b505af115801561176c573d6000803e3d6000fd5b50505050505b5060010161168c565b5047156117e9577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516117b1919061947a565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117e7573d6000803e3d6000fd5b505b60006003819055600555815115611804576118048282615dcd565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561184157600080fd5b505af1158015611855573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118bd5760405162461bcd60e51b8152600401610e7290619434565b60005b60155481101561194557816001600160a01b0316601582815481106118e157fe5b60009182526020909120600490910201546001600160a01b0316141561193d5760016015828154811061191057fe5b9060005260206000209060040201600201601c6101000a81548160ff021916908315150217905550611945565b6001016118c0565b5050565b3341146119685760405162461bcd60e51b8152600401610e72906192d2565b60105443116119895760405162461bcd60e51b8152600401610e7290618b4f565b3a156119a75760405162461bcd60e51b8152600401610e7290618fda565b60005460ff166119c95760405162461bcd60e51b8152600401610e729061892d565b60006110023168056bc75e2d63100000811115611a00576119f98168056bc75e2d6310000063ffffffff6165bc16565b9150611a07565b5050611c88565b6040516309a99b4f60e41b815261100290639a99b4f090611a2e90309086906004016185cc565b602060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a809190618463565b915081611a8e575050611c88565b6000805b84811015611abc57858582818110611aa657fe5b9050602002013582019150806001019050611a92565b5080611aca57505050611c88565b6000806000805b89811015611c805784898983818110611ae657fe5b90506020020135880281611af657fe5b0493508a8a82818110611b0557fe5b9050602002016020810190611b1a919061820c565b6001600160a01b03811660009081526004602052604090205490935091508115611c36576000600180840381548110611b4f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611bbc57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611baf919061947a565b60405180910390a2611c30565b600354611bcf908663ffffffff6165fe16565b6003908155810154611be7908663ffffffff6165fe16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611c2790889061947a565b60405180910390a25b50611c78565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c6f919061947a565b60405180910390a25b600101611ad1565b505050505050505b5050436010555050565b6001546000908210611ca657506000611d5c565b60006001600160a01b031660018381548110611cbe57fe5b60009182526020909120600490910201546001600160a01b03161480611cee57506008541580611cee5750600a54155b80611cfd575060085460095410155b80611d0e5750611d0c82611d61565b155b80611d3757506000600b8381548110611d2357fe5b906000526020600020906016020160000154115b80611d4b57506001611d4761333f565b5111155b15611d5857506000611d5c565b5060015b919050565b6001546000908210611d7557506000611d5c565b600b548210611db25760018281548110611d8b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d5c565b60018281548110611dbf57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611e0c5750600b8281548110611df357fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611ed057611e21617db8565b60015460005b81811015611ecc57600b8054600181018255600091909152835160008051602061958783398151915260169092029182019081556020808601516000805160206195c78339815191528401805460ff1916911515919091179055604086015180518794611ea8936000805160206195a7833981519152909101920190617de7565b506060820151611ebe9060038301906013617e61565b505050806001019050611e27565b5050505b336110011480611ee1575033612002145b611efd5760405162461bcd60e51b8152600401610e7290618964565b6001600160a01b03811660009081526004602052604090205480611f215750611f74565b6001810390506000600b8281548110611f3657fe5b600091825260209091206001601690920201015460ff169050611f598383615520565b8015611f625750805b15610e94576009805460001901905550505b50565b60015460609081906000805b82811015611fca5760018181548110611f9857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611fc2576001909101905b600101611f83565b50606081604051908082528060200260200182016040528015611ff7578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561203057816020015b606081526020019060019003908161201b5790505b50600b54600094509091508414156121ab5760005b848110156121a5576001818154811061205a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661219d576001818154811061208a57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106120b557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106120e257fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561217a5780601f1061214f5761010080835404028352916020019161217a565b820191906000526020600020905b81548152906001019060200180831161215d57829003601f168201915b505050505082858151811061218b57fe5b60209081029190910101526001909301925b600101612045565b50612247565b60005b8481101561224557600181815481106121c357fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661223d57600181815481106121f357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061221e57fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016121ae565b505b909450925050505b9091565b600181565b61100181565b60085481565b6102ca81565b600881565b6060806000600e549050600080600c541161228b57601561228f565b600c545b9050606061229b61333f565b905060606122a882616623565b9050828251116122bf57909450925061224f915050565b838383510310156122d1578282510393505b83156123075760c843046122ed83838388880360008a8a616791565b6123058383838888038989038a8b8b8b510301616791565b505b606083604051908082528060200260200182016040528015612333578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561236c57816020015b60608152602001906001900390816123575790505b50905060005b858110156123ed5784818151811061238657fe5b602002602001015183828151811061239a57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106123c657fe5b60200260200101518282815181106123da57fe5b6020908102919091010152600101612372565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b03811660009081526004602052604081205480612435576000915050611d5c565b6000190161119f81611d61565b6001600160a01b0381166000908152600460205260408120548061246a576000915050611d5c565b60018082038154811061247957fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b601281815481106124aa57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561253b5780601f106125105761010080835404028352916020019161253b565b820191906000526020600020905b81548152906001019060200180831161251e57829003601f168201915b505050505081565b60105481565b6001818154811061255657fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146126065760405162461bcd60e51b8152600401610e7290619283565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051612639939291906194c3565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6000601754600014156126765750600161267b565b506017545b90565b6001600160a01b038116600090815260046020526040812054806126b45760405162461bcd60e51b8152600401610e729061920b565b6000190192915050565b600b5461277c576126cd617db8565b60015460005b8181101561277857600b8054600181018255600091909152835160008051602061958783398151915260169092029182019081556020808601516000805160206195c78339815191528401805460ff1916911515919091179055604086015180518794612754936000805160206195a7833981519152909101920190617de7565b50606082015161276a9060038301906013617e61565b5050508060010190506126d3565b5050505b6008546127895760036008555b600a54612796576002600a555b60006127a13361267e565b90506127ac81611c92565b6127c85760405162461bcd60e51b8152600401610e7290618f11565b611f7433826168e8565b600981565b61100781565b600381565b60c881565b61100681565b6040518060a00160405280607881526020016195e76078913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166128495760405162461bcd60e51b8152600401610e729061892d565b336110071461286a5760405162461bcd60e51b8152600401610e7290619008565b6128d484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506169809050565b1561297157602081146128f95760405162461bcd60e51b8152600401610e72906191c5565b604080516020601f8401819004810282018101909252828152600091612937918585808385018382808284376000920191909152506169d992505050565b90506064811015801561294d5750620186a08111155b6129695760405162461bcd60e51b8152600401610e7290618d72565b6002556132dd565b6129d184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506169809050565b15612a8657602081146129f65760405162461bcd60e51b8152600401610e72906187b3565b604080516020601f8401819004810282018101909252828152600091612a34918585808385018382808284376000920191909152506169d992505050565b9050612710612a60601854612a54600f54856165fe90919063ffffffff16565b9063ffffffff6165fe16565b1115612a7e5760405162461bcd60e51b8152600401610e7290618c98565b6006556132dd565b612af084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506169809050565b15612b8a5760208114612b155760405162461bcd60e51b8152600401610e72906187ea565b604080516020601f8401819004810282018101909252828152600091612b53918585808385018382808284376000920191909152506169d992505050565b600c5490915080612b62575060155b808210612b815760405162461bcd60e51b8152600401610e7290618bb9565b506008556132dd565b612bf384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506169809050565b15612c8c5760208114612c185760405162461bcd60e51b8152600401610e72906188b3565b604080516020601f8401819004810282018101909252828152600091612c56918585808385018382808284376000920191909152506169d992505050565b9050600081118015612c685750600a81105b612c845760405162461bcd60e51b8152600401610e7290619367565b600a556132dd565b612d0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506169809050565b15612d8f5760208114612d255760405162461bcd60e51b8152600401610e7290618867565b604080516020601f8401819004810282018101909252828152600091612d63918585808385018382808284376000920191909152506169d992505050565b9050600d54811115612d875760405162461bcd60e51b8152600401610e7290618de8565b600e556132dd565b612df884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506169809050565b15612e7a5760208114612e1d5760405162461bcd60e51b8152600401610e7290619056565b604080516020601f8401819004810282018101909252828152600091612e5b918585808385018382808284376000920191909152506169d992505050565b600d819055600e54909150811015612e7457600d54600e555b506132dd565b612ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506169809050565b15612f8c5760208114612f035760405162461bcd60e51b8152600401610e72906188f8565b604080516020601f8401819004810282018101909252828152600091612f41918585808385018382808284376000920191909152506169d992505050565b905060008111612f635760405162461bcd60e51b8152600401610e7290618a61565b6064811115612f845760405162461bcd60e51b8152600401610e7290618aa9565b600c556132dd565b612ff884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601581527473797374656d52657761726442617365526174696f60581b602082015291506169809050565b156130a1576020811461301d5760405162461bcd60e51b8152600401610e729061931f565b604080516020601f840181900481028201810190925282815260009161305b918585808385018382808284376000920191909152506169d992505050565b905061271061307b601854612a54600654856165fe90919063ffffffff16565b11156130995760405162461bcd60e51b8152600401610e72906189d2565b600f556132dd565b61311584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f73797374656d526577617264416e74694d4556526174696f0000000000000000602082015291506169809050565b156131be576020811461313a5760405162461bcd60e51b8152600401610e7290618d27565b604080516020601f8401819004810282018101909252828152600091613178918585808385018382808284376000920191909152506169d992505050565b9050612710613198600f54612a54600654856165fe90919063ffffffff16565b11156131b65760405162461bcd60e51b8152600401610e7290618e82565b6018556132dd565b61321f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a8152690e8eae4dc98cadccee8d60b31b602082015291506169809050565b156132c557602081146132445760405162461bcd60e51b8152600401610e7290618c16565b604080516020601f8401819004810282018101909252828152600091613282918585808385018382808284376000920191909152506169d992505050565b905060038110158015613296575060098111155b806132a15750806001145b6132bd5760405162461bcd60e51b8152600401610e729061913f565b6017556132dd565b60405162461bcd60e51b8152600401610e72906193c4565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516133129493929190618781565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b8281101561336e5761335a81611d61565b15613366578160010191505b600101613349565b5060608160405190808252806020026020018201604052801561339b578160200160208202803683370190505b5090506000915060005b83811015613422576133b681611d61565b1561341a57600181815481106133c857fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106133f357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016133a5565b509250505090565b601581565b61027181565b61100281565b60175481565b601381815481106124aa57fe5b60185481565b600061345e61333f565b519050600080600c5411613473576015613477565b600c545b905080821115613485578091505b8161348f57600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff16156134d45760405162461bcd60e51b8152600401610e7290619108565b6134dc617e8e565b60006134ff6040518060a00160405280607881526020016195e760789139614141565b91509150806135205760405162461bcd60e51b8152600401610e7290619242565b613528617db8565b60005b83602001515181101561372957600b8054600181018255600091909152825160008051602061958783398151915260169092029182019081556020808501516000805160206195c78339815191528401805460ff19169115159190911790556040850151805186946135b1936000805160206195a7833981519152909101920190617de7565b5060608201516135c79060038301906013617e61565b505050836040015181815181106135da57fe5b6020026020010151600b82815481106135ef57fe5b90600052602060002090601602016002019080519060200190613613929190617de7565b5060018460200151828151811061362657fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559187015180519185019391859081106136fc57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161352b565b50506103e860025550506000805460ff19166001179055565b600d5481565b601354600090815b818110156138515761383985858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506013805490925085915081106137a157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561382f5780601f106138045761010080835404028352916020019161382f565b820191906000526020600020905b81548152906001019060200180831161381257829003601f168201915b50505050506169de565b1561384957600192505050611e0c565b600101613750565b5060125460005b818110156138c2576138a986868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506012805490925085915081106137a157fe5b156138ba5760019350505050611e0c565b600101613858565b50600095945050505050565b33611001146138ef5760405162461bcd60e51b8152600401610e72906193eb565b600b546139ad576138fe617db8565b60015460005b818110156139a957600b8054600181018255600091909152835160008051602061958783398151915260169092029182019081556020808601516000805160206195c78339815191528401805460ff1916911515919091179055604086015180518794613985936000805160206195a7833981519152909101920190617de7565b50606082015161399b9060038301906013617e61565b505050806001019050613904565b5050505b60006139b882616a42565b90506139c381611c92565b156119455761194582826168e8565b606581565b601181565b3341146139fb5760405162461bcd60e51b8152600401610e72906192d2565b60005460ff16613a1d5760405162461bcd60e51b8152600401610e729061892d565b60003411613a3d5760405162461bcd60e51b8152600401610e7290618db9565b3a15613a5b5760405162461bcd60e51b8152600401610e7290618fda565b6001600160a01b03811660009081526004602052604090205460145434919060ff16613a9b57610271600f556103e86006556014805460ff191660011790555b600f546017546001108015613ab257506000601854115b15613ad7576001601754036017544381613ac857fe5b066018540281613ad457fe5b04015b600083118015613ae75750600081115b15613b94576000613b10612710613b04348563ffffffff616bc516565b9063ffffffff616bff16565b90508015613b92576040516110029082156108fc029083906000818181858888f19350505050158015613b47573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051613b77919061947a565b60405180910390a1613b8f848263ffffffff6165bc16565b93505b505b600083118015613ba657506000600654115b15613c4c576000613bc8612710613b0460065434616bc590919063ffffffff16565b90508015613c4a5760405161dead9082156108fc029083906000818181858888f19350505050158015613bff573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051613c2f919061947a565b60405180910390a1613c47848263ffffffff6165bc16565b93505b505b8115613d4a576000600180840381548110613c6357fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615613cd057846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051613cc3919061947a565b60405180910390a2613d44565b600354613ce3908563ffffffff6165fe16565b6003908155810154613cfb908563ffffffff6165fe16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590613d3b90879061947a565b60405180910390a25b50613d8c565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051613d83919061947a565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110613db157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613e5c5780601f10613e3157610100808354040283529160200191613e5c565b820191906000526020600020905b815481529060010190602001808311613e3f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613e7d575082155b80613e885750600954155b15613e9557506000614139565b60096000815460019003919050819055506000613ee0600a54613b0486613b04600b8a81548110613ec257fe5b6000918252602090912060169091020154439063ffffffff6165bc16565b90506000600b8681548110613ef157fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613f5657600080fd5b505afa158015613f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f8e919061847b565b91509150600093508083106140ef57613fa78888615520565b5060405163436aa28360e11b8152600090612002906386d5450690613fd0908c906004016185b8565b60206040518083038186803b158015613fe857600080fd5b505afa158015613ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140209190618228565b6001600160a01b03161461408e576040516328aa02b160e01b8152611001906328aa02b190614057908b9087908a90600401618627565b600060405180830381600087803b15801561407157600080fd5b505af1158015614085573d6000803e3d6000fd5b505050506140e6565b6040516305bfb49960e41b815261100190635bfb4990906140b3908b906004016185b8565b600060405180830381600087803b1580156140cd57600080fd5b505af11580156140e1573d6000803e3d6000fd5b505050505b60019350614101565b818310614101576140ff88616a42565b505b6040516001600160a01b038916907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050505b949350505050565b614149617e8e565b6000614153617e8e565b61415b617f2b565b61416c61416786616c41565b616c66565b90506000805b61417b83616cb0565b156142ef57806141a05761419661419184616cd1565b616d1f565b60ff1684526142e7565b80600114156142e25760606141bc6141b785616cd1565b616d9f565b905080516040519080825280602002602001820160405280156141f957816020015b6141e6617eb2565b8152602001906001900390816141de5790505b508560200181905250805160405190808252806020026020018201604052801561423757816020015b60608152602001906001900390816142225790505b50604086015260005b81518110156142d757614251617eb2565b6060600061427185858151811061426457fe5b6020026020010151616e70565b92509250925080614291578860009a509a505050505050505050506142f8565b82896020015185815181106142a257fe5b602002602001018190525081896040015185815181106142be57fe5b6020026020010181905250505050806001019050614240565b5060019250506142e7565b6142ef565b600101614172565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161431757905050905061433d8363ffffffff16616f8a565b8160008151811061434a57fe5b602002602001018190525061119f81616f9d565b60006064835111156143955760008051602061956783398151915260405161438590618b06565b60405180910390a1506066611e0c565b60005b83518110156144335760005b8181101561442a578481815181106143b857fe5b6020026020010151600001516001600160a01b03168583815181106143d957fe5b6020026020010151600001516001600160a01b031614156144225760008051602061956783398151915260405161440f90618c4d565b60405180910390a1606692505050611e0c565b6001016143a4565b50600101614398565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156144e55760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161445b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156145ba5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156145a65780601f1061457b576101008083540402835291602001916145a6565b820191906000526020600020905b81548152906001019060200180831161458957829003601f168201915b50505050508152602001906001019061450f565b50505050905060005b8251811015614617578281815181106145d857fe5b6020026020010151606001516003028382815181106145f357fe5b60209081029190910101516001600160401b039091166060909101526001016145c3565b5060608061462789898686617027565b9150915061463582826158e3565b60015460408051828152602080840282010190915292985090965060009550859450925060609150828015614674578160200160208202803683370190505b50905060005b828110156148055760006001600160a01b03166120026001600160a01b03166386d54506600184815481106146ab57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b1681526146e6926001600160a01b0390921691016185b8565b60206040518083038186803b1580156146fe57600080fd5b505afa158015614712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147369190618228565b6001600160a01b03161461479857600182828151811061475257fe5b602002602001019060ff16908160ff16815250506001818154811061477357fe5b906000526020600020906004020160030154600014614793578360010193505b6147fd565b67016345785d8a0000600182815481106147ae57fe5b906000526020600020906004020160030154106147d0578460010194506147fd565b600181815481106147dd57fe5b9060005260206000209060040201600301546000146147fd578360010193505b60010161467a565b50606084604051908082528060200260200182016040528015614832578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614861578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015614890578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156148bf578160200160208202803683370190505b50905060006060886040519080825280602002602001820160405280156148f0578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561491f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561496757600080fd5b505afa15801561497b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061499f9190618463565b905067016345785d8a00008111156149eb576000805160206195678339815191526040516149cc906190c7565b60405180910390a160689e505050505050505050505050505050611e0c565b60005b8a811015614d7f57898181518110614a0257fe5b602002602001015160ff1660011415614af85760018181548110614a2257fe5b906000526020600020906004020160030154600014614af35760018181548110614a4857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e908110614a7357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614aa057fe5b906000526020600020906004020160030154838d81518110614abe57fe5b60200260200101818152505060018a8d81518110614ad857fe5b602002602001019060ff16908160ff16815250508b6001019b505b614d77565b67016345785d8a000060018281548110614b0e57fe5b90600052602060002090600402016003015410614c935760018181548110614b3257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e81518110614b6357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be40060018381548110614b9857fe5b90600052602060002090600402016003015481614bb157fe5b0660018381548110614bbf57fe5b906000526020600020906004020160030154039050614be783826165bc90919063ffffffff16565b898f81518110614bf357fe5b60200260200101818152505060018281548110614c0c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f81518110614c3d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f81518110614c6a57fe5b6020908102919091010152614c85868263ffffffff6165fe16565b95508d6001019d5050614d77565b60018181548110614ca057fe5b906000526020600020906004020160030154600014614d775760018181548110614cc657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d81518110614cf757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614d2457fe5b906000526020600020906004020160030154838d81518110614d4257fe5b60200260200101818152505060008a8d81518110614d5c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6001016149ee565b5060008415614ff5576002546040516303702b2960e51b815261100491636e056520918891614db9918e918e918d914201906004016186e9565b6020604051808303818588803b158015614dd257600080fd5b505af193505050508015614e03575060408051601f3d908101601f19168201909252614e0091810190618390565b60015b614f7a576040516000815260443d1015614e1f57506000614eba565b60046000803e60005160e01c6308c379a08114614e40576000915050614eba565b60043d036004833e81513d60248201116001600160401b0382111715614e6b57600092505050614eba565b80830180516001600160401b03811115614e8c576000945050505050614eba565b8060208301013d8601811115614eaa57600095505050505050614eba565b601f01601f191660405250925050505b80614ec55750614f07565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614ef9919061876e565b60405180910390a250614f75565b3d808015614f31576040519150601f19603f3d011682016040523d82523d6000602084013e614f36565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614f6b919061876e565b60405180910390a2505b614ff5565b8015614fbc577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614faf919061947a565b60405180910390a1614ff3565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614fea90618830565b60405180910390a25b505b80156151ab5760005b87518110156151a957600088828151811061501557fe5b6020026020010151905060006001828154811061502e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061505f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f193505050509050801561511b57600182815481106150a057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106150ef57fe5b90600052602060002090600402016003015460405161510e919061947a565b60405180910390a261519f565b6001828154811061512857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061517757fe5b906000526020600020906004020160030154604051615196919061947a565b60405180910390a25b5050600101614ffe565b505b8351156153a15760005b845181101561539f578a81815181106151ca57fe5b602002602001015160ff1660011415615269576120026001600160a01b031663092193ab8583815181106151fa57fe5b602002602001015187848151811061520e57fe5b60200260200101516040518363ffffffff1660e01b815260040161523291906185b8565b6000604051808303818588803b15801561524b57600080fd5b505af115801561525f573d6000803e3d6000fd5b5050505050615397565b600085828151811061527757fe5b60200260200101516001600160a01b03166108fc86848151811061529757fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561532d578582815181106152cd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d86848151811061530b57fe5b6020026020010151604051615320919061947a565b60405180910390a2615395565b85828151811061533957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d86848151811061537757fe5b602002602001015160405161538c919061947a565b60405180910390a25b505b6001016151b5565b505b5050505050505050505050505060005b60015481101561540e57600181815481106153c857fe5b906000526020600020906004020160030154600014615406576000600182815481106153f057fe5b9060005260206000209060040201600301819055505b6001016153b1565b50471561547c577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051615444919061947a565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561547a573d6000803e3d6000fd5b505b60006003819055600555815115615497576154978282615dcd565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156154d457600080fd5b505af11580156154e8573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061553057fe5b9060005260206000209060040201600301549050600060018080549050039050600161555a61333f565b511161558f5760006001858154811061556f57fe5b906000526020600020906004020160030181905550600092505050611e0c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516155c8919061947a565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156157b5576001816001018154811061560957fe5b90600052602060002090600402016001828154811061562457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106156e557fe5b9060005260206000209060160201600b828154811061570057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615757938386019390821615610100026000190190911604617f4b565b5061576a60038281019084016013617fc0565b5090505080600101600460006001848154811061578357fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016155eb565b5060018054806157c157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061581457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906158466002830182617ee7565b615854600383016000617fea565b50509055600081838161586357fe5b04905080156158d75760015460005b818110156158d4576158ab836001838154811061588b57fe5b9060005260206000209060040201600301546165fe90919063ffffffff16565b600182815481106158b857fe5b6000918252602090912060036004909202010155600101615872565b50505b50600195945050505050565b6060806000808080806158f4613454565b6001549091505b8015615b2657600181039250600b838154811061591457fe5b600091825260209091206001601690920201015460ff1661593457615b1d565b6001838154811061594157fe5b600091825260208220600490910201546001600160a01b0316955061596b90869085908590613e6c565b93508361597757615b1d565b60405163436aa28360e11b81526000908190612002906386d54506906159a1908a906004016185b8565b60206040518083038186803b1580156159b957600080fd5b505afa1580156159cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159f19190618228565b90506001600160a01b03811615615a7a576040516302ceee9160e11b81526120029063059ddd2290615a279084906004016185b8565b60206040518083038186803b158015615a3f57600080fd5b505afa158015615a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615a779190618228565b91505b60005b8c51811015615b1957876001600160a01b03168d8281518110615a9c57fe5b6020026020010151600001516001600160a01b03161480615ae55750826001600160a01b03168d8281518110615ace57fe5b6020026020010151600001516001600160a01b0316145b15615b115760018d8281518110615af857fe5b6020908102919091010151901515608090910152615b19565b600101615a7d565b5050505b600019016158fb565b5060005b8951811015615b9357898181518110615b3f57fe5b60200260200101516080015180615b7f575060006001600160a01b03168a8281518110615b6857fe5b6020026020010151600001516001600160a01b0316145b15615b8b578560010195505b600101615b2a565b5088518510615c7b5760408051600180825281830190925290816020015b615bb9617eb2565b815260200190600190039081615bb1575050604080516001808252818301909252919850602082015b6060815260200190600190039081615be257905050955088600081518110615c0657fe5b602002602001015187600081518110615c1b57fe5b602002602001018190525087600081518110615c3357fe5b602002602001015186600081518110615c4857fe5b6020026020010181905250600087600081518110615c6257fe5b6020908102919091010151901515608090910152615dc0565b84895103604051908082528060200260200182016040528015615cb857816020015b615ca5617eb2565b815260200190600190039081615c9d5790505b50965084895103604051908082528060200260200182016040528015615cf257816020015b6060815260200190600190039081615cdd5790505b5095506000915060005b8951811015615dbe57898181518110615d1157fe5b602002602001015160800151158015615d54575060006001600160a01b03168a8281518110615d3c57fe5b6020026020010151600001516001600160a01b031614155b15615db657898181518110615d6557fe5b6020026020010151888481518110615d7957fe5b6020026020010181905250888181518110615d9057fe5b6020026020010151878481518110615da457fe5b60200260200101819052508260010192505b600101615cfc565b505b50505050505b9250929050565b600154825160005b82811015615eea576001615de7617eb2565b60018381548110615df457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615ebe57878181518110615e8457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615eb65760009250615ebe565b600101615e70565b508115615ee05780516001600160a01b03166000908152600460205260408120555b5050600101615dd5565b5080821115615fa957805b82811015615fa7576001805480615f0857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615f5b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615f8d6002830182617ee7565b615f9b600383016000617fea565b50509055600101615ef5565b505b6000818310615fb85781615fba565b825b905060005b8181101561635e5761606c868281518110615fd657fe5b602002602001015160018381548110615feb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526173f3565b61622057806001016004600088848151811061608457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106160c057fe5b6020026020010151600182815481106160d557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155845185908290811061619057fe5b6020026020010151600b82815481106161a557fe5b906000526020600020906016020160020190805190602001906161c9929190617de7565b506000600b82815481106161d957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061620a57fe5b6000918252602090912060169091020155616356565b85818151811061622c57fe5b6020026020010151606001516001828154811061624557fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555061630b85828151811061628957fe5b6020026020010151600b838154811061629e57fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561382f5780601f106138045761010080835404028352916020019161382f565b6163565784818151811061631b57fe5b6020026020010151600b828154811061633057fe5b90600052602060002090601602016002019080519060200190616354929190617de7565b505b600101615fbf565b50828211156165365761636f617db8565b835b838110156165335785818151811061638557fe5b6020026020010151826040018190525060018782815181106163a357fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206195878339815191528101918255858301516000805160206195c78339815191528201805491151560ff19909216919091179055928501518051869492936164d9936000805160206195a783398151915201920190617de7565b5060608201516164ef9060038301906013617e61565b505050806001016004600089848151811061650657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101616371565b50505b61653e61744f565b616546617631565b6000600981905560015493505b838110156165b4576000600b828154811061656a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061659b57fe5b6000918252602090912060169091020155600101616553565b505050505050565b600061119f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061781f565b60008282018381101561119f5760405162461bcd60e51b8152600401610e729061899b565b60015481516040805182815260208084028201019091526060929190839082801561666257816020015b606081526020019060019003908161664d5790505b50600b549091508314616679579250611d5c915050565b60005b8281101561678857600b60016004600089858151811061669857fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106166cc57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156167645780601f1061673957610100808354040283529160200191616764565b820191906000526020600020905b81548152906001019060200180831161674757829003601f168201915b505050505082828151811061677557fe5b602090810291909101015260010161667c565b50949350505050565b60005b828110156168de57600082878388016040516020016167b49291906185aa565b6040516020818303038152906040528051906020012060001c816167d457fe5b069050808501828701146168d557600089838801815181106167f257fe5b602002602001015190506060898489018151811061680c57fe5b602002602001015190508a8388018151811061682457fe5b60200260200101518b858a018151811061683a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061686957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061689757fe5b60200260200101518a858a01815181106168ad57fe5b6020026020010181905250808a848901815181106168c757fe5b602002602001018190525050505b50600101616794565b5050505050505050565b600980546001908101909155600b80548390811061690257fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061693857fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001616993919061858e565b60405160208183030381529060405280519060200120836040516020016169ba919061858e565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146169fa5760009250616a38565b600160208701838101602088015b600284838510011415616a33578051835114616a275760009650600093505b60209283019201616a08565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480616a6b57506000199050611d5c565b600181039050600060018281548110616a8057fe5b9060005260206000209060040201600301549050600060018381548110616aa357fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616afc90859061947a565b60405180910390a280616b1457829350505050611d5c565b6000818381616b1f57fe5b0490508015616bbb5760005b84811015616b6d57616b44826001838154811061588b57fe5b60018281548110616b5157fe5b6000918252602090912060036004909202010155600101616b2b565b50600180549085015b81811015616bb857616b8f836001838154811061588b57fe5b60018281548110616b9c57fe5b6000918252602090912060036004909202010155600101616b76565b50505b5091949350505050565b600082616bd457506000611e0c565b82820282848281616be157fe5b041461119f5760405162461bcd60e51b8152600401610e7290618f99565b600061119f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061784b565b616c49617ff9565b506040805180820190915281518152602082810190820152919050565b616c6e617f2b565b616c7782617882565b616c8057600080fd5b6000616c8f83602001516178bc565b60208085015160408051808201909152868152920190820152915050919050565b6000616cba617ff9565b505080518051602091820151919092015191011190565b616cd9617ff9565b616ce282616cb0565b616ceb57600080fd5b60208201516000616cfb8261791f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590616d3457508151602110155b616d3d57600080fd5b6000616d4c83602001516178bc565b90508083600001511015616d725760405162461bcd60e51b8152600401610e729061918e565b82516020808501518301805192849003929183101561678857506020919091036101000a90049392505050565b6060616daa82617882565b616db357600080fd5b6000616dbe83617a00565b9050606081604051908082528060200260200182016040528015616dfc57816020015b616de9617ff9565b815260200190600190039081616de15790505b5090506000616e0e85602001516178bc565b60208601510190506000805b84811015616e6557616e2b8361791f565b9150604051806040016040528083815260200184815250848281518110616e4e57fe5b602090810291909101015291810191600101616e1a565b509195945050505050565b616e78617eb2565b60606000616e84617eb2565b6060616e8e617f2b565b616e9787616c66565b90506000805b616ea683616cb0565b15616f7b5780616ed157616ec1616ebc84616cd1565b617a5c565b6001600160a01b03168552616f73565b8060011415616ef957616ee6616ebc84616cd1565b6001600160a01b03166020860152616f73565b8060021415616f2157616f0e616ebc84616cd1565b6001600160a01b03166040860152616f73565b8060031415616f4d57616f3661419184616cd1565b6001600160401b0316606086015260019150616f73565b8060041415616f6e57616f67616f6284616cd1565b617a76565b9350616f73565b616f7b565b600101616e9d565b50929791965091945092505050565b6060611e0c616f9883617ae6565b617bcc565b6060815160001415616fbe5750604080516000815260208101909152611d5c565b606082600081518110616fcd57fe5b602002602001015190506000600190505b835181101561700e5761700482858381518110616ff757fe5b6020026020010151617c1e565b9150600101616fde565b5061119f617021825160c060ff16617c9b565b82617c1e565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561706757600080fd5b505afa15801561707b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061709f9190618463565b905080855188510110156170b4575083518651015b6060816040519080825280602002602001820160405280156170f057816020015b6170dd617eb2565b8152602001906001900390816170d55790505b50905060608260405190808252806020026020018201604052801561712957816020015b60608152602001906001900390816171145790505b50905060008060005b8b518310806171415750895182105b801561714c57508581105b156173e1578b518314156171bc5789828151811061716657fe5b602002602001015185828151811061717a57fe5b602002602001018190525088828151811061719157fe5b60200260200101518482815181106171a557fe5b602090810291909101015260019182019101617132565b8951821415617227578b83815181106171d157fe5b60200260200101518582815181106171e557fe5b60200260200101819052508a83815181106171fc57fe5b602002602001015184828151811061721057fe5b602090810291909101015260019283019201617132565b89828151811061723357fe5b6020026020010151606001516001600160401b03168c848151811061725457fe5b6020026020010151606001516001600160401b031611156172d0578b838151811061727b57fe5b602002602001015185828151811061728f57fe5b60200260200101819052508a83815181106172a657fe5b60200260200101518482815181106172ba57fe5b60200260200101819052508260010192506173d9565b8982815181106172dc57fe5b6020026020010151606001516001600160401b03168c84815181106172fd57fe5b6020026020010151606001516001600160401b031610156173795789828151811061732457fe5b602002602001015185828151811061733857fe5b602002602001018190525088828151811061734f57fe5b602002602001015184828151811061736357fe5b60200260200101819052508160010191506173d9565b89828151811061738557fe5b6020026020010151600001516001600160a01b03168c84815181106173a657fe5b6020026020010151600001516001600160a01b031610156173cd578b838151811061727b57fe5b89828151811061716657fe5b600101617132565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561742d575081602001516001600160a01b031683602001516001600160a01b0316145b801561119f5750506040908101519101516001600160a01b0390811691161490565b6012546013548082111561749a57805b8281101561749857601280548061747257fe5b60019003818190600052602060002001600061748e9190617ee7565b905560010161745f565b505b60008183106174a957816174ab565b825b905060005b818110156175c357617568601282815481106174c857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156175565780601f1061752b57610100808354040283529160200191617556565b820191906000526020600020905b81548152906001019060200180831161753957829003601f168201915b5050505050601383815481106137a157fe5b6175bb576013818154811061757957fe5b906000526020600020016012828154811061759057fe5b9060005260206000200190805460018160011615610100020316600290046175b9929190617f4b565b505b6001016174b0565b5082821115610e9457825b82811015613d8c576012601382815481106175e557fe5b6000918252602080832084546001818101875595855291909320929091018054617628949390920192909160026101009282161592909202600019011604617f4b565b506001016175ce565b601354600b548082111561767c57805b8281101561767a57601380548061765457fe5b6001900381819060005260206000200160006176709190617ee7565b9055600101617641565b505b600081831061768b578161768d565b825b905060005b818110156177ac5761774a601382815481106176aa57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156177385780601f1061770d57610100808354040283529160200191617738565b820191906000526020600020905b81548152906001019060200180831161771b57829003601f168201915b5050505050600b838154811061629e57fe5b6177a457600b818154811061775b57fe5b90600052602060002090601602016002016013828154811061777957fe5b9060005260206000200190805460018160011615610100020316600290046177a2929190617f4b565b505b600101617692565b5082821115610e9457825b82811015613d8c576013600b82815481106177ce57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461781695939094019390926000199082161561010002011604617f4b565b506001016177b7565b600081848411156178435760405162461bcd60e51b8152600401610e72919061876e565b505050900390565b6000818361786c5760405162461bcd60e51b8152600401610e72919061876e565b50600083858161787857fe5b0495945050505050565b805160009061789357506000611d5c565b6020820151805160001a9060c08210156178b257600092505050611d5c565b5060019392505050565b8051600090811a60808110156178d6576000915050611d5c565b60b88110806178f1575060c081108015906178f1575060f881105b15617900576001915050611d5c565b60c08110156179145760b519019050611d5c565b60f519019050611d5c565b80516000908190811a608081101561793a57600191506179f9565b60b881101561794f57607e19810191506179f9565b60c08110156179a057600060b78203600186019550806020036101000a86510491506001810182019350508083101561799a5760405162461bcd60e51b8152600401610e7290618e57565b506179f9565b60f88110156179b55760be19810191506179f9565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156179f75760405162461bcd60e51b8152600401610e7290618e57565b505b5092915050565b8051600090617a1157506000611d5c565b60008090506000617a2584602001516178bc565b602085015185519181019250015b80821015617a5357617a448261791f565b82019150826001019250617a33565b50909392505050565b8051600090601514617a6d57600080fd5b611e0c82616d1f565b8051606090617a8457600080fd5b6000617a9383602001516178bc565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617aca576020820181803683370190505b5090506000816020019050616788848760200151018285617d6d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416617b2a57506018617b4e565b6fffffffffffffffffffffffffffffffff198416617b4a57506010617b4e565b5060005b6020811015617b8457818181518110617b6357fe5b01602001516001600160f81b03191615617b7c57617b84565b600101617b4e565b60008160200390506060816040519080825280601f01601f191660200182016040528015617bb9576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015617bfe5750607f60f81b82600081518110617bec57fe5b01602001516001600160f81b03191611155b15617c0a575080611d5c565b611e0c617c1c8351608060ff16617c9b565b835b6060806040519050835180825260208201818101602087015b81831015617c4f578051835260209283019201617c37565b50855184518101855292509050808201602086015b81831015617c7c578051835260209283019201617c64565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310617cc55760405162461bcd60e51b8152600401610e7290618b91565b60408051600180825281830190925260609160208201818036833701905050905060378411617d1f5782840160f81b81600081518110617d0157fe5b60200101906001600160f81b031916908160001a9053509050611e0c565b6060617d2a85617ae6565b90508381510160370160f81b82600081518110617d4357fe5b60200101906001600160f81b031916908160001a905350617d648282617c1e565b95945050505050565b80617d7757610e94565b5b60208110617d97578251825260209283019290910190601f1901617d78565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617de2618013565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617e2857805160ff1916838001178555617e55565b82800160010185558215617e55579182015b82811115617e55578251825591602001919060010190617e3a565b5061348f929150618032565b8260138101928215617e555791602002820182811115617e55578251825591602001919060010190617e3a565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617f0d5750611f74565b601f016020900490600052602060002090810190611f749190618032565b6040518060400160405280617f3e617ff9565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617f845780548555617e55565b82800160010185558215617e5557600052602060002091601f016020900482015b82811115617e55578254825591600101919060010190617fa5565b8260138101928215617e555791820182811115617e55578254825591600101919060010190617fa5565b50611f74906013810190618032565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61267b91905b8082111561348f5760008155600101618038565b8035611e0c81619551565b60008083601f840112618068578182fd5b5081356001600160401b0381111561807e578182fd5b6020830191508360208083028501011115615dc657600080fd5b6000601f83818401126180a9578182fd5b82356180bc6180b782619506565b6194e0565b818152925060208084019085810160005b8481101561814e578135880189603f8201126180e857600080fd5b838101356001600160401b0381111561810057600080fd5b618111818901601f191686016194e0565b81815260408c8184860101111561812757600080fd5b828185018884013750600091810186019190915285525092820192908201906001016180cd565b50505050505092915050565b600082601f83011261816a578081fd5b81356181786180b782619506565b81815291506020808301908481018184028601820187101561819957600080fd5b6000805b8581101561814e5782356001600160401b03811681146181bb578283fd5b8552938301939183019160010161819d565b60008083601f8401126181de578182fd5b5081356001600160401b038111156181f4578182fd5b602083019150836020828501011115615dc657600080fd5b60006020828403121561821d578081fd5b813561119f81619551565b600060208284031215618239578081fd5b815161119f81619551565b60008060008060408587031215618259578283fd5b84356001600160401b038082111561826f578485fd5b61827b88838901618057565b90965094506020870135915080821115618293578384fd5b506182a087828801618057565b95989497509550505050565b6000806000606084860312156182c0578283fd5b83356001600160401b03808211156182d6578485fd5b81860187601f8201126182e7578586fd5b803592506182f76180b784619506565b80848252602080830192508084018b82838902870101111561831757898afd5b8994505b868510156183415761832d8c8261804c565b84526001949094019392810192810161831b565b509097508801359350505080821115618358578384fd5b6183648783880161815a565b93506040860135915080821115618379578283fd5b5061838686828701618098565b9150509250925092565b6000602082840312156183a1578081fd5b8151801515811461119f578182fd5b600080602083850312156183c2578182fd5b82356001600160401b038111156183d7578283fd5b6183e3858286016181cd565b90969095509350505050565b60008060008060408587031215618404578384fd5b84356001600160401b038082111561841a578586fd5b618426888389016181cd565b9096509450602087013591508082111561843e578384fd5b506182a0878288016181cd565b60006020828403121561845c578081fd5b5035919050565b600060208284031215618474578081fd5b5051919050565b6000806040838503121561848d578182fd5b505080516020909101519092909150565b6000806000604084860312156184b2578081fd5b833560ff811681146184c2578182fd5b925060208401356001600160401b038111156184dc578182fd5b6184e8868287016181cd565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561852d5781516001600160a01b031687529582019590820190600101618508565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261857a816020860160208601619525565b601f01601f19169290920160200192915050565b600082516185a0818460208701619525565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261119f60208301846184f5565b60006040825261868c60408301856184f5565b602083820381850152818551808452828401915082838202850101838801865b838110156186da57601f198784030185526186c8838351618562565b948601949250908501906001016186ac565b50909998505050505050505050565b6000608082526186fc60808301876184f5565b828103602084810191909152865180835287820192820190845b8181101561873257845183529383019391830191600101618716565b5050848103604086015261874681886184f5565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261119f6020830184618562565b600060408252618795604083018688618538565b82810360208401526187a8818587618538565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526063908201527f7468652073797374656d52657761726442617365526174696f20706c7573206260408201527f75726e526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252601d908201527f6c656e677468206f66207475726e4c656e677468206d69736d61746368000000604082015260600190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526063908201527f746865206275726e526174696f20706c75732073797374656d5265776172644260408201527f617365526174696f20616e642073797374656d526577617264416e74694d455660608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b6020808252602b908201527f6c656e677468206f662073797374656d526577617264416e74694d455652617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526063908201527f7468652073797374656d526577617264416e74694d4556526174696f20706c7560408201527f73206275726e526174696f20616e642073797374656d5265776172644261736560608201527f526174696f206d757374206265206e6f2067726561746572207468616e20313060808201526203030360ec1b60a082015260c00190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252602f908201527f746865207475726e4c656e6774682073686f756c6420626520696e205b332c3960408201526e5d206f7220657175616c20746f203160881b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526028908201527f6c656e677468206f662073797374656d52657761726442617365526174696f206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152617d646060830184618562565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152617d64604083018486618538565b6040518181016001600160401b03811182821017156194fe57600080fd5b604052919050565b60006001600160401b0382111561951b578081fd5b5060209081020190565b60005b83811015619540578181015183820152602001619528565b83811115613d8c5750506000910152565b6001600160a01b0381168114611f7457600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaf87680f873f871949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d79164b085e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/bohr/types.go b/core/systemcontracts/bohr/types.go index 77e3e836dc..7c859194a0 100644 --- a/core/systemcontracts/bohr/types.go +++ b/core/systemcontracts/bohr/types.go @@ -6,10 +6,22 @@ import _ "embed" var ( //go:embed mainnet/ValidatorContract MainnetValidatorContract string + //go:embed mainnet/StakeHubContract + MainnetStakeHubContract string ) // contract codes for Chapel upgrade var ( //go:embed chapel/ValidatorContract ChapelValidatorContract string + //go:embed chapel/StakeHubContract + ChapelStakeHubContract string +) + +// contract codes for Rialto upgrade +var ( + //go:embed rialto/ValidatorContract + RialtoValidatorContract string + //go:embed rialto/StakeHubContract + RialtoStakeHubContract string ) diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index c2e73855a3..81964aa68d 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -8,6 +8,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/state" + "github.com/ethereum/go-ethereum/core/systemcontracts/bohr" "github.com/ethereum/go-ethereum/core/systemcontracts/bruno" "github.com/ethereum/go-ethereum/core/systemcontracts/euler" "github.com/ethereum/go-ethereum/core/systemcontracts/feynman" @@ -738,6 +739,54 @@ func init() { }, }, } + + bohrUpgrade[mainNet] = &Upgrade{ + UpgradeName: "bohr", + Configs: []*UpgradeConfig{ + { + ContractAddr: common.HexToAddress(ValidatorContract), + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/04bc57c1876dd543dd3133b2755ba87cc5f1796a", + Code: bohr.MainnetValidatorContract, + }, + { + ContractAddr: common.HexToAddress(StakeHubContract), + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/04bc57c1876dd543dd3133b2755ba87cc5f1796a", + Code: bohr.MainnetStakeHubContract, + }, + }, + } + + bohrUpgrade[chapelNet] = &Upgrade{ + UpgradeName: "bohr", + Configs: []*UpgradeConfig{ + { + ContractAddr: common.HexToAddress(ValidatorContract), + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/04bc57c1876dd543dd3133b2755ba87cc5f1796a", + Code: bohr.ChapelValidatorContract, + }, + { + ContractAddr: common.HexToAddress(StakeHubContract), + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/04bc57c1876dd543dd3133b2755ba87cc5f1796a", + Code: bohr.ChapelStakeHubContract, + }, + }, + } + + bohrUpgrade[rialtoNet] = &Upgrade{ + UpgradeName: "bohr", + Configs: []*UpgradeConfig{ + { + ContractAddr: common.HexToAddress(ValidatorContract), + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/04bc57c1876dd543dd3133b2755ba87cc5f1796a", + Code: bohr.RialtoValidatorContract, + }, + { + ContractAddr: common.HexToAddress(StakeHubContract), + CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/04bc57c1876dd543dd3133b2755ba87cc5f1796a", + Code: bohr.RialtoStakeHubContract, + }, + }, + } } func UpgradeBuildInSystemContract(config *params.ChainConfig, blockNumber *big.Int, lastBlockTime uint64, blockTime uint64, statedb *state.StateDB) {