6080604052600060045560006005556019600a553480156200002057600080fd5b50604051620035aa380380620035aa833981810160405260608110156200004657600080fd5b81019080805160405193929190846401000000008211156200006757600080fd5b838201915060208201858111156200007e57600080fd5b82518660018202830111640100000000821117156200009c57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000d2578082015181840152602081019050620000b5565b50505050905090810190601f168015620001005780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012457600080fd5b838201915060208201858111156200013b57600080fd5b82518660018202830111640100000000821117156200015957600080fd5b8083526020830192505050908051906020019080838360005b838110156200018f57808201518184015260208101905062000172565b50505050905090810190601f168015620001bd5780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050620001f1620001e5620002e960201b60201c565b620002f160201b60201c565b6200021162000205620002e960201b60201c565b6200035260201b60201c565b82600b90805190602001906200022992919062000577565b5081600c90805190602001906200024292919062000577565b5080600d60006101000a81548160ff021916908360ff1602179055506001600e600062000274620002e960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff02191690831515021790555050505062000626565b600033905090565b6200030c816000620003b360201b62002b371790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6200036d816001620003b360201b62002b371790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620003c582826200049760201b60201c565b1562000439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000520576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620035886022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ba57805160ff1916838001178555620005eb565b82800160010185558215620005eb579182015b82811115620005ea578251825591602001919060010190620005cd565b5b509050620005fa9190620005fe565b5090565b6200062391905b808211156200061f57600081600090555060010162000605565b5090565b90565b612f5280620006366000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a457c2d7116100a2578063bd3733fe11610071578063bd3733fe14610947578063d5aed6bf14610991578063db647b76146109d5578063dd62ed3e146109df576101da565b8063a457c2d7146107c3578063a9059cbb14610829578063aa271e1a1461088f578063bb5f747b146108eb576101da565b806386c75e74116100de57806386c75e74146106d057806395d89b41146106f2578063983b2d561461077557806398650275146107b9576101da565b806370a08231146105ea5780637362d9c8146106425780637877d65414610686576101da565b8063350a96281161017c5780634e0eae831161014b5780634e0eae83146104f857806356ff83c81461052657806357880e3c14610570578063697173491461058e576101da565b8063350a9628146103de578063395093511461042257806340c10f19146104885780634c5a628c146104ee576101da565b806318160ddd116101b857806318160ddd146102e657806323b872dd14610304578063295194571461038a578063313ce567146103ba576101da565b806306fdde03146101df578063095ea7b31461026257806313114a9d146102c8575b600080fd5b6101e7610a57565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af9565b604051808215151515815260200191505060405180910390f35b6102d0610b17565b6040518082815260200191505060405180910390f35b6102ee610b21565b6040518082815260200191505060405180910390f35b6103706004803603606081101561031a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b46565b604051808215151515815260200191505060405180910390f35b6103b8600480360360208110156103a057600080fd5b81019080803515159060200190929190505050610c1f565b005b6103c2610cfe565b604051808260ff1660ff16815260200191505060405180910390f35b610420600480360360208110156103f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d15565b005b61046e6004803603604081101561043857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dbe565b604051808215151515815260200191505060405180910390f35b6104d46004803603604081101561049e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e71565b604051808215151515815260200191505060405180910390f35b6104f6610eec565b005b6105246004803603602081101561050e57600080fd5b8101908080359060200190929190505050610efe565b005b61052e610fd2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610578610ff8565b6040518082815260200191505060405180910390f35b6105d0600480360360208110156105a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ffe565b604051808215151515815260200191505060405180910390f35b61062c6004803603602081101561060057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061101e565b6040518082815260200191505060405180910390f35b6106846004803603602081101561065857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611120565b005b61068e611191565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d86111b7565b604051808215151515815260200191505060405180910390f35b6106fa6111ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073a57808201518184015260208101905061071f565b50505050905090810190601f1680156107675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107b76004803603602081101561078b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b005b6107c16112dd565b005b61080f600480360360408110156107d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b6108756004803603604081101561083f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113bc565b604051808215151515815260200191505060405180910390f35b6108d1600480360360208110156108a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113da565b604051808215151515815260200191505060405180910390f35b61092d6004803603602081101561090157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f7565b604051808215151515815260200191505060405180910390f35b61094f611414565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109d3600480360360208110156109a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061143a565b005b6109dd6114e3565b005b610a41600480360360408110156109f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117eb565b6040518082815260200191505060405180910390f35b6060600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aef5780601f10610ac457610100808354040283529160200191610aef565b820191906000526020600020905b815481529060010190602001808311610ad257829003601f168201915b5050505050905090565b6000610b0d610b06611872565b848461187a565b6001905092915050565b6000600654905090565b6000610b41610b30600061101e565b600454611a7190919063ffffffff16565b905090565b6000610b53848484611abb565b610c1484610b5f611872565b610c0f85604051806060016040528060288152602001612da760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bc5611872565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f909092919063ffffffff16565b61187a565b600190509392505050565b610c2f610c2a611872565b6113f7565b610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180612e706040913960400191505060405180910390fd5b6000151581151514610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180612cac6039913960400191505060405180910390fd5b80600d60016101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b610d25610d20611872565b6113f7565b610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180612e706040913960400191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610e67610dcb611872565b84610e628560036000610ddc611872565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205090919063ffffffff16565b61187a565b6001905092915050565b6000610e83610e7e611872565b6113da565b610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612d356030913960400191505060405180910390fd5b610ee283836120d8565b6001905092915050565b610efc610ef7611872565b61236d565b565b610f0e610f09611872565b6113f7565b610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180612e706040913960400191505060405180910390fd5b6000811480610f735750600a8110155b610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612e026023913960400191505060405180910390fd5b80600a8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000600554600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156110ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c366024913960400191505060405180910390fd5b60006110c46123c7565b905061111881600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b915050919050565b61113061112b611872565b6113f7565b611185576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180612e706040913960400191505060405180910390fd5b61118e8161242f565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60019054906101000a900460ff1681565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112625780601f1061123757610100808354040283529160200191611262565b820191906000526020600020905b81548152906001019060200180831161124557829003601f168201915b5050505050905090565b61127c611277611872565b6113da565b6112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612d356030913960400191505060405180910390fd5b6112da81612489565b50565b6112ed6112e8611872565b6124e3565b565b60006113b26112fc611872565b846113ad85604051806060016040528060258152602001612ef96025913960036000611326611872565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f909092919063ffffffff16565b61187a565b6001905092915050565b60006113d06113c9611872565b8484611abb565b6001905092915050565b60006113f082600061253d90919063ffffffff16565b9050919050565b600061140d82600161253d90919063ffffffff16565b9050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61144a611445611872565b6113f7565b61149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180612e706040913960400191505060405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114ee3061101e565b11611544576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612e476029913960400191505060405180910390fd5b6000611556611551611872565b61101e565b116115ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612dcf6033913960400191505060405180910390fd5b60006115b73061101e565b905060006115e461023f6115d66101db8561261b90919063ffffffff16565b6123e590919063ffffffff16565b9050600061161061023f61160260488661261b90919063ffffffff16565b6123e590919063ffffffff16565b9050600061163c61023f61162e601c8761261b90919063ffffffff16565b6123e590919063ffffffff16565b905061166b30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856126a1565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116d557600080fd5b505af11580156116e9573d6000803e3d6000fd5b5050505061171a30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846126a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561178457600080fd5b505af1158015611798573d6000803e3d6000fd5b505050506117ae306117a8611872565b836126a1565b7f8765d2bb982ed6ee74d2b03c76c9c129aa4a4e3e6b17bd7cf7830088e9d49054846040518082815260200191505060405180910390a150505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611900576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ed56024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611986576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612c8a6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000611ab383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f90565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612eb06025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612c136023913960400191505060405180910390fd5b60008111611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612c5a6030913960400191505060405180910390fd5b80611c2a8461101e565b1015611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ce56026913960400191505060405180910390fd5b60011515600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480611cf3575060001515600d60019054906101000a900460ff161515145b611d65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f45524332303a20546f6b656e2069732063757272656e746c792070617573656481525060200191505060405180910390fd5b6000600a5414158015611dc8575060001515600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15611f7f576000611de4600a54836123e590919063ffffffff16565b90506000611e116103e8611e036101f48561261b90919063ffffffff16565b6123e590919063ffffffff16565b90506000611e3d6103e8611e2f604b8661261b90919063ffffffff16565b6123e590919063ffffffff16565b90506000611e696103e8611e5b60fa8761261b90919063ffffffff16565b6123e590919063ffffffff16565b90506000611e956103e8611e8760af8861261b90919063ffffffff16565b6123e590919063ffffffff16565b905084611ecf82611ec185611eb3898961205090919063ffffffff16565b61205090919063ffffffff16565b61205090919063ffffffff16565b14611f25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612d0b602a913960400191505060405180910390fd5b611f428830611f3d868861205090919063ffffffff16565b6126a1565b611f4e886000846126a1565b611f6b8888611f66888a611a7190919063ffffffff16565b6126a1565b611f75888261285a565b5050505050611f8b565b611f8a8383836126a1565b5b505050565b600083831115829061203d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612002578082015181840152602081019050611fe7565b50505050905090810190601f16801561202f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156120ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561217b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b600081116121f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f45524332303a206d696e7420616d6f756e74206973207a65726f00000000000081525060200191505060405180910390fd5b6122068160045461205090919063ffffffff16565b6004819055506004546000198161221957fe5b0660001903600581905550600554600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6123818160016129b490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b60006123e06004546005546123e590919063ffffffff16565b905090565b600061242783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a71565b905092915050565b612443816001612b3790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b61249d816000612b3790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6124f78160006129b490919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612e256022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008083141561262e576000905061269b565b600082840290508284828161263f57fe5b0414612696576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d866021913960400191505060405180910390fd5b809150505b92915050565b60006126ab6123c7565b905060006126c2828461261b90919063ffffffff16565b905061271681600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ab81600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b60006128646123c7565b9050600061287b828461261b90919063ffffffff16565b90506128cf81600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292781600554611a7190919063ffffffff16565b6005819055506129428360065461205090919063ffffffff16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6129be828261253d565b612a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d656021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008083118290612b1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ae2578082015181840152602081019050612ac7565b50505050905090810190601f168015612b0f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612b2957fe5b049050809150509392505050565b612b41828261253d565b15612bb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c20776176657345524332303a205472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a20617070726f766520746f20746865207a65726f206164647265737341717561546f6b656e3a3a736574546f6b656e5061757365643a20796f752063616e206f6e6c7920756e70617573652074686520746f6b656e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332305472616e736665723a3a7461785472616e736665723a204d6174682069732062726f6b656e4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365596f75206d75737420626520616e206163636f756e7420686f6c64657220746f2063616c6c20746869732066756e6374696f6e41717561546f6b656e3a3a73657454617844697669736f723a20746f6f20736d616c6c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573735472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f57686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820a08bad6f88656a3f3d481c27cc61f9c3b75e5c9f8fd17beaadcb295812766cad64736f6c63430005110032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a4171756120546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044151554100000000000000000000000000000000000000000000000000000000