60806040526040518060400160405280600881526020017f6c6f6e6720626f690000000000000000000000000000000000000000000000008152505f90816100479190610af0565b506040518060400160405280600481526020017f6c6f6e67000000000000000000000000000000000000000000000000000000008152506001908161008c9190610af0565b506b033b2e3c9fd0803cac653600600255601260035f6101000a81548160ff021916908360ff1602179055503480156100c3575f80fd5b50604051613c16380380613c1683398181016040528101906100e59190610c1d565b3360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550604051806102e00160405280739c1f33d75bd3fe015ac8acada2967b9980f6b13a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173743f4ebca5a329aa88a7c1fe3c59be21d11ae03b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017330d7dccd7e3e6b59bd10657cbb5f3823fe74bb4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173afdaf103f74ce5fe09df09786cfaa335ea77109873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f7119cc4959116e2d87a4341fd9f6990c77ee2e173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173fd176b3a40859fe81505240836d7e3cca355e0c173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732ab238e2d4e02b88cc37f0774eb842ea36289fbb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e64d9f16dd84a73f43e0414e2283a4e12a3fcc1273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001736fd98ae62deef508e0ae0deb4582acb541d79b5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e760383d4899cc4580982e96a33641cf7a0b3ccf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b0e556938ea82d40bfe171996dabacb5c3cb909473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e5c0ac089ec39a4e20c75d7cbd8aac7f0e54bd1073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f77ff04779d5ed9320d0bc513dcb08034801783f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737ab0d1d36de7e2bb743c142d00094c54638fc65973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173475570ceca2c153cd9ffe1489fe2c6c8c08b6faa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731208b7873f8abec8d4f36f3194dccd506d79873173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173acc1bc38a2e33c15690d2e47c0a393d18e82d35973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173aa1de26bc517ee42338c6bf778a02ff7d505d33b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ffee743be0064c262af6589c609bc465da916e6173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017380e19427978eecd4e5f8933f7575ef0988479c5173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b459cc960ea6e21e6c309b2de2898e45be0c43db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738e1539b3001e01efaa83909623018643de2b9d2873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017313e8c6ae5fab540b292d1097e68702979156c88973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600a90601761080d929190610814565b5050610c48565b828054828255905f5260205f2090810192821561088a579160200282015b82811115610889578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190610832565b5b509050610897919061089b565b5090565b5b808211156108b2575f815f90555060010161089c565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061093157607f821691505b602082108103610944576109436108ed565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261096b565b6109b0868361096b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6109f46109ef6109ea846109c8565b6109d1565b6109c8565b9050919050565b5f819050919050565b610a0d836109da565b610a21610a19826109fb565b848454610977565b825550505050565b5f90565b610a35610a29565b610a40818484610a04565b505050565b5b81811015610a6357610a585f82610a2d565b600181019050610a46565b5050565b601f821115610aa857610a798161094a565b610a828461095c565b81016020851015610a91578190505b610aa5610a9d8561095c565b830182610a45565b50505b505050565b5f82821c905092915050565b5f610ac85f1984600802610aad565b1980831691505092915050565b5f610ae08383610ab9565b9150826002028217905092915050565b610af9826108b6565b67ffffffffffffffff811115610b1257610b116108c0565b5b610b1c825461091a565b610b27828285610a67565b5f60209050601f831160018114610b58575f8415610b46578287015190505b610b508582610ad5565b865550610bb7565b601f198416610b668661094a565b5f5b82811015610b8d57848901518255600182019150602085019450602081019050610b68565b86831015610baa5784890151610ba6601f891682610ab9565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bec82610bc3565b9050919050565b610bfc81610be2565b8114610c06575f80fd5b50565b5f81519050610c1781610bf3565b92915050565b5f60208284031215610c3257610c31610bbf565b5b5f610c3f84828501610c09565b91505092915050565b612fc180610c555f395ff3fe60806040526004361061011e575f3560e01c80638ba4cc3c1161009f578063dd62ed3e11610063578063dd62ed3e146103aa578063e4849b32146103e6578063e7a919f91461040e578063f2fde38b14610436578063fb10464d1461045e5761011e565b80638ba4cc3c146102e85780638da5cb5b1461031057806395d89b411461033a578063a6f2ae3a14610364578063a9059cbb1461036e5761011e565b8063313ce567116100e6578063313ce56714610218578063470624021461024257806370a082311461026c578063715018a6146102a85780637cdc65f2146102be5761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806323b872dd146101b25780632b14ca56146101ee575b5f80fd5b34801561012d575f80fd5b5061013661049a565b60405161014391906124c9565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d919061257a565b610525565b60405161017f91906125d2565b60405180910390f35b348015610193575f80fd5b5061019c610612565b6040516101a991906125fa565b60405180910390f35b3480156101bd575f80fd5b506101d860048036038101906101d39190612613565b610618565b6040516101e591906125d2565b60405180910390f35b3480156101f9575f80fd5b50610202610dcd565b60405161020f91906125fa565b60405180910390f35b348015610223575f80fd5b5061022c610dd3565b604051610239919061267e565b60405180910390f35b34801561024d575f80fd5b50610256610de5565b60405161026391906125fa565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d9190612697565b610deb565b60405161029f91906125fa565b60405180910390f35b3480156102b3575f80fd5b506102bc610e00565b005b3480156102c9575f80fd5b506102d2610f4c565b6040516102df91906126d1565b60405180910390f35b3480156102f3575f80fd5b5061030e6004803603810190610309919061257a565b610f71565b005b34801561031b575f80fd5b506103246111db565b60405161033191906126d1565b60405180910390f35b348015610345575f80fd5b5061034e611200565b60405161035b91906124c9565b60405180910390f35b61036c61128c565b005b348015610379575f80fd5b50610394600480360381019061038f919061257a565b6116d9565b6040516103a191906125d2565b60405180910390f35b3480156103b5575f80fd5b506103d060048036038101906103cb91906126ea565b6118eb565b6040516103dd91906125fa565b60405180910390f35b3480156103f1575f80fd5b5061040c60048036038101906104079190612728565b61190b565b005b348015610419575f80fd5b50610434600480360381019061042f9190612753565b611ebc565b005b348015610441575f80fd5b5061045c60048036038101906104579190612697565b612075565b005b348015610469575f80fd5b50610484600480360381019061047f9190612728565b6121f9565b60405161049191906126d1565b60405180910390f35b5f80546104a6906127be565b80601f01602080910402602001604051908101604052809291908181526020018280546104d2906127be565b801561051d5780601f106104f45761010080835404028352916020019161051d565b820191905f5260205f20905b81548152906001019060200180831161050057829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060091906125fa565b60405180910390a36001905092915050565b60025481565b5f8160045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069090612838565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074b906128a0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b990612908565b60405180910390fd5b5f808390505f600954118015610825575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015610837575061083586612234565b155b1561087c576108646064610856600954876122d690919063ffffffff16565b61234d90919063ffffffff16565b915061087982856123a490919063ffffffff16565b90505b6108cc8460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a490919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061095d8160045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109fb91906125fa565b60405180910390a35f821115610b0257610a5b8260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610af991906125fa565b60405180910390a35b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610bd657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414155b15610dc057610c668460055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a490919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051610db791906125fa565b60405180910390a35b6001925050509392505050565b60095481565b60035f9054906101000a900460ff1681565b60085481565b6004602052805f5260405f205f915090505481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612970565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611018575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e906129d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90612a40565b60405180910390fd5b5f8111611107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fe90612aa8565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111539190612af3565b925050819055508060025f82825461116b9190612af3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111cf91906125fa565b60405180910390a35050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001805461120d906127be565b80601f0160208091040260200160405190810160405280929190818152602001828054611239906127be565b80156112845780601f1061125b57610100808354040283529160200191611284565b820191905f5260205f20905b81548152906001019060200180831161126757829003601f168201915b505050505081565b5f34116112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612b70565b60405180910390fd5b5f3490505f600854111561157c575f61130560646112f7600854856122d690919063ffffffff16565b61234d90919063ffffffff16565b90505f61131b82846123a490919063ffffffff16565b905061138e8160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161146e91906125fa565b60405180910390a35f821115611575576114ce8260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156c91906125fa565b60405180910390a35b50506116d6565b6115ed8160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116cd91906125fa565b60405180910390a35b50565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611723575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361175a575f80fd5b6117aa8260045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a490919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061183b8260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118d991906125fa565b60405180910390a36001905092915050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290612bd8565b60405180910390fd5b5f6009541180156119e9575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156119fb57506119f933612234565b155b15611d31575f611a296064611a1b600954856122d690919063ffffffff16565b61234d90919063ffffffff16565b90505f611a3f82846123a490919063ffffffff16565b9050611a918360045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a490919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b438160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c2391906125fa565b60405180910390a35f821115611d2a57611c838260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2191906125fa565b60405180910390a35b5050611eb9565b611d818160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a490919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e128160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fc90919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eb091906125fa565b60405180910390a35b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f63575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f99906129d8565b60405180910390fd5b6064821115611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd90612c40565b60405180910390fd5b606481111561202a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202190612ca8565b60405180910390fd5b81600881905550806009819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051612069929190612cc6565b60405180910390a15050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb90612970565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361213b575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a8181548110612208575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f90505b600a805490508110156122cc57600a818154811061225b5761225a612ced565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122bf5760019150506122d1565b808060010191505061223a565b505f90505b919050565b5f8083036122e6575f9050612347565b5f82846122f39190612d1a565b90508284826123029190612d88565b14612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233990612e02565b60405180910390fd5b809150505b92915050565b5f808211612390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238790612e6a565b60405180910390fd5b818361239c9190612d88565b905092915050565b5f828211156123e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123df90612ed2565b60405180910390fd5b81836123f49190612ef0565b905092915050565b5f80828461240a9190612af3565b90508381101561244f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244690612f6d565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61249b82612459565b6124a58185612463565b93506124b5818560208601612473565b6124be81612481565b840191505092915050565b5f6020820190508181035f8301526124e18184612491565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612516826124ed565b9050919050565b6125268161250c565b8114612530575f80fd5b50565b5f813590506125418161251d565b92915050565b5f819050919050565b61255981612547565b8114612563575f80fd5b50565b5f8135905061257481612550565b92915050565b5f80604083850312156125905761258f6124e9565b5b5f61259d85828601612533565b92505060206125ae85828601612566565b9150509250929050565b5f8115159050919050565b6125cc816125b8565b82525050565b5f6020820190506125e55f8301846125c3565b92915050565b6125f481612547565b82525050565b5f60208201905061260d5f8301846125eb565b92915050565b5f805f6060848603121561262a576126296124e9565b5b5f61263786828701612533565b935050602061264886828701612533565b925050604061265986828701612566565b9150509250925092565b5f60ff82169050919050565b61267881612663565b82525050565b5f6020820190506126915f83018461266f565b92915050565b5f602082840312156126ac576126ab6124e9565b5b5f6126b984828501612533565b91505092915050565b6126cb8161250c565b82525050565b5f6020820190506126e45f8301846126c2565b92915050565b5f8060408385031215612700576126ff6124e9565b5b5f61270d85828601612533565b925050602061271e85828601612533565b9150509250929050565b5f6020828403121561273d5761273c6124e9565b5b5f61274a84828501612566565b91505092915050565b5f8060408385031215612769576127686124e9565b5b5f61277685828601612566565b925050602061278785828601612566565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806127d557607f821691505b6020821081036127e8576127e7612791565b5b50919050565b7f316c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612822600583612463565b915061282d826127ee565b602082019050919050565b5f6020820190508181035f83015261284f81612816565b9050919050565b7f326c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f61288a600583612463565b915061289582612856565b602082019050919050565b5f6020820190508181035f8301526128b78161287e565b9050919050565b7f336c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f6128f2600583612463565b91506128fd826128be565b602082019050919050565b5f6020820190508181035f83015261291f816128e6565b9050919050565b7f346c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f61295a600583612463565b915061296582612926565b602082019050919050565b5f6020820190508181035f8301526129878161294e565b9050919050565b7f31316c6f6e6700000000000000000000000000000000000000000000000000005f82015250565b5f6129c2600683612463565b91506129cd8261298e565b602082019050919050565b5f6020820190508181035f8301526129ef816129b6565b9050919050565b7f356c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612a2a600583612463565b9150612a35826129f6565b602082019050919050565b5f6020820190508181035f830152612a5781612a1e565b9050919050565b7f366c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612a92600583612463565b9150612a9d82612a5e565b602082019050919050565b5f6020820190508181035f830152612abf81612a86565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612afd82612547565b9150612b0883612547565b9250828201905080821115612b2057612b1f612ac6565b5b92915050565b7f396c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612b5a600583612463565b9150612b6582612b26565b602082019050919050565b5f6020820190508181035f830152612b8781612b4e565b9050919050565b7f306c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612bc2600583612463565b9150612bcd82612b8e565b602082019050919050565b5f6020820190508181035f830152612bef81612bb6565b9050919050565b7f376c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612c2a600583612463565b9150612c3582612bf6565b602082019050919050565b5f6020820190508181035f830152612c5781612c1e565b9050919050565b7f386c6f6e670000000000000000000000000000000000000000000000000000005f82015250565b5f612c92600583612463565b9150612c9d82612c5e565b602082019050919050565b5f6020820190508181035f830152612cbf81612c86565b9050919050565b5f604082019050612cd95f8301856125eb565b612ce660208301846125eb565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612d2482612547565b9150612d2f83612547565b9250828202612d3d81612547565b91508282048414831517612d5457612d53612ac6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d9282612547565b9150612d9d83612547565b925082612dad57612dac612d5b565b5b828204905092915050565b7f6c6f6e676c6f6e676c6f6e6700000000000000000000000000000000000000005f82015250565b5f612dec600c83612463565b9150612df782612db8565b602082019050919050565b5f6020820190508181035f830152612e1981612de0565b9050919050565b7f6c6f6e676c6f6e676c6f6e676c6f6e67000000000000000000000000000000005f82015250565b5f612e54601083612463565b9150612e5f82612e20565b602082019050919050565b5f6020820190508181035f830152612e8181612e48565b9050919050565b7f6c6f6e67000000000000000000000000000000000000000000000000000000005f82015250565b5f612ebc600483612463565b9150612ec782612e88565b602082019050919050565b5f6020820190508181035f830152612ee981612eb0565b9050919050565b5f612efa82612547565b9150612f0583612547565b9250828203905081811115612f1d57612f1c612ac6565b5b92915050565b7f6c6f6e676c6f6e670000000000000000000000000000000000000000000000005f82015250565b5f612f57600883612463565b9150612f6282612f23565b602082019050919050565b5f6020820190508181035f830152612f8481612f4b565b905091905056fea2646970667358221220ba2b5e8353b30f1926c161e6f78795ebc704d146d4b8bbb9a525444745f2986d64736f6c634300081900330000000000000000000000008384cfdeaf32f444b34c70ae195ae8a4fb1ea80c
Loading