Address Details
contract

0xc5f536afB8E9478Ac80F70E9a44C61bF374c6E73

Creator
0x0cc59e–f1502d at 0x71e011–fd3448
Balance
0 CELO
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
22734612

Contract Creation Code

Verify & Publish
0x60806040523480156200001157600080fd5b5060405162008fcd38038062008fcd833981810160405260208110156200003757600080fd5b81019080805190602001909291905050508060006200005b6200012a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600180819055508062000122576001600260006101000a81548160ff0219169083151502179055505b505062000132565b600033905090565b618e8b80620001426000396000f3fe608060405234801561001057600080fd5b506004361061041d5760003560e01c80637b2434cb1161022b578063ae32fa0e11610130578063c48830d9116100b8578063f0c5658411610087578063f0c56584146121d1578063f2fde38b146121ef578063f333d83614612233578063fbe3c37314612279578063ff836d93146122c75761041d565b8063c48830d9146120ab578063c4d66de814612131578063e7a16e6b14612175578063e8d787cb146121a35761041d565b8063ba40e4f6116100ff578063ba40e4f614611e74578063baf7ef0f14611f25578063bce2b8d614611f8a578063c2e0ee2014611f94578063c47f002714611ff05761041d565b8063ae32fa0e14611beb578063b062c84314611ca8578063b5a664c214611d21578063b6c6662514611da55761041d565b806392f90fbf116101b35780639f024f4b116101825780639f024f4b14611a075780639f68297614611a92578063a5ec94f914611ae0578063a8ae1a3d14611aea578063a91ee0dc14611ba75761041d565b806392f90fbf1461188d57806393c5c487146118fc5780639cafb2a1146119805780639dca362f146119e55761041d565b80638da5cb5b116101fa5780638da5cb5b1461163e5780638f32d59b146116885780638f9ae6dc146116aa57806390b12b47146116f857806391cd074b146118075761041d565b80637b2434cb1461136457806387affe68146113e85780638adaf96f146114765780638bceca58146115b05761041d565b806349045e161161033157806364439b43116102b9578063747daec511610288578063747daec51461116b57806376082c1f146111e4578063760fbbb2146112ab57806376afa04c146112b55780637b1039991461131a5761041d565b806364439b431461100b5780636642d5941461108f578063715018a614611113578063727d079c1461111d5761041d565b80635b07fdd8116103005780635b07fdd814610dc25780635b6d900414610de05780635fd4b08a14610e6e578063614ed49314610f2b57806361bab1ae14610f875761041d565b806349045e1614610c615780634ce38b5f14610cbd57806354255be014610d4157806358b81ea814610d745761041d565b80631465b923116103b4578063289a131811610383578063289a1318146109e35780633184b3c514610ae857806341ddd88014610af25780634282ee6d14610b76578063485a46d114610bdb5761041d565b80631465b9231461077d578063158ef93e146108e15780631fd9afa51461090357806325ca4c9c146109875761041d565b80630fa750d2116103f05780630fa750d2146105985780630fe7abab1461065257806310c504b51461070d5780631441ece7146107175761041d565b80630127dbed146104225780630185a2321461047e57806305be6229146104ac5780630b8e056214610512575b600080fd5b6104646004803603602081101561043857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061232d565b604051808215151515815260200191505060405180910390f35b6104aa6004803603602081101561049457600080fd5b8101908080359060200190929190505050612386565b005b6104f8600480360360408110156104c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061243f565b604051808215151515815260200191505060405180910390f35b61057e6004803603606081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612482565b604051808215151515815260200191505060405180910390f35b610650600480360360a08110156105ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561060c57600080fd5b82018360208201111561061e57600080fd5b8035906020019184600183028401116401000000008311171561064057600080fd5b909192939192939050505061252c565b005b61070b6004803603602081101561066857600080fd5b810190808035906020019064010000000081111561068557600080fd5b82018360208201111561069757600080fd5b803590602001918460018302840111640100000000831117156106b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061285e565b005b6107156129e9565b005b6107636004803603604081101561072d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b0a565b604051808215151515815260200191505060405180910390f35b6108df600480360360e081101561079357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156107f157600080fd5b82018360208201111561080357600080fd5b8035906020019184600183028401116401000000008311171561082557600080fd5b90919293919293908035906020019064010000000081111561084657600080fd5b82018360208201111561085857600080fd5b8035906020019184600183028401116401000000008311171561087a57600080fd5b90919293919293908035906020019064010000000081111561089b57600080fd5b8201836020820111156108ad57600080fd5b803590602001918460018302840111640100000000831117156108cf57600080fd5b9091929391929390505050612b4d565b005b6108e9612f08565b604051808215151515815260200191505060405180910390f35b6109456004803603602081101561091957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f1b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109c96004803603602081101561099d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f87565b604051808215151515815260200191505060405180910390f35b610a25600480360360208110156109f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fe0565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610a69578082015181840152602081019050610a4e565b50505050905090810190601f168015610a965780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b83811015610ad2578082015181840152602081019050610ab7565b5050505090500194505050505060405180910390f35b610af061333b565b005b610b3460048036036020811015610b0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613445565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bd960048036036080811015610b8c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061349e565b005b610c4760048036036060811015610bf157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613650565b604051808215151515815260200191505060405180910390f35b610ca360048036036020811015610c7757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137a1565b604051808215151515815260200191505060405180910390f35b610cff60048036036020811015610cd357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613839565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d49613892565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610dc060048036036040811015610d8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138b9565b005b610dca613b0e565b6040518082815260200191505060405180910390f35b610e2c60048036036040811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610eb060048036036020811015610e8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bcf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ef0578082015181840152602081019050610ed5565b50505050905090810190601f168015610f1d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f6d60048036036020811015610f4157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cb3565b604051808215151515815260200191505060405180910390f35b610fc960048036036020811015610f9d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d0c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61104d6004803603602081101561102157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d65565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6110d1600480360360208110156110a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613dbe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61111b613e17565b005b6111696004803603604081101561113357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613f50565b005b6111e26004803603602081101561118157600080fd5b810190808035906020019064010000000081111561119e57600080fd5b8201836020820111156111b057600080fd5b803590602001918460018302840111640100000000831117156111d257600080fd5b909192939192939050505061453f565b005b611230600480360360408110156111fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614690565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611270578082015181840152602081019050611255565b50505050905090810190601f16801561129d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6112b3614756565b005b611318600480360360808110156112cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050614877565b005b61132261499a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113a66004803603602081101561137a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506149c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611434600480360360408110156113fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614a19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6114ed6004803603602081101561148c57600080fd5b81019080803590602001906401000000008111156114a957600080fd5b8201836020820111156114bb57600080fd5b803590602001918460208302840111640100000000831117156114dd57600080fd5b9091929391929390505050614a4a565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611534578082015181840152602081019050611519565b50505050905001838103825284818151815260200191508051906020019080838360005b83811015611573578082015181840152602081019050611558565b50505050905090810190601f1680156115a05780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6115fc600480360360408110156115c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614d49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611646614fc6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611690614fef565b604051808215151515815260200191505060405180910390f35b6116f6600480360360408110156116c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061504d565b005b611805600480360360c081101561170e57600080fd5b810190808035906020019064010000000081111561172b57600080fd5b82018360208201111561173d57600080fd5b8035906020019184600183028401116401000000008311171561175f57600080fd5b90919293919293908035906020019064010000000081111561178057600080fd5b82018360208201111561179257600080fd5b803590602001918460018302840111640100000000831117156117b457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506152ec565b005b6118736004803603606081101561181d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506153b3565b604051808215151515815260200191505060405180910390f35b6118fa600480360360a08110156118a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050615626565b005b61193e6004803603602081101561191257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506157a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6119e36004803603608081101561199657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506158c7565b005b6119ed615c2e565b604051808215151515815260200191505060405180910390f35b611a4960048036036020811015611a1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050615d67565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b611ade60048036036040811015611aa857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050615dfd565b005b611ae86161a5565b005b611b2c60048036036020811015611b0057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506162c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b6c578082015181840152602081019050611b51565b50505050905090810190601f168015611b995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b611be960048036036020811015611bbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506163aa565b005b611c2d60048036036020811015611c0157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061654e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611c6d578082015181840152602081019050611c52565b50505050905090810190601f168015611c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b611d1f60048036036020811015611cbe57600080fd5b8101908080359060200190640100000000811115611cdb57600080fd5b820183602082011115611ced57600080fd5b80359060200191846001830284011164010000000083111715611d0f57600080fd5b9091929391929390505050616632565b005b611d6360048036036020811015611d3757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506167aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611e32600480360360c0811015611dbb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506167dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611f0b60048036036040811015611e8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115611ec757600080fd5b820183602082011115611ed957600080fd5b80359060200191846001830284011164010000000083111715611efb57600080fd5b9091929391929390505050616950565b604051808215151515815260200191505060405180910390f35b611f8860048036036080811015611f3b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050616994565b005b611f92616c5b565b005b611fd660048036036020811015611faa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050616dfb565b604051808215151515815260200191505060405180910390f35b6120a96004803603602081101561200657600080fd5b810190808035906020019064010000000081111561202357600080fd5b82018360208201111561203557600080fd5b8035906020019184600183028401116401000000008311171561205757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050616e54565b005b612117600480360360608110156120c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050616fe2565b604051808215151515815260200191505060405180910390f35b6121736004803603602081101561214757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050617016565b005b6121a16004803603602081101561218b57600080fd5b81019080803590602001909291905050506170d1565b005b6121cf600480360360208110156121b957600080fd5b810190808035906020019092919050505061725c565b005b6121d96176a4565b6040518082815260200191505060405180910390f35b6122316004803603602081101561220557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506176c0565b005b61225f6004803603602081101561224957600080fd5b8101908080359060200190929190505050617746565b604051808215151515815260200191505060405180910390f35b6122c56004803603604081101561228f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050617838565b005b612313600480360360408110156122dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050617989565b604051808215151515815260200191505060405180910390f35b600061237f8260405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120612b0a565b9050919050565b60006123923383614a19565b905061239d82617746565b6123af576123aa826170d1565b6123b9565b6123b8826179ba565b5b3373ffffffffffffffffffffffffffffffffffffffff167fccc97b55d227538f487c521e1218ba74768b73d088310238027c2ae3b43e9c918284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25050565b60008273ffffffffffffffffffffffffffffffffffffffff166124628484613b14565b73ffffffffffffffffffffffffffffffffffffffff161415905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509392505050565b60018060008282540192505081905550600060015490506125968760405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120888888617cd0565b6125e68760405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120613f50565b6125ee617e49565b73ffffffffffffffffffffffffffffffffffffffff16634e06fd8a338986866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156126d457600080fd5b505af11580156126e8573d6000803e3d6000fd5b505050506040513d60208110156126fe57600080fd5b8101908080519060200190929190505050612764576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180618e366021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f16e382723fb40543364faf68863212ba253a099607bf6d3a5b47e50a8bf9494388604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114612855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b50505050505050565b6021815110156128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6461746120656e6372797074696f6e206b6579206c656e677468203c3d20333281525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160060190805190602001906129319291906188df565b503373ffffffffffffffffffffffffffffffffffffffff167f43fdefe0a824cb0e3bbaf9c4bc97669187996136fe9282382baf10787f0d808d836040518080602001828103825283818151815260200191508051906020019080838360005b838110156129ab578082015181840152602081019050612990565b50505050905090810190601f1680156129d85780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b6000612a3b3360405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120614d49565b9050612a8d8160405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120617838565b3373ffffffffffffffffffffffffffffffffffffffff167fa197481f404d8a8082368ad7445380f01e75f27dea6b7aef234a4ce071127fae82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60008273ffffffffffffffffffffffffffffffffffffffff16612b2d8484614d49565b73ffffffffffffffffffffffffffffffffffffffff161415905092915050565b6001806000828254019250508190555060006001549050612bb78b60405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f720000000000000000008152506017019050604051602081830303815290604052805190602001208c8c8c617cd0565b612c078b60405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120613f50565b612c0f617e49565b73ffffffffffffffffffffffffffffffffffffffff1663713ea0f3338d8a8a8a8a8a8a6040518963ffffffff1660e01b8152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200184810384528a8a82818152602001925080828437600081840152601f19601f8201169050808301925050508481038352888882818152602001925080828437600081840152601f19601f8201169050808301925050508481038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509b505050505050505050505050602060405180830381600087803b158015612d5d57600080fd5b505af1158015612d71573d6000803e3d6000fd5b505050506040513d6020811015612d8757600080fd5b8101908080519060200190929190505050612e0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4661696c656420746f207570646174652076616c696461746f72206b6579730081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f16e382723fb40543364faf68863212ba253a099607bf6d3a5b47e50a8bf949438c604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114612efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050505050505050565b600260009054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b606080612fec83612f87565b61305e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600080905060008090505b8281101561314257613133600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061310557fe5b9060005260206000200180546001816001161561010002031660029004905083617f4490919063ffffffff16565b915080806001019150506130b0565b506060816040519080825280601f01601f1916602001820160405280156131785781602001600182028038833980820191505090505b50905060008090506060846040519080825280602002602001820160405280156131b15781602001602082028038833980820191505090505b50905060008090505b8581101561332a576000600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061320e57fe5b9060005260206000200190508080546001816001161561010002031660029004905083838151811061323c57fe5b60200260200101818152505060008090505b83838151811061325a57fe5b602002602001015181101561331b57818181546001816001161561010002031660029004811061328657fe5b8154600116156132a55790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000028686815181106132d757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508480600101955050808060010191505061324e565b505080806001019150506131ba565b508281965096505050505050915091565b60004690506040518080618d4b60529139605201905060405180910390206040518060400160405280601381526020017f43656c6f20436f726520436f6e747261637473000000000000000000000000008152508051906020012060405180807f312e300000000000000000000000000000000000000000000000000000000000815250600301905060405180910390208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012060078190555050565b60006134978260405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120614d49565b9050919050565b60018060008282540192505081905550600060015490506135088560405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120868686617cd0565b6135588560405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120613f50565b3373ffffffffffffffffffffffffffffffffffffffff167faab5f8a189373aaa290f42ae65ea5d7971b732366ca5bf66556e76263944af2886604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114613649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050565b600061365d8484846153b3565b806137985750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff16801561379757508373ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600061388b8260405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120614d49565b9050919050565b60008060008060018060046000839350829250819150809050935093509350935090919293565b6138c233612f87565b613934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b61393d82617fcc565b801561394f575061394e3383618026565b5b6139a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180618def6022913960400191505060405180910390fd5b604051806040016040528060011515815260200160001515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908315150217905550905050803373ffffffffffffffffffffffffffffffffffffffff167f7a162218a1b7bec7fb15b4bb95220fbf423fa3a49718133f5c50361ff1c8537684604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050565b60075481565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613bc45780613bc6565b835b91505092915050565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613ca75780601f10613c7c57610100808354040283529160200191613ca7565b820191906000526020600020905b815481529060010190602001808311613c8a57829003601f168201915b50505050509050919050565b6000613d058260405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120612b0a565b9050919050565b6000613d5e8260405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120614d49565b9050919050565b6000613db78260405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120618153565b9050919050565b6000613e108260405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120618153565b9050919050565b613e1f614fef565b613e91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b613f5933612f87565b613fcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b613fd482617fcc565b614029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180618ca16022913960400191505060405180910390fd5b6140333383618026565b6140a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6f742061207369676e657220666f722074686973206163636f756e7400000081525060200191505060405180910390fd5b6140b0338383613650565b614105576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180618dc0602f913960400191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061415182617746565b156143a65760405160200180807f63656c6f2e6f72672f636f72652f766f746500000000000000000000000000008152506012019050604051602081830303815290604052805190602001208214156141ef57828160010160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061431f565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e0000000000000081525060190190506040516020818303038152906040528051906020012082141561428857828160010160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061431e565b60405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f7200000000000000000081525060170190506040516020818303038152906040528051906020012082141561431d57828160010160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b3373ffffffffffffffffffffffffffffffffffffffff167fc5cd67202a8095484f559b338b2b6fee0dd81af9f70c4814c6517fcf9a09564c8484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a26144b8565b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f2613ed414d18d8152e86c896c04ccce344b75a2f06141f04d39ad069a38725238484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25b3373ffffffffffffffffffffffffffffffffffffffff167f8a00ae3e0722558391733230bfc96d425df2dd7b44f7ce506580785adcf171a28484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b61454833612f87565b6145ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050828282600701919061461092919061895f565b503373ffffffffffffffffffffffffffffffffffffffff167f0b5629fec5b6b5a1c2cfe0de7495111627a8cf297dced72e0669527425d3f01b848460405180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405180910390a2505050565b600860205281600052604060002081815481106146a957fe5b90600052602060002001600091509150508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561474e5780601f106147235761010080835404028352916020019161474e565b820191906000526020600020905b81548152906001019060200180831161473157829003601f168201915b505050505081565b60006147a83360405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120614d49565b90506147fa8160405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120617838565b3373ffffffffffffffffffffffffffffffffffffffff167f14670729407debb6ed03d885f8ba57155de89ce39bf17127ae4900ec7c2ad10382604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6148ca8460405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120858585617cd0565b61491a8460405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120613f50565b3373ffffffffffffffffffffffffffffffffffffffff167f9dfbc5a621c3e2d0d83beee687a17dfc796bbce2118793e5e254409bb265ca0b85604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000614a128260405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120618153565b9050919050565b6000614a2482617746565b614a3757614a328383613b14565b614a42565b614a418383614d49565b5b905092915050565b6060806000809050606085859050604051908082528060200260200182016040528015614a865781602001602082028038833980820191505090505b50905060008090505b86869050811015614b745760036000888884818110614aaa57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701805460018160011615610100020316600290049050828281518110614b2557fe5b602002602001018181525050614b57828281518110614b4057fe5b602002602001015184617f4490919063ffffffff16565b9250614b6d600182617f4490919063ffffffff16565b9050614a8f565b506060826040519080825280601f01601f191660200182016040528015614baa5781602001600182028038833980820191505090505b509050600080905060008090505b88889050811015614d375760008090505b848281518110614bd557fe5b6020026020010151811015614d1b57600360008b8b85818110614bf457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070181815460018160011615610100020316600290048110614c6a57fe5b815460011615614c895790600052602060002090602091828204019190065b9054901a7f010000000000000000000000000000000000000000000000000000000000000002848481518110614cbb57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350614cfe600184617f4490919063ffffffff16565b9250614d14600182617f4490919063ffffffff16565b9050614bc9565b50614d30600182617f4490919063ffffffff16565b9050614bb8565b50828295509550505050509250929050565b6000614d5482617746565b614dc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f526f6c65206973206e6f742061206c6567616379207369676e6572000000000081525060200191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120841415614e88578160010160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050614f80565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120841415614f05578160010160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050614f7f565b60405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120841415614f7e578160010160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b5b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614614fba5780614fbc565b845b9250505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166150316182db565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b61505633612f87565b6150c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561514e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180618cc36021913960400191505060405180910390fd5b6151566189df565b61515f826182e3565b905061517b61516c618301565b8261832790919063ffffffff16565b6151d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180618d9d6023913960400191505060405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200182815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001016000820151816000015550509050508273ffffffffffffffffffffffffffffffffffffffff167f3bff8b126c8f283f709ae37dc0d3fc03cae85ca4772cfb25b601f4b0b49ca6df836040518082815260200191505060405180910390a2505050565b6152f533612f87565b61530357615301615c2e565b505b61535088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050616e54565b61539d86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061285e565b6153a9848484846158c7565b5050505050505050565b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f720000000000000000008152506017019050604051602081830303815290604052805190602001208314801561549e57508373ffffffffffffffffffffffffffffffffffffffff168160010160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156154ad57600191505061561f565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e000000000000008152506019019050604051602081830303815290604052805190602001208314801561555457508373ffffffffffffffffffffffffffffffffffffffff168160010160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561556357600191505061561f565b60405160200180807f63656c6f2e6f72672f636f72652f766f746500000000000000000000000000008152506012019050604051602081830303815290604052805190602001208314801561560a57508373ffffffffffffffffffffffffffffffffffffffff168160010160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561561957600191505061561f565b60009150505b9392505050565b615633858585858561833d565b604051806040016040528060011515815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908315150217905550905050833373ffffffffffffffffffffffffffffffffffffffff167f6cc56bd06daacce5b10fdf5ad1dc781941e14d7a71d29d33e7001e2956d14e0787604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050505050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461584257809150506158c2565b61584b83612f87565b6158bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b829150505b919050565b6158d033612f87565b615942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806159a85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b615b27576000730598d2e7173b4f7434a0de51601c1eeb3d6d79fc6396ef41a1338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460ff1660ff16815260200183815260200182815260200194505050505060206040518083038186803b158015615a4757600080fd5b505af4158015615a5b573d6000803e3d6000fd5b505050506040513d6020811015615a7157600080fd5b810190808051906020019092919050505090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614615b25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b505b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050848160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167ff81d74398fd47e35c36b714019df15f200f623dde569b5b531d6a0b4da5c5f2686604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050505050565b6000615c3933617fcc565b8015615c4a5750615c4933618401565b5b615cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636f756e742065786973747300000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160000160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f805996f252884581e2f74cf3d2b03564d5ec26ccc90850ae12653dc1b72d1fa260405160405180910390a2600191505090565b6000806000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16615df382600101604051806020016040529081600082015481525050618498565b9250925050915091565b615e0682612f87565b615e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b615e8133617fcc565b8015615e935750615e928233618026565b5b615ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180618def6022913960400191505060405180910390fd5b60011515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151514615fff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5369676e657220617574686f72697a6174696f6e206e6f74207374617274656481525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908315150217905550808273ffffffffffffffffffffffffffffffffffffffff167f9eeca140dda0bdb74fc9acfda0f1c0324e188a732bd48e078a96b16d97eb54e533604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050565b60006161f73360405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120614d49565b90506162498160405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120617838565b3373ffffffffffffffffffffffffffffffffffffffff167fa54764c62865ff0cd3f271fb1d4635662bff10f0878694f1654fb7fbdecb830d82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561639e5780601f106163735761010080835404028352916020019161639e565b820191906000526020600020905b81548152906001019060200180831161638157829003601f168201915b50505050509050919050565b6163b2614fef565b616424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156164c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f7420726567697374657220746865206e756c6c206164647265737381525060200191505060405180910390fd5b80600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f27fe5f0c1c3b1ed427cc63d0f05759ffdecf9aec9e18d31ef366fc8a6cb5dc3b60405160405180910390a250565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156166265780601f106165fb57610100808354040283529160200191616626565b820191906000526020600020905b81548152906001019060200180831161660957829003601f168201915b50505050509050919050565b61663b33612f87565b6166ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082829091806001815401808255809150509060018203906000526020600020016000909192939091929390919290919250919061672a9291906189f2565b50503373ffffffffffffffffffffffffffffffffffffffff167f15dfb3066a1bbbdaf9a7f62c47db990114058ae1739fd70a90361ea715bbf3c8838360405180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405180910390a25050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040518080618c65603c9139603c0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050604051602081830303815290604052805190602001209050730598d2e7173b4f7434a0de51601c1eeb3d6d79fc6334d1a233600754838888886040518663ffffffff1660e01b8152600401808681526020018581526020018460ff1660ff1681526020018381526020018281526020019550505050505060206040518083038186803b15801561690857600080fd5b505af415801561691c573d6000803e3d6000fd5b505050506040513d602081101561693257600080fd5b81019080805190602001909291905050509150509695505050505050565b600061698b84848460405160200180838380828437808301925050509250505060405160208183030381529060405280519060200120617989565b90509392505050565b60018060008282540192505081905550600060015490506169fe8560405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120868686617cd0565b616a4e8560405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120613f50565b616a56617e49565b73ffffffffffffffffffffffffffffffffffffffff1663facd743b336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015616ad257600080fd5b505afa158015616ae6573d6000803e3d6000fd5b505050506040513d6020811015616afc57600080fd5b810190808051906020019092919050505015616b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180618d2a6021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f16e382723fb40543364faf68863212ba253a099607bf6d3a5b47e50a8bf9494386604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114616c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050565b616c6433612f87565b616cd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001616d0860006182e3565b815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101600082015181600001555050905050600073ffffffffffffffffffffffffffffffffffffffff167f3bff8b126c8f283f709ae37dc0d3fc03cae85ca4772cfb25b601f4b0b49ca6df60006040518082815260200191505060405180910390a2565b6000616e4d8260405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120612b0a565b9050919050565b616e5d33612f87565b616ecf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816005019080519060200190616f2a929190618a72565b503373ffffffffffffffffffffffffffffffffffffffff167fa6e2c5a23bb917ba0a584c4b250257ddad698685829b66a8813c004b39934fe4836040518080602001828103825283818151815260200191508051906020019080838360005b83811015616fa4578082015181840152602081019050616f89565b50505050905090810190601f168015616fd15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b6000616fed82617746565b61700157616ffc848484612482565b61700d565b61700c8484846153b3565b5b90509392505050565b600260009054906101000a900460ff1615617099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f636f6e747261637420616c726561647920696e697469616c697a65640000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055506170bd336184a6565b6170c6816163aa565b6170ce61333b565b50565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fe553a3065d5a77d4ec2a0e0c31d49be4bf4d9f4c45883b2d67f61ba9c1b89c5d8284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25050565b61726533612f87565b6172d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811061738e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c69642073746f7261676520726f6f7420696e64657800000000000081525060200191505060405180910390fd5b60006001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500390506060600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061742457fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156174c25780601f10617497576101008083540402835291602001916174c2565b820191906000526020600020905b8154815290600101906020018083116174a557829003601f168201915b50505050509050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061751357fe5b90600052602060002001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061756757fe5b906000526020600020019080546001816001161561010002031660029004617590929190618af2565b50600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036175e39190618b79565b503373ffffffffffffffffffffffffffffffffffffffff167fae0f2fa495a3eb65d46fe97b0baea8b6fd7edb243175c70f2455e6e83bc6fbaf82856040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015617664578082015181840152602081019050617649565b50505050905090810190601f1680156176915780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050565b6040518080618c65603c9139603c019050604051809103902081565b6176c8614fef565b61773a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b617743816184a6565b50565b600060405160200180807f63656c6f2e6f72672f636f72652f766f746500000000000000000000000000008152506012019050604051602081830303815290604052805190602001208214806177e1575060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f7200000000000000000081525060170190506040516020818303038152906040528051906020012082145b80617831575060405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e0000000000000081525060190190506040516020818303038152906040528051906020012082145b9050919050565b617843338383616fe2565b156178525761785181612386565b5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff02191690555050803373ffffffffffffffffffffffffffffffffffffffff167fde9ce22cf1f8631ae2b668300f0493971114f40edd305173bd099ce7100fbe0b84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050565b600061799482617746565b6179a7576179a2838361243f565b6179b2565b6179b18383612b0a565b5b905092915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120831415617ac3578160010160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260010160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550617c49565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120831415617b87578160010160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260010160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550617c48565b60405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120831415617c47578160010160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260010160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b3373ffffffffffffffffffffffffffffffffffffffff167fdd0b0d959c29750e7bfabbb7543a56957699d07edc512d2523ffe7502901ac198285604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b617cdc858484846185ea565b604051806040016040528060011515815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908315150217905550905050833373ffffffffffffffffffffffffffffffffffffffff167f6cc56bd06daacce5b10fdf5ad1dc781941e14d7a71d29d33e7001e2956d14e0787604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050505050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dcf0aaed60405160200180807f56616c696461746f727300000000000000000000000000000000000000000000815250600a019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015617f0457600080fd5b505afa158015617f18573d6000803e3d6000fd5b505050506040513d6020811015617f2e57600080fd5b8101908080519060200190929190505050905090565b600080828401905083811015617fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16159050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061814b57508273ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614618255576181f7818585613650565b61824c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180618e116025913960400191505060405180910390fd5b809150506182d5565b61825e84612f87565b6182d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b839150505b92915050565b600033905090565b6182eb6189df565b6040518060200160405280838152509050919050565b6183096189df565b604051806020016040528069d3c21bcecceda1000000815250905090565b6000816000015183600001511115905092915050565b600061834d3387878787876167dd565b90508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146183f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6183f986618773565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b600081600001519050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561852c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180618c3f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000730598d2e7173b4f7434a0de51601c1eeb3d6d79fc6396ef41a1338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460ff1660ff16815260200183815260200182815260200194505050505060206040518083038186803b15801561868557600080fd5b505af4158015618699573d6000803e3d6000fd5b505050506040513d60208110156186af57600080fd5b810190808051906020019092919050505090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614618763576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b61876c85618773565b5050505050565b61877c33612f87565b6187ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6187f781617fcc565b801561880957506188083382618026565b5b61885e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526046815260200180618ce46046913960600191505060405180910390fd5b33600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061892057805160ff191683800117855561894e565b8280016001018555821561894e579182015b8281111561894d578251825591602001919060010190618932565b5b50905061895b9190618ba5565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106189a057803560ff19168380011785556189ce565b828001600101855582156189ce579182015b828111156189cd5782358255916020019190600101906189b2565b5b5090506189db9190618ba5565b5090565b6040518060200160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10618a3357803560ff1916838001178555618a61565b82800160010185558215618a61579182015b82811115618a60578235825591602001919060010190618a45565b5b509050618a6e9190618ba5565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10618ab357805160ff1916838001178555618ae1565b82800160010185558215618ae1579182015b82811115618ae0578251825591602001919060010190618ac5565b5b509050618aee9190618ba5565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10618b2b5780548555618b68565b82800160010185558215618b6857600052602060002091601f016020900482015b82811115618b67578254825591600101919060010190618b4c565b5b509050618b759190618ba5565b5090565b815481835581811115618ba057818360005260206000209182019101618b9f9190618bca565b5b505050565b618bc791905b80821115618bc3576000816000905550600101618bab565b5090565b90565b618bf391905b80821115618bef5760008181618be69190618bf6565b50600101618bd0565b5090565b90565b50805460018160011615610100020316600290046000825580601f10618c1c5750618c3b565b601f016020900490600052602060002090810190618c3a9190618ba5565b5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373417574686f72697a655369676e65722861646472657373206163636f756e742c61646472657373207369676e65722c6279746573333220726f6c652943616e6e6f7420617574686f72697a65206163636f756e74206173207369676e657242656e65666963696172792063616e6e6f7420626520616464726573732030783043616e6e6f742072652d617574686f72697a652061646472657373206f72206c6f636b656420676f6c64206163636f756e7420666f7220616e6f74686572206163636f756e7443616e6e6f7420617574686f72697a652076616c696461746f72207369676e6572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294672616374696f6e206d757374206e6f742062652067726561746572207468616e20314d75737420617574686f72697a65207369676e6572206265666f72652073657474696e672061732064656661756c7443616e6e6f742072652d617574686f72697a652061646472657373207369676e65726e6f742061637469766520617574686f72697a6564207369676e657220666f7220726f6c654661696c656420746f20757064617465204543445341207075626c6963206b6579a265627a7a72315820c67e15e315120b63f27d176167a738e22c47a16197fa6eb433e05cd98440352864736f6c634300050d00320000000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061041d5760003560e01c80637b2434cb1161022b578063ae32fa0e11610130578063c48830d9116100b8578063f0c5658411610087578063f0c56584146121d1578063f2fde38b146121ef578063f333d83614612233578063fbe3c37314612279578063ff836d93146122c75761041d565b8063c48830d9146120ab578063c4d66de814612131578063e7a16e6b14612175578063e8d787cb146121a35761041d565b8063ba40e4f6116100ff578063ba40e4f614611e74578063baf7ef0f14611f25578063bce2b8d614611f8a578063c2e0ee2014611f94578063c47f002714611ff05761041d565b8063ae32fa0e14611beb578063b062c84314611ca8578063b5a664c214611d21578063b6c6662514611da55761041d565b806392f90fbf116101b35780639f024f4b116101825780639f024f4b14611a075780639f68297614611a92578063a5ec94f914611ae0578063a8ae1a3d14611aea578063a91ee0dc14611ba75761041d565b806392f90fbf1461188d57806393c5c487146118fc5780639cafb2a1146119805780639dca362f146119e55761041d565b80638da5cb5b116101fa5780638da5cb5b1461163e5780638f32d59b146116885780638f9ae6dc146116aa57806390b12b47146116f857806391cd074b146118075761041d565b80637b2434cb1461136457806387affe68146113e85780638adaf96f146114765780638bceca58146115b05761041d565b806349045e161161033157806364439b43116102b9578063747daec511610288578063747daec51461116b57806376082c1f146111e4578063760fbbb2146112ab57806376afa04c146112b55780637b1039991461131a5761041d565b806364439b431461100b5780636642d5941461108f578063715018a614611113578063727d079c1461111d5761041d565b80635b07fdd8116103005780635b07fdd814610dc25780635b6d900414610de05780635fd4b08a14610e6e578063614ed49314610f2b57806361bab1ae14610f875761041d565b806349045e1614610c615780634ce38b5f14610cbd57806354255be014610d4157806358b81ea814610d745761041d565b80631465b923116103b4578063289a131811610383578063289a1318146109e35780633184b3c514610ae857806341ddd88014610af25780634282ee6d14610b76578063485a46d114610bdb5761041d565b80631465b9231461077d578063158ef93e146108e15780631fd9afa51461090357806325ca4c9c146109875761041d565b80630fa750d2116103f05780630fa750d2146105985780630fe7abab1461065257806310c504b51461070d5780631441ece7146107175761041d565b80630127dbed146104225780630185a2321461047e57806305be6229146104ac5780630b8e056214610512575b600080fd5b6104646004803603602081101561043857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061232d565b604051808215151515815260200191505060405180910390f35b6104aa6004803603602081101561049457600080fd5b8101908080359060200190929190505050612386565b005b6104f8600480360360408110156104c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061243f565b604051808215151515815260200191505060405180910390f35b61057e6004803603606081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612482565b604051808215151515815260200191505060405180910390f35b610650600480360360a08110156105ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561060c57600080fd5b82018360208201111561061e57600080fd5b8035906020019184600183028401116401000000008311171561064057600080fd5b909192939192939050505061252c565b005b61070b6004803603602081101561066857600080fd5b810190808035906020019064010000000081111561068557600080fd5b82018360208201111561069757600080fd5b803590602001918460018302840111640100000000831117156106b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061285e565b005b6107156129e9565b005b6107636004803603604081101561072d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b0a565b604051808215151515815260200191505060405180910390f35b6108df600480360360e081101561079357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156107f157600080fd5b82018360208201111561080357600080fd5b8035906020019184600183028401116401000000008311171561082557600080fd5b90919293919293908035906020019064010000000081111561084657600080fd5b82018360208201111561085857600080fd5b8035906020019184600183028401116401000000008311171561087a57600080fd5b90919293919293908035906020019064010000000081111561089b57600080fd5b8201836020820111156108ad57600080fd5b803590602001918460018302840111640100000000831117156108cf57600080fd5b9091929391929390505050612b4d565b005b6108e9612f08565b604051808215151515815260200191505060405180910390f35b6109456004803603602081101561091957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f1b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109c96004803603602081101561099d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f87565b604051808215151515815260200191505060405180910390f35b610a25600480360360208110156109f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fe0565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610a69578082015181840152602081019050610a4e565b50505050905090810190601f168015610a965780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b83811015610ad2578082015181840152602081019050610ab7565b5050505090500194505050505060405180910390f35b610af061333b565b005b610b3460048036036020811015610b0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613445565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bd960048036036080811015610b8c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061349e565b005b610c4760048036036060811015610bf157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613650565b604051808215151515815260200191505060405180910390f35b610ca360048036036020811015610c7757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137a1565b604051808215151515815260200191505060405180910390f35b610cff60048036036020811015610cd357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613839565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d49613892565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610dc060048036036040811015610d8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138b9565b005b610dca613b0e565b6040518082815260200191505060405180910390f35b610e2c60048036036040811015610df657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610eb060048036036020811015610e8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bcf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ef0578082015181840152602081019050610ed5565b50505050905090810190601f168015610f1d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f6d60048036036020811015610f4157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cb3565b604051808215151515815260200191505060405180910390f35b610fc960048036036020811015610f9d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d0c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61104d6004803603602081101561102157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d65565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6110d1600480360360208110156110a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613dbe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61111b613e17565b005b6111696004803603604081101561113357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613f50565b005b6111e26004803603602081101561118157600080fd5b810190808035906020019064010000000081111561119e57600080fd5b8201836020820111156111b057600080fd5b803590602001918460018302840111640100000000831117156111d257600080fd5b909192939192939050505061453f565b005b611230600480360360408110156111fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614690565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611270578082015181840152602081019050611255565b50505050905090810190601f16801561129d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6112b3614756565b005b611318600480360360808110156112cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050614877565b005b61132261499a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113a66004803603602081101561137a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506149c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611434600480360360408110156113fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614a19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6114ed6004803603602081101561148c57600080fd5b81019080803590602001906401000000008111156114a957600080fd5b8201836020820111156114bb57600080fd5b803590602001918460208302840111640100000000831117156114dd57600080fd5b9091929391929390505050614a4a565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611534578082015181840152602081019050611519565b50505050905001838103825284818151815260200191508051906020019080838360005b83811015611573578082015181840152602081019050611558565b50505050905090810190601f1680156115a05780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6115fc600480360360408110156115c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614d49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611646614fc6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611690614fef565b604051808215151515815260200191505060405180910390f35b6116f6600480360360408110156116c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061504d565b005b611805600480360360c081101561170e57600080fd5b810190808035906020019064010000000081111561172b57600080fd5b82018360208201111561173d57600080fd5b8035906020019184600183028401116401000000008311171561175f57600080fd5b90919293919293908035906020019064010000000081111561178057600080fd5b82018360208201111561179257600080fd5b803590602001918460018302840111640100000000831117156117b457600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506152ec565b005b6118736004803603606081101561181d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506153b3565b604051808215151515815260200191505060405180910390f35b6118fa600480360360a08110156118a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050615626565b005b61193e6004803603602081101561191257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506157a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6119e36004803603608081101561199657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506158c7565b005b6119ed615c2e565b604051808215151515815260200191505060405180910390f35b611a4960048036036020811015611a1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050615d67565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b611ade60048036036040811015611aa857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050615dfd565b005b611ae86161a5565b005b611b2c60048036036020811015611b0057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506162c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b6c578082015181840152602081019050611b51565b50505050905090810190601f168015611b995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b611be960048036036020811015611bbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506163aa565b005b611c2d60048036036020811015611c0157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061654e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611c6d578082015181840152602081019050611c52565b50505050905090810190601f168015611c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b611d1f60048036036020811015611cbe57600080fd5b8101908080359060200190640100000000811115611cdb57600080fd5b820183602082011115611ced57600080fd5b80359060200191846001830284011164010000000083111715611d0f57600080fd5b9091929391929390505050616632565b005b611d6360048036036020811015611d3757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506167aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611e32600480360360c0811015611dbb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506167dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611f0b60048036036040811015611e8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115611ec757600080fd5b820183602082011115611ed957600080fd5b80359060200191846001830284011164010000000083111715611efb57600080fd5b9091929391929390505050616950565b604051808215151515815260200191505060405180910390f35b611f8860048036036080811015611f3b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050616994565b005b611f92616c5b565b005b611fd660048036036020811015611faa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050616dfb565b604051808215151515815260200191505060405180910390f35b6120a96004803603602081101561200657600080fd5b810190808035906020019064010000000081111561202357600080fd5b82018360208201111561203557600080fd5b8035906020019184600183028401116401000000008311171561205757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050616e54565b005b612117600480360360608110156120c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050616fe2565b604051808215151515815260200191505060405180910390f35b6121736004803603602081101561214757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050617016565b005b6121a16004803603602081101561218b57600080fd5b81019080803590602001909291905050506170d1565b005b6121cf600480360360208110156121b957600080fd5b810190808035906020019092919050505061725c565b005b6121d96176a4565b6040518082815260200191505060405180910390f35b6122316004803603602081101561220557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506176c0565b005b61225f6004803603602081101561224957600080fd5b8101908080359060200190929190505050617746565b604051808215151515815260200191505060405180910390f35b6122c56004803603604081101561228f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050617838565b005b612313600480360360408110156122dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050617989565b604051808215151515815260200191505060405180910390f35b600061237f8260405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120612b0a565b9050919050565b60006123923383614a19565b905061239d82617746565b6123af576123aa826170d1565b6123b9565b6123b8826179ba565b5b3373ffffffffffffffffffffffffffffffffffffffff167fccc97b55d227538f487c521e1218ba74768b73d088310238027c2ae3b43e9c918284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25050565b60008273ffffffffffffffffffffffffffffffffffffffff166124628484613b14565b73ffffffffffffffffffffffffffffffffffffffff161415905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509392505050565b60018060008282540192505081905550600060015490506125968760405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120888888617cd0565b6125e68760405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120613f50565b6125ee617e49565b73ffffffffffffffffffffffffffffffffffffffff16634e06fd8a338986866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156126d457600080fd5b505af11580156126e8573d6000803e3d6000fd5b505050506040513d60208110156126fe57600080fd5b8101908080519060200190929190505050612764576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180618e366021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f16e382723fb40543364faf68863212ba253a099607bf6d3a5b47e50a8bf9494388604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114612855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b50505050505050565b6021815110156128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6461746120656e6372797074696f6e206b6579206c656e677468203c3d20333281525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160060190805190602001906129319291906188df565b503373ffffffffffffffffffffffffffffffffffffffff167f43fdefe0a824cb0e3bbaf9c4bc97669187996136fe9282382baf10787f0d808d836040518080602001828103825283818151815260200191508051906020019080838360005b838110156129ab578082015181840152602081019050612990565b50505050905090810190601f1680156129d85780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b6000612a3b3360405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120614d49565b9050612a8d8160405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120617838565b3373ffffffffffffffffffffffffffffffffffffffff167fa197481f404d8a8082368ad7445380f01e75f27dea6b7aef234a4ce071127fae82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60008273ffffffffffffffffffffffffffffffffffffffff16612b2d8484614d49565b73ffffffffffffffffffffffffffffffffffffffff161415905092915050565b6001806000828254019250508190555060006001549050612bb78b60405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f720000000000000000008152506017019050604051602081830303815290604052805190602001208c8c8c617cd0565b612c078b60405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120613f50565b612c0f617e49565b73ffffffffffffffffffffffffffffffffffffffff1663713ea0f3338d8a8a8a8a8a8a6040518963ffffffff1660e01b8152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200184810384528a8a82818152602001925080828437600081840152601f19601f8201169050808301925050508481038352888882818152602001925080828437600081840152601f19601f8201169050808301925050508481038252868682818152602001925080828437600081840152601f19601f8201169050808301925050509b505050505050505050505050602060405180830381600087803b158015612d5d57600080fd5b505af1158015612d71573d6000803e3d6000fd5b505050506040513d6020811015612d8757600080fd5b8101908080519060200190929190505050612e0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4661696c656420746f207570646174652076616c696461746f72206b6579730081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f16e382723fb40543364faf68863212ba253a099607bf6d3a5b47e50a8bf949438c604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114612efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050505050505050565b600260009054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b606080612fec83612f87565b61305e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600080905060008090505b8281101561314257613133600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061310557fe5b9060005260206000200180546001816001161561010002031660029004905083617f4490919063ffffffff16565b915080806001019150506130b0565b506060816040519080825280601f01601f1916602001820160405280156131785781602001600182028038833980820191505090505b50905060008090506060846040519080825280602002602001820160405280156131b15781602001602082028038833980820191505090505b50905060008090505b8581101561332a576000600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061320e57fe5b9060005260206000200190508080546001816001161561010002031660029004905083838151811061323c57fe5b60200260200101818152505060008090505b83838151811061325a57fe5b602002602001015181101561331b57818181546001816001161561010002031660029004811061328657fe5b8154600116156132a55790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000028686815181106132d757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508480600101955050808060010191505061324e565b505080806001019150506131ba565b508281965096505050505050915091565b60004690506040518080618d4b60529139605201905060405180910390206040518060400160405280601381526020017f43656c6f20436f726520436f6e747261637473000000000000000000000000008152508051906020012060405180807f312e300000000000000000000000000000000000000000000000000000000000815250600301905060405180910390208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012060078190555050565b60006134978260405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120614d49565b9050919050565b60018060008282540192505081905550600060015490506135088560405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120868686617cd0565b6135588560405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120613f50565b3373ffffffffffffffffffffffffffffffffffffffff167faab5f8a189373aaa290f42ae65ea5d7971b732366ca5bf66556e76263944af2886604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114613649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050565b600061365d8484846153b3565b806137985750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff16801561379757508373ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600061388b8260405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120614d49565b9050919050565b60008060008060018060046000839350829250819150809050935093509350935090919293565b6138c233612f87565b613934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b61393d82617fcc565b801561394f575061394e3383618026565b5b6139a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180618def6022913960400191505060405180910390fd5b604051806040016040528060011515815260200160001515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908315150217905550905050803373ffffffffffffffffffffffffffffffffffffffff167f7a162218a1b7bec7fb15b4bb95220fbf423fa3a49718133f5c50361ff1c8537684604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050565b60075481565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613bc45780613bc6565b835b91505092915050565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613ca75780601f10613c7c57610100808354040283529160200191613ca7565b820191906000526020600020905b815481529060010190602001808311613c8a57829003601f168201915b50505050509050919050565b6000613d058260405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120612b0a565b9050919050565b6000613d5e8260405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120614d49565b9050919050565b6000613db78260405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120618153565b9050919050565b6000613e108260405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120618153565b9050919050565b613e1f614fef565b613e91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b613f5933612f87565b613fcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b613fd482617fcc565b614029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180618ca16022913960400191505060405180910390fd5b6140333383618026565b6140a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6f742061207369676e657220666f722074686973206163636f756e7400000081525060200191505060405180910390fd5b6140b0338383613650565b614105576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180618dc0602f913960400191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061415182617746565b156143a65760405160200180807f63656c6f2e6f72672f636f72652f766f746500000000000000000000000000008152506012019050604051602081830303815290604052805190602001208214156141ef57828160010160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061431f565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e0000000000000081525060190190506040516020818303038152906040528051906020012082141561428857828160010160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061431e565b60405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f7200000000000000000081525060170190506040516020818303038152906040528051906020012082141561431d57828160010160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b3373ffffffffffffffffffffffffffffffffffffffff167fc5cd67202a8095484f559b338b2b6fee0dd81af9f70c4814c6517fcf9a09564c8484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a26144b8565b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f2613ed414d18d8152e86c896c04ccce344b75a2f06141f04d39ad069a38725238484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25b3373ffffffffffffffffffffffffffffffffffffffff167f8a00ae3e0722558391733230bfc96d425df2dd7b44f7ce506580785adcf171a28484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b61454833612f87565b6145ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050828282600701919061461092919061895f565b503373ffffffffffffffffffffffffffffffffffffffff167f0b5629fec5b6b5a1c2cfe0de7495111627a8cf297dced72e0669527425d3f01b848460405180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405180910390a2505050565b600860205281600052604060002081815481106146a957fe5b90600052602060002001600091509150508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561474e5780601f106147235761010080835404028352916020019161474e565b820191906000526020600020905b81548152906001019060200180831161473157829003601f168201915b505050505081565b60006147a83360405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120614d49565b90506147fa8160405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120617838565b3373ffffffffffffffffffffffffffffffffffffffff167f14670729407debb6ed03d885f8ba57155de89ce39bf17127ae4900ec7c2ad10382604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6148ca8460405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120858585617cd0565b61491a8460405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120613f50565b3373ffffffffffffffffffffffffffffffffffffffff167f9dfbc5a621c3e2d0d83beee687a17dfc796bbce2118793e5e254409bb265ca0b85604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000614a128260405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120618153565b9050919050565b6000614a2482617746565b614a3757614a328383613b14565b614a42565b614a418383614d49565b5b905092915050565b6060806000809050606085859050604051908082528060200260200182016040528015614a865781602001602082028038833980820191505090505b50905060008090505b86869050811015614b745760036000888884818110614aaa57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701805460018160011615610100020316600290049050828281518110614b2557fe5b602002602001018181525050614b57828281518110614b4057fe5b602002602001015184617f4490919063ffffffff16565b9250614b6d600182617f4490919063ffffffff16565b9050614a8f565b506060826040519080825280601f01601f191660200182016040528015614baa5781602001600182028038833980820191505090505b509050600080905060008090505b88889050811015614d375760008090505b848281518110614bd557fe5b6020026020010151811015614d1b57600360008b8b85818110614bf457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070181815460018160011615610100020316600290048110614c6a57fe5b815460011615614c895790600052602060002090602091828204019190065b9054901a7f010000000000000000000000000000000000000000000000000000000000000002848481518110614cbb57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350614cfe600184617f4490919063ffffffff16565b9250614d14600182617f4490919063ffffffff16565b9050614bc9565b50614d30600182617f4490919063ffffffff16565b9050614bb8565b50828295509550505050509250929050565b6000614d5482617746565b614dc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f526f6c65206973206e6f742061206c6567616379207369676e6572000000000081525060200191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120841415614e88578160010160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050614f80565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120841415614f05578160010160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050614f7f565b60405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120841415614f7e578160010160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b5b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614614fba5780614fbc565b845b9250505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166150316182db565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b61505633612f87565b6150c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561514e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180618cc36021913960400191505060405180910390fd5b6151566189df565b61515f826182e3565b905061517b61516c618301565b8261832790919063ffffffff16565b6151d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180618d9d6023913960400191505060405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200182815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001016000820151816000015550509050508273ffffffffffffffffffffffffffffffffffffffff167f3bff8b126c8f283f709ae37dc0d3fc03cae85ca4772cfb25b601f4b0b49ca6df836040518082815260200191505060405180910390a2505050565b6152f533612f87565b61530357615301615c2e565b505b61535088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050616e54565b61539d86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061285e565b6153a9848484846158c7565b5050505050505050565b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f720000000000000000008152506017019050604051602081830303815290604052805190602001208314801561549e57508373ffffffffffffffffffffffffffffffffffffffff168160010160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156154ad57600191505061561f565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e000000000000008152506019019050604051602081830303815290604052805190602001208314801561555457508373ffffffffffffffffffffffffffffffffffffffff168160010160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561556357600191505061561f565b60405160200180807f63656c6f2e6f72672f636f72652f766f746500000000000000000000000000008152506012019050604051602081830303815290604052805190602001208314801561560a57508373ffffffffffffffffffffffffffffffffffffffff168160010160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561561957600191505061561f565b60009150505b9392505050565b615633858585858561833d565b604051806040016040528060011515815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908315150217905550905050833373ffffffffffffffffffffffffffffffffffffffff167f6cc56bd06daacce5b10fdf5ad1dc781941e14d7a71d29d33e7001e2956d14e0787604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050505050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461584257809150506158c2565b61584b83612f87565b6158bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b829150505b919050565b6158d033612f87565b615942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806159a85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b615b27576000730598d2e7173b4f7434a0de51601c1eeb3d6d79fc6396ef41a1338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460ff1660ff16815260200183815260200182815260200194505050505060206040518083038186803b158015615a4757600080fd5b505af4158015615a5b573d6000803e3d6000fd5b505050506040513d6020811015615a7157600080fd5b810190808051906020019092919050505090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614615b25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b505b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050848160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167ff81d74398fd47e35c36b714019df15f200f623dde569b5b531d6a0b4da5c5f2686604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050505050565b6000615c3933617fcc565b8015615c4a5750615c4933618401565b5b615cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4163636f756e742065786973747300000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160000160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f805996f252884581e2f74cf3d2b03564d5ec26ccc90850ae12653dc1b72d1fa260405160405180910390a2600191505090565b6000806000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16615df382600101604051806020016040529081600082015481525050618498565b9250925050915091565b615e0682612f87565b615e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b615e8133617fcc565b8015615e935750615e928233618026565b5b615ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180618def6022913960400191505060405180910390fd5b60011515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151514615fff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5369676e657220617574686f72697a6174696f6e206e6f74207374617274656481525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908315150217905550808273ffffffffffffffffffffffffffffffffffffffff167f9eeca140dda0bdb74fc9acfda0f1c0324e188a732bd48e078a96b16d97eb54e533604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050565b60006161f73360405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120614d49565b90506162498160405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120617838565b3373ffffffffffffffffffffffffffffffffffffffff167fa54764c62865ff0cd3f271fb1d4635662bff10f0878694f1654fb7fbdecb830d82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561639e5780601f106163735761010080835404028352916020019161639e565b820191906000526020600020905b81548152906001019060200180831161638157829003601f168201915b50505050509050919050565b6163b2614fef565b616424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156164c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f7420726567697374657220746865206e756c6c206164647265737381525060200191505060405180910390fd5b80600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f27fe5f0c1c3b1ed427cc63d0f05759ffdecf9aec9e18d31ef366fc8a6cb5dc3b60405160405180910390a250565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156166265780601f106165fb57610100808354040283529160200191616626565b820191906000526020600020905b81548152906001019060200180831161660957829003601f168201915b50505050509050919050565b61663b33612f87565b6166ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082829091806001815401808255809150509060018203906000526020600020016000909192939091929390919290919250919061672a9291906189f2565b50503373ffffffffffffffffffffffffffffffffffffffff167f15dfb3066a1bbbdaf9a7f62c47db990114058ae1739fd70a90361ea715bbf3c8838360405180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405180910390a25050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040518080618c65603c9139603c0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050604051602081830303815290604052805190602001209050730598d2e7173b4f7434a0de51601c1eeb3d6d79fc6334d1a233600754838888886040518663ffffffff1660e01b8152600401808681526020018581526020018460ff1660ff1681526020018381526020018281526020019550505050505060206040518083038186803b15801561690857600080fd5b505af415801561691c573d6000803e3d6000fd5b505050506040513d602081101561693257600080fd5b81019080805190602001909291905050509150509695505050505050565b600061698b84848460405160200180838380828437808301925050509250505060405160208183030381529060405280519060200120617989565b90509392505050565b60018060008282540192505081905550600060015490506169fe8560405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120868686617cd0565b616a4e8560405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120613f50565b616a56617e49565b73ffffffffffffffffffffffffffffffffffffffff1663facd743b336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015616ad257600080fd5b505afa158015616ae6573d6000803e3d6000fd5b505050506040513d6020811015616afc57600080fd5b810190808051906020019092919050505015616b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180618d2a6021913960400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f16e382723fb40543364faf68863212ba253a099607bf6d3a5b47e50a8bf9494386604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a26001548114616c54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f7265656e7472616e742063616c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b5050505050565b616c6433612f87565b616cd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001616d0860006182e3565b815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101600082015181600001555050905050600073ffffffffffffffffffffffffffffffffffffffff167f3bff8b126c8f283f709ae37dc0d3fc03cae85ca4772cfb25b601f4b0b49ca6df60006040518082815260200191505060405180910390a2565b6000616e4d8260405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120612b0a565b9050919050565b616e5d33612f87565b616ecf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816005019080519060200190616f2a929190618a72565b503373ffffffffffffffffffffffffffffffffffffffff167fa6e2c5a23bb917ba0a584c4b250257ddad698685829b66a8813c004b39934fe4836040518080602001828103825283818151815260200191508051906020019080838360005b83811015616fa4578082015181840152602081019050616f89565b50505050905090810190601f168015616fd15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b6000616fed82617746565b61700157616ffc848484612482565b61700d565b61700c8484846153b3565b5b90509392505050565b600260009054906101000a900460ff1615617099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f636f6e747261637420616c726561647920696e697469616c697a65640000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055506170bd336184a6565b6170c6816163aa565b6170ce61333b565b50565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fe553a3065d5a77d4ec2a0e0c31d49be4bf4d9f4c45883b2d67f61ba9c1b89c5d8284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a25050565b61726533612f87565b6172d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811061738e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c69642073746f7261676520726f6f7420696e64657800000000000081525060200191505060405180910390fd5b60006001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500390506060600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061742457fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156174c25780601f10617497576101008083540402835291602001916174c2565b820191906000526020600020905b8154815290600101906020018083116174a557829003601f168201915b50505050509050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061751357fe5b90600052602060002001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061756757fe5b906000526020600020019080546001816001161561010002031660029004617590929190618af2565b50600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036175e39190618b79565b503373ffffffffffffffffffffffffffffffffffffffff167fae0f2fa495a3eb65d46fe97b0baea8b6fd7edb243175c70f2455e6e83bc6fbaf82856040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015617664578082015181840152602081019050617649565b50505050905090810190601f1680156176915780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050565b6040518080618c65603c9139603c019050604051809103902081565b6176c8614fef565b61773a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b617743816184a6565b50565b600060405160200180807f63656c6f2e6f72672f636f72652f766f746500000000000000000000000000008152506012019050604051602081830303815290604052805190602001208214806177e1575060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f7200000000000000000081525060170190506040516020818303038152906040528051906020012082145b80617831575060405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e0000000000000081525060190190506040516020818303038152906040528051906020012082145b9050919050565b617843338383616fe2565b156178525761785181612386565b5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549060ff02191690555050803373ffffffffffffffffffffffffffffffffffffffff167fde9ce22cf1f8631ae2b668300f0493971114f40edd305173bd099ce7100fbe0b84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050565b600061799482617746565b6179a7576179a2838361243f565b6179b2565b6179b18383612b0a565b5b905092915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060405160200180807f63656c6f2e6f72672f636f72652f76616c696461746f72000000000000000000815250601701905060405160208183030381529060405280519060200120831415617ac3578160010160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260010160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550617c49565b60405160200180807f63656c6f2e6f72672f636f72652f6174746573746174696f6e00000000000000815250601901905060405160208183030381529060405280519060200120831415617b87578160010160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260010160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550617c48565b60405160200180807f63656c6f2e6f72672f636f72652f766f74650000000000000000000000000000815250601201905060405160208183030381529060405280519060200120831415617c47578160010160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260010160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b3373ffffffffffffffffffffffffffffffffffffffff167fdd0b0d959c29750e7bfabbb7543a56957699d07edc512d2523ffe7502901ac198285604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b617cdc858484846185ea565b604051806040016040528060011515815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908315150217905550905050833373ffffffffffffffffffffffffffffffffffffffff167f6cc56bd06daacce5b10fdf5ad1dc781941e14d7a71d29d33e7001e2956d14e0787604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a35050505050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dcf0aaed60405160200180807f56616c696461746f727300000000000000000000000000000000000000000000815250600a019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015617f0457600080fd5b505afa158015617f18573d6000803e3d6000fd5b505050506040513d6020811015617f2e57600080fd5b8101908080519060200190929190505050905090565b600080828401905083811015617fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16159050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061814b57508273ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614618255576181f7818585613650565b61824c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180618e116025913960400191505060405180910390fd5b809150506182d5565b61825e84612f87565b6182d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6e6f7420616e206163636f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b839150505b92915050565b600033905090565b6182eb6189df565b6040518060200160405280838152509050919050565b6183096189df565b604051806020016040528069d3c21bcecceda1000000815250905090565b6000816000015183600001511115905092915050565b600061834d3387878787876167dd565b90508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146183f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6183f986618773565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b600081600001519050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561852c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180618c3f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000730598d2e7173b4f7434a0de51601c1eeb3d6d79fc6396ef41a1338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460ff1660ff16815260200183815260200182815260200194505050505060206040518083038186803b15801561868557600080fd5b505af4158015618699573d6000803e3d6000fd5b505050506040513d60208110156186af57600080fd5b810190808051906020019092919050505090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614618763576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b61876c85618773565b5050505050565b61877c33612f87565b6187ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f556e6b6e6f776e206163636f756e74000000000000000000000000000000000081525060200191505060405180910390fd5b6187f781617fcc565b801561880957506188083382618026565b5b61885e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526046815260200180618ce46046913960600191505060405180910390fd5b33600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061892057805160ff191683800117855561894e565b8280016001018555821561894e579182015b8281111561894d578251825591602001919060010190618932565b5b50905061895b9190618ba5565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106189a057803560ff19168380011785556189ce565b828001600101855582156189ce579182015b828111156189cd5782358255916020019190600101906189b2565b5b5090506189db9190618ba5565b5090565b6040518060200160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10618a3357803560ff1916838001178555618a61565b82800160010185558215618a61579182015b82811115618a60578235825591602001919060010190618a45565b5b509050618a6e9190618ba5565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10618ab357805160ff1916838001178555618ae1565b82800160010185558215618ae1579182015b82811115618ae0578251825591602001919060010190618ac5565b5b509050618aee9190618ba5565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10618b2b5780548555618b68565b82800160010185558215618b6857600052602060002091601f016020900482015b82811115618b67578254825591600101919060010190618b4c565b5b509050618b759190618ba5565b5090565b815481835581811115618ba057818360005260206000209182019101618b9f9190618bca565b5b505050565b618bc791905b80821115618bc3576000816000905550600101618bab565b5090565b90565b618bf391905b80821115618bef5760008181618be69190618bf6565b50600101618bd0565b5090565b90565b50805460018160011615610100020316600290046000825580601f10618c1c5750618c3b565b601f016020900490600052602060002090810190618c3a9190618ba5565b5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373417574686f72697a655369676e65722861646472657373206163636f756e742c61646472657373207369676e65722c6279746573333220726f6c652943616e6e6f7420617574686f72697a65206163636f756e74206173207369676e657242656e65666963696172792063616e6e6f7420626520616464726573732030783043616e6e6f742072652d617574686f72697a652061646472657373206f72206c6f636b656420676f6c64206163636f756e7420666f7220616e6f74686572206163636f756e7443616e6e6f7420617574686f72697a652076616c696461746f72207369676e6572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294672616374696f6e206d757374206e6f742062652067726561746572207468616e20314d75737420617574686f72697a65207369676e6572206265666f72652073657474696e672061732064656661756c7443616e6e6f742072652d617574686f72697a652061646472657373207369676e65726e6f742061637469766520617574686f72697a6564207369676e657220666f7220726f6c654661696c656420746f20757064617465204543445341207075626c6963206b6579a265627a7a72315820c67e15e315120b63f27d176167a738e22c47a16197fa6eb433e05cd98440352864736f6c634300050d0032