60806040523480156200001157600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620000e333601260ff16600a620000c69190620002ea565b6377359400620000d7919062000427565b620000ea60201b60201c565b50620004ce565b600081600054620000fc919062000232565b60008190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200014f919062000232565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620001f2919062000215565b60405180910390a36001905092915050565b6200020f8162000488565b82525050565b60006020820190506200022c600083018462000204565b92915050565b60006200023f8262000488565b91506200024c8362000488565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000284576200028362000492565b5b828201905092915050565b6000808291508390505b6001851115620002e157808604811115620002b957620002b862000492565b5b6001851615620002c95780820291505b8081029050620002d985620004c1565b945062000299565b94509492505050565b6000620002f78262000488565b9150620003048362000488565b9250620003337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200033b565b905092915050565b6000826200034d576001905062000420565b816200035d576000905062000420565b81600181146200037657600281146200038157620003b7565b600191505062000420565b60ff84111562000396576200039562000492565b5b8360020a915084821115620003b057620003af62000492565b5b5062000420565b5060208310610133831016604e8410600b8410161715620003f15782820a905083811115620003eb57620003ea62000492565b5b62000420565b6200040084848460016200028f565b925090508184048111156200041a576200041962000492565b5b81810290505b9392505050565b6000620004348262000488565b9150620004418362000488565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200047d576200047c62000492565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6139f980620004de6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638456cb5911610104578063d1c46916116100a2578063e4cc18be11610071578063e4cc18be1461061f578063e58398361461063d578063f2fde38b1461066d578063f7b188a51461069d576101da565b8063d1c469161461055e578063d8fb93371461058e578063dd62ed3e146105bf578063e2ab691d146105ef576101da565b806395d89b41116100de57806395d89b41146104af578063a9059cbb146104cd578063b2520a7c146104fd578063c4f3a8531461052e576101da565b80638456cb59146104435780638d1fdf2f146104615780638da5cb5b14610491576101da565b806342966c681161017c578063715018a61161014b578063715018a6146103a757806379cc6790146103c55780637b352962146103f557806383cfab4214610413576101da565b806342966c68146102f957806351d05001146103295780635c975abb1461035957806370a0823114610377576101da565b806323b872dd116101b857806323b872dd1461024b578063313ce5671461027b57806338b820921461029957806340c10f19146102c9576101da565b806306fdde03146101df578063095ea7b3146101fd57806318160ddd1461022d575b600080fd5b6101e76106bb565b6040516101f49190613043565b60405180910390f35b61021760048036038101906102129190612cb4565b6106f8565b6040516102249190613028565b60405180910390f35b61023561077f565b6040516102429190613265565b60405180910390f35b61026560048036038101906102609190612c65565b610788565b6040516102729190613028565b60405180910390f35b610283610a53565b60405161029091906132a9565b60405180910390f35b6102b360048036038101906102ae9190612cf0565b610a5c565b6040516102c09190613028565b60405180910390f35b6102e360048036038101906102de9190612cb4565b610b81565b6040516102f09190613028565b60405180910390f35b610313600480360381019061030e9190612d3f565b610d86565b6040516103209190613028565b60405180910390f35b610343600480360381019061033e9190612cb4565b610e3b565b6040516103509190613028565b60405180910390f35b610361610f1c565b60405161036e9190613028565b60405180910390f35b610391600480360381019061038c9190612c00565b610f33565b60405161039e9190613265565b60405180910390f35b6103af610f7c565b6040516103bc9190613028565b60405180910390f35b6103df60048036038101906103da9190612cb4565b61101d565b6040516103ec9190613028565b60405180910390f35b6103fd611162565b60405161040a9190613028565b60405180910390f35b61042d60048036038101906104289190612c00565b611179565b60405161043a9190613028565b60405180910390f35b61044b6112af565b6040516104589190613028565b60405180910390f35b61047b60048036038101906104769190612c00565b6113df565b6040516104889190613028565b60405180910390f35b610499611515565b6040516104a6919061300d565b60405180910390f35b6104b761153f565b6040516104c49190613043565b60405180910390f35b6104e760048036038101906104e29190612cb4565b61157c565b6040516104f49190613028565b60405180910390f35b61051760048036038101906105129190612cb4565b6117b3565b604051610525929190613280565b60405180910390f35b61054860048036038101906105439190612c00565b611874565b6040516105559190613028565b60405180910390f35b61057860048036038101906105739190612c00565b6119aa565b6040516105859190613028565b60405180910390f35b6105a860048036038101906105a39190612c00565b611ad0565b6040516105b6929190613280565b60405180910390f35b6105d960048036038101906105d49190612c29565b611b5f565b6040516105e69190613265565b60405180910390f35b61060960048036038101906106049190612cf0565b611be6565b6040516106169190613028565b60405180910390f35b610627611c8c565b6040516106349190613028565b60405180910390f35b61065760048036038101906106529190612c00565b611dbc565b6040516106649190613028565b60405180910390f35b61068760048036038101906106829190612c00565b611e12565b6040516106949190613028565b60405180910390f35b6106a5611f24565b6040516106b29190613028565b60405180910390f35b60606040518060400160405280600d81526020017f5265626f726e20646f6c6c617200000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076090613085565b60405180910390fd5b610774338484612053565b506001905092915050565b60008054905090565b600083600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90613205565b60405180910390fd5b600660009054906101000a900460ff1615610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f90613165565b60405180910390fd5b848380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108b591906132e0565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092d906131e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90613105565b60405180910390fd5b6109b1878787612146565b50610a44873387600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a3f9190613336565b612053565b50600193505050509392505050565b60006012905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae5906131a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613065565b60405180910390fd5b610b69338585612146565b50610b758484846122d4565b50600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a906131a5565b60405180910390fd5b600660009054906101000a900460ff1615610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90613165565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca90613145565b60405180910390fd5b600660019054906101000a900460ff1615610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90613185565b60405180910390fd5b610d2d8383612560565b508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688583604051610d749190613265565b60405180910390a26001905092915050565b6000600660009054906101000a900460ff1615610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf90613165565b60405180910390fd5b610de23383612674565b90503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610e2a9190613265565b60405180910390a260019050919050565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610eb5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90613125565b60405180910390fd5b610f118383612788565b506001905092915050565b6000600660009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461100e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611005906131a5565b60405180910390fd5b6110186000612b0e565b905090565b6000600660009054906101000a900460ff161561106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690613165565b60405180910390fd5b6110798383612674565b508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040516110c09190613265565b60405180910390a261115a833384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111559190613336565b612053565b905092915050565b6000600660019054906101000a900460ff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611202906131a5565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611338906131a5565b60405180910390fd5b600660009054906101000a900460ff1615611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890613165565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a16001905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611468906131a5565b60405180910390fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5245424400000000000000000000000000000000000000000000000000000000815250905090565b600033600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390613205565b60405180910390fd5b600660009054906101000a900460ff161561165c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165390613165565b60405180910390fd5b338380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116a991906132e0565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561172a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611721906131e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561179a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611791906131c5565b60405180910390fd5b6117a5338787612146565b506001935050505092915050565b6000806000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061182f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b600080600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156119a05780806118d19061341c565b91505042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001836119219190613336565b81548110611958577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160010154101561199b57611986836001836119819190613336565b612788565b1561199a578080611996906133f2565b9150505b5b61187c565b5060019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a33906131a5565b60405180910390fd5b60005b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611ac6578080611a949061341c565b915050611aad83600183611aa89190613336565b612788565b15611ac1578080611abd906133f2565b9150505b611a3f565b5060019050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f906131a5565b60405180910390fd5b611c838484846122d4565b90509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d15906131a5565b60405180910390fd5b600660019054906101000a900460ff1615611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d65906130a5565b60405180910390fd5b6001600660016101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9b906131a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b90613245565b60405180910390fd5b611f1d82612b0e565b9050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906131a5565b60405180910390fd5b600660009054906101000a900460ff16612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613225565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a16001905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516121339190613265565b60405180910390a3600190509392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121939190613336565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222191906132e0565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c19190613265565b60405180910390a3600190509392505050565b6000428211612318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230f906130e5565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361236391906132e0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156123e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123db906130c5565b60405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242f91906132e0565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b848460405161254d929190613280565b60405180910390a2600190509392505050565b60008160005461257091906132e0565b60008190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c191906132e0565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126629190613265565b60405180910390a36001905092915050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c19190613336565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000546127129190613336565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127769190613265565b60405180910390a36001905092915050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612802577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020190508060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128619190613336565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f182600001546040516128ee9190613265565b60405180910390a2600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506129849190613336565b815481106129bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110612a40577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000820154816000015560018201548160010155905050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480612ada577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600081359050612be581613995565b92915050565b600081359050612bfa816139ac565b92915050565b600060208284031215612c1257600080fd5b6000612c2084828501612bd6565b91505092915050565b60008060408385031215612c3c57600080fd5b6000612c4a85828601612bd6565b9250506020612c5b85828601612bd6565b9150509250929050565b600080600060608486031215612c7a57600080fd5b6000612c8886828701612bd6565b9350506020612c9986828701612bd6565b9250506040612caa86828701612beb565b9150509250925092565b60008060408385031215612cc757600080fd5b6000612cd585828601612bd6565b9250506020612ce685828601612beb565b9150509250929050565b600080600060608486031215612d0557600080fd5b6000612d1386828701612bd6565b9350506020612d2486828701612beb565b9250506040612d3586828701612beb565b9150509250925092565b600060208284031215612d5157600080fd5b6000612d5f84828501612beb565b91505092915050565b612d718161336a565b82525050565b612d808161337c565b82525050565b6000612d91826132c4565b612d9b81856132cf565b9350612dab8185602086016133bf565b612db481613494565b840191505092915050565b6000612dcc603e836132cf565b9150612dd7826134a5565b604082019050919050565b6000612def602e836132cf565b9150612dfa826134f4565b604082019050919050565b6000612e12602e836132cf565b9150612e1d82613543565b604082019050919050565b6000612e356040836132cf565b9150612e4082613592565b604082019050919050565b6000612e58602b836132cf565b9150612e63826135e1565b604082019050919050565b6000612e7b6033836132cf565b9150612e8682613630565b604082019050919050565b6000612e9e602e836132cf565b9150612ea98261367f565b604082019050919050565b6000612ec16034836132cf565b9150612ecc826136ce565b604082019050919050565b6000612ee46039836132cf565b9150612eef8261371d565b604082019050919050565b6000612f07602f836132cf565b9150612f128261376c565b604082019050919050565b6000612f2a602f836132cf565b9150612f35826137bb565b604082019050919050565b6000612f4d602f836132cf565b9150612f588261380a565b604082019050919050565b6000612f706033836132cf565b9150612f7b82613859565b604082019050919050565b6000612f93601c836132cf565b9150612f9e826138a8565b602082019050919050565b6000612fb66035836132cf565b9150612fc1826138d1565b604082019050919050565b6000612fd96045836132cf565b9150612fe482613920565b606082019050919050565b612ff8816133a8565b82525050565b613007816133b2565b82525050565b60006020820190506130226000830184612d68565b92915050565b600060208201905061303d6000830184612d77565b92915050565b6000602082019050818103600083015261305d8184612d86565b905092915050565b6000602082019050818103600083015261307e81612dbf565b9050919050565b6000602082019050818103600083015261309e81612de2565b9050919050565b600060208201905081810360008301526130be81612e05565b9050919050565b600060208201905081810360008301526130de81612e28565b9050919050565b600060208201905081810360008301526130fe81612e4b565b9050919050565b6000602082019050818103600083015261311e81612e6e565b9050919050565b6000602082019050818103600083015261313e81612e91565b9050919050565b6000602082019050818103600083015261315e81612eb4565b9050919050565b6000602082019050818103600083015261317e81612ed7565b9050919050565b6000602082019050818103600083015261319e81612efa565b9050919050565b600060208201905081810360008301526131be81612f1d565b9050919050565b600060208201905081810360008301526131de81612f40565b9050919050565b600060208201905081810360008301526131fe81612f63565b9050919050565b6000602082019050818103600083015261321e81612f86565b9050919050565b6000602082019050818103600083015261323e81612fa9565b9050919050565b6000602082019050818103600083015261325e81612fcc565b9050919050565b600060208201905061327a6000830184612fef565b92915050565b60006040820190506132956000830185612fef565b6132a26020830184612fef565b9392505050565b60006020820190506132be6000830184612ffe565b92915050565b600081519050919050565b600082825260208201905092915050565b60006132eb826133a8565b91506132f6836133a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561332b5761332a613465565b5b828201905092915050565b6000613341826133a8565b915061334c836133a8565b92508282101561335f5761335e613465565b5b828203905092915050565b600061337582613388565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156133dd5780820151818401526020810190506133c2565b838111156133ec576000848401525b50505050565b60006133fd826133a8565b9150600082141561341157613410613465565b5b600182039050919050565b6000613427826133a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561345a57613459613465565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b7f45524332304c6f636b61626c652f7472616e73666572576974684c6f636b557060008201527f203a2043616e6e6f742073656e6420746f207a65726f20616464726573730000602082015250565b7f524542442f617070726f7665203a2053686f756c64206e6f7420617070726f7660008201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b7f45524332304d696e7461626c652f66696e6973684d696e74696e67203a20416c60008201527f72656164792066696e6973686564000000000000000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f6c6f636b203a206c6f636b656420746f746160008201527f6c2073686f756c6420626520736d616c6c6572207468616e2062616c616e6365602082015250565b7f45524332304c6f636b61626c652f6c6f636b203a2043616e6e6f74207365742060008201527f64756520746f2070617374000000000000000000000000000000000000000000602082015250565b7f524542442f7472616e7366657246726f6d203a2053686f756c64206e6f74207360008201527f656e6420746f207a65726f206164647265737300000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f756e6c6f636b3a2063616e6e6f7420756e6c60008201527f6f636b206265666f726520647565000000000000000000000000000000000000602082015250565b7f45524332304d696e7461626c652f6d696e74203a2053686f756c64206e6f742060008201527f6d696e7420746f207a65726f2061646472657373000000000000000000000000602082015250565b7f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008201527f62652063616c6c6564207768656e206e6f742070617573656400000000000000602082015250565b7f45524332304d696e7461626c652f6d696e74203a2043616e6e6f74206d696e7460008201527f2061667465722066696e69736865640000000000000000000000000000000000602082015250565b7f4f776e61626c65203a2046756e6374696f6e2063616c6c656420627920756e6160008201527f7574686f72697a656420757365722e0000000000000000000000000000000000602082015250565b7f524542442f7472616e73666572203a2053686f756c64206e6f742073656e642060008201527f746f207a65726f20616464726573730000000000000000000000000000000000602082015250565b7f45524332304c6f636b61626c652f43616e6e6f742073656e64206d6f7265207460008201527f68616e20756e6c6f636b656420616d6f756e7400000000000000000000000000602082015250565b7f467265657a61626c65203a207461726765742069732066726f7a656e00000000600082015250565b7f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008201527f62652063616c6c6564207768656e207061757365640000000000000000000000602082015250565b7f4f776e61626c652f7472616e736665724f776e657273686970203a2063616e6e60008201527f6f74207472616e73666572206f776e65727368697020746f207a65726f20616460208201527f6472657373000000000000000000000000000000000000000000000000000000604082015250565b61399e8161336a565b81146139a957600080fd5b50565b6139b5816133a8565b81146139c057600080fd5b5056fea26469706673582212201fb9532c7a5af5899635580c1cc91a652151ab0602fb73893e860333a2ee6c7464736f6c63430008010033