60806040526040518060400160405280601881526020017f4e6f7420416e6f746865722053686974747920416c69656e0000000000000000815250600690816200004a919062000c91565b506040518060400160405280600781526020017f4e415341494e55000000000000000000000000000000000000000000000000008152506007908162000091919062000c91565b506009600860006101000a81548160ff021916908360ff160217905550633b9aca006009556001600a556004600b55600860009054906101000a900460ff16600a620000de919062000f08565b62989680620000ee919062000f59565b600c55600860009054906101000a900460ff16600a6200010f919062000f08565b629896806200011f919062000f59565b600d55734c6ea9e49bd83e72d5497dc03e1b8f899a74de54600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601155600860009054906101000a900460ff16600a6200019a919062000f08565b6207a120620001aa919062000f59565b601355600860009054906101000a900460ff16600a620001cb919062000f08565b62030d40620001db919062000f59565b601455348015620001eb57600080fd5b5060068054620001fb9062000a80565b80601f0160208091040260200160405190810160405280929190818152602001828054620002299062000a80565b80156200027a5780601f106200024e576101008083540402835291602001916200027a565b820191906000526020600020905b8154815290600101906020018083116200025c57829003601f168201915b5050505050600780546200028e9062000a80565b80601f0160208091040260200160405190810160405280929190818152602001828054620002bc9062000a80565b80156200030d5780601f10620002e1576101008083540402835291602001916200030d565b820191906000526020600020905b815481529060010190602001808311620002ef57829003601f168201915b5050505050816003908162000323919062000c91565b50806004908162000335919062000c91565b505050620003586200034c6200080460201b60201c565b6200080c60201b60201c565b6200039633600860009054906101000a900460ff16600a6200037b919062000f08565b6009546200038a919062000f59565b620008d260201b60201c565b60014603620003fa57737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004c9565b600546036200045e57737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004c8565b60384603620004c2577310ed43c718714eb63d5aa57b78b54704e256024e600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004c7565b600080fd5b5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000537573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055d919062001024565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060c919062001024565b306040518363ffffffff1660e01b81526004016200062c92919062001067565b6020604051808303816000875af11580156200064c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000672919062001024565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160126000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062001180565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000944576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093b90620010f5565b60405180910390fd5b806002600082825462000958919062001117565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a0b919062001163565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9957607f821691505b60208210810362000aaf5762000aae62000a51565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ada565b62000b25868362000ada565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b7262000b6c62000b668462000b3d565b62000b47565b62000b3d565b9050919050565b6000819050919050565b62000b8e8362000b51565b62000ba662000b9d8262000b79565b84845462000ae7565b825550505050565b600090565b62000bbd62000bae565b62000bca81848462000b83565b505050565b5b8181101562000bf25762000be660008262000bb3565b60018101905062000bd0565b5050565b601f82111562000c415762000c0b8162000ab5565b62000c168462000aca565b8101602085101562000c26578190505b62000c3e62000c358562000aca565b83018262000bcf565b50505b505050565b600082821c905092915050565b600062000c666000198460080262000c46565b1980831691505092915050565b600062000c81838362000c53565b9150826002028217905092915050565b62000c9c8262000a17565b67ffffffffffffffff81111562000cb85762000cb762000a22565b5b62000cc4825462000a80565b62000cd182828562000bf6565b600060209050601f83116001811462000d09576000841562000cf4578287015190505b62000d00858262000c73565b86555062000d70565b601f19841662000d198662000ab5565b60005b8281101562000d435784890151825560018201915060208501945060208101905062000d1c565b8683101562000d63578489015162000d5f601f89168262000c53565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e065780860481111562000dde5762000ddd62000d78565b5b600185161562000dee5780820291505b808102905062000dfe8562000da7565b945062000dbe565b94509492505050565b60008262000e21576001905062000ef4565b8162000e31576000905062000ef4565b816001811462000e4a576002811462000e555762000e8b565b600191505062000ef4565b60ff84111562000e6a5762000e6962000d78565b5b8360020a91508482111562000e845762000e8362000d78565b5b5062000ef4565b5060208310610133831016604e8410600b841016171562000ec55782820a90508381111562000ebf5762000ebe62000d78565b5b62000ef4565b62000ed4848484600162000db4565b9250905081840481111562000eee5762000eed62000d78565b5b81810290505b9392505050565b600060ff82169050919050565b600062000f158262000b3d565b915062000f228362000efb565b925062000f517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e0f565b905092915050565b600062000f668262000b3d565b915062000f738362000b3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000faf5762000fae62000d78565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000fec8262000fbf565b9050919050565b62000ffe8162000fdf565b81146200100a57600080fd5b50565b6000815190506200101e8162000ff3565b92915050565b6000602082840312156200103d576200103c62000fba565b5b60006200104d848285016200100d565b91505092915050565b620010618162000fdf565b82525050565b60006040820190506200107e600083018562001056565b6200108d602083018462001056565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620010dd601f8362001094565b9150620010ea82620010a5565b602082019050919050565b600060208201905081810360008301526200111081620010ce565b9050919050565b6000620011248262000b3d565b9150620011318362000b3d565b92508282019050808211156200114c576200114b62000d78565b5b92915050565b6200115d8162000b3d565b82525050565b60006020820190506200117a600083018462001152565b92915050565b612d0080620011906000396000f3fe6080604052600436106101a05760003560e01c806377fc3cae116100ec578063a457c2d71161008a578063ce9c2d1011610064578063ce9c2d1014610613578063dd62ed3e1461063e578063f2fde38b1461067b578063f345bd85146106a4576101a7565b8063a457c2d71461056e578063a9059cbb146105ab578063aa4bde28146105e8576101a7565b80638c0b5e22116100c65780638c0b5e22146104b05780638da5cb5b146104db578063959dad541461050657806395d89b4114610543576101a7565b806377fc3cae1461040d57806381bfdcca1461044a57806385ecafd714610487576101a7565b806338a52c0a11610159578063452ed4f111610133578063452ed4f114610351578063677daa571461037c57806370a08231146103b9578063715018a6146103f6576101a7565b806338a52c0a146102d257806339509351146102fd5780633ccfd60b1461033a576101a7565b806306fdde03146101ac5780630758d924146101d7578063095ea7b31461020257806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16106cf565b6040516101ce9190611dcb565b60405180910390f35b3480156101e357600080fd5b506101ec610761565b6040516101f99190611e6c565b60405180910390f35b34801561020e57600080fd5b5061022960048036038101906102249190611f00565b610787565b6040516102369190611f5b565b60405180910390f35b34801561024b57600080fd5b506102546107aa565b6040516102619190611f85565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190611fa0565b6107b4565b60405161029e9190611f5b565b60405180910390f35b3480156102b357600080fd5b506102bc6107e3565b6040516102c9919061200f565b60405180910390f35b3480156102de57600080fd5b506102e76107ec565b6040516102f49190611f85565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190611f00565b6107f2565b6040516103319190611f5b565b60405180910390f35b34801561034657600080fd5b5061034f610829565b005b34801561035d57600080fd5b506103666108d2565b6040516103739190612039565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190612054565b6108f8565b6040516103b09190611f5b565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db9190612081565b610912565b6040516103ed9190611f85565b60405180910390f35b34801561040257600080fd5b5061040b61095a565b005b34801561041957600080fd5b50610434600480360381019061042f9190612081565b61096e565b6040516104419190611f5b565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190612054565b6109c2565b60405161047e9190611f5b565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a99190612081565b6109dc565b005b3480156104bc57600080fd5b506104c5610a3f565b6040516104d29190611f85565b60405180910390f35b3480156104e757600080fd5b506104f0610a45565b6040516104fd9190612039565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906120ae565b610a6f565b60405161053a9190611f5b565b60405180910390f35b34801561054f57600080fd5b50610558610ae0565b6040516105659190611dcb565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190611f00565b610b72565b6040516105a29190611f5b565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190611f00565b610be9565b6040516105df9190611f5b565b60405180910390f35b3480156105f457600080fd5b506105fd610c0c565b60405161060a9190611f85565b60405180910390f35b34801561061f57600080fd5b50610628610c12565b6040516106359190612039565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906120ee565b610c38565b6040516106729190611f85565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d9190612081565b610cbf565b005b3480156106b057600080fd5b506106b9610d42565b6040516106c69190611f85565b60405180910390f35b6060600380546106de9061215d565b80601f016020809104026020016040519081016040528092919081815260200182805461070a9061215d565b80156107575780601f1061072c57610100808354040283529160200191610757565b820191906000526020600020905b81548152906001019060200180831161073a57829003601f168201915b5050505050905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610792610d48565b905061079f818585610d50565b600191505092915050565b6000600254905090565b6000806107bf610d48565b90506107cc858285610f19565b6107d7858585610fa5565b60019150509392505050565b60006009905090565b600b5481565b6000806107fd610d48565b905061081e81858561080f8589610c38565b61081991906121bd565b610d50565b600191505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088357600080fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108ce573d6000803e3d6000fd5b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610902611535565b81600c8190555060019050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610962611535565b61096c60006115b3565b565b6000610978611535565b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60006109cc611535565b81600d8190555060019050919050565b6109e4611535565b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610a79611535565b60198284610a8791906121bd565b1115610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612263565b60405180910390fd5b82600a8190555081600b819055506001905092915050565b606060048054610aef9061215d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1b9061215d565b8015610b685780601f10610b3d57610100808354040283529160200191610b68565b820191906000526020600020905b815481529060010190602001808311610b4b57829003601f168201915b5050505050905090565b600080610b7d610d48565b90506000610b8b8286610c38565b905083811015610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc7906122f5565b60405180910390fd5b610bdd8286868403610d50565b60019250505092915050565b600080610bf4610d48565b9050610c01818585610fa5565b600191505092915050565b600d5481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cc7611535565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90612387565b60405180910390fd5b610d3f816115b3565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690612419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906124ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0c9190611f85565b60405180910390a3505050565b6000610f258484610c38565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f9f5781811015610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612517565b60405180910390fd5b610f9e8484848403610d50565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b906125a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a9061263b565b60405180910390fd5b8061108d84610912565b10156110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c5906126cd565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806111775750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156111905750601560009054906101000a900460ff16155b1561152457601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112e95760006011546111f830610912565b61120291906126ed565b9050601354811061121957611218601354611679565b5b601454601154106112e75761122f60145461173a565b6014546011600082825461124391906126ed565b925050819055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050509050806112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc9061276d565b60405180910390fd5b505b505b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561139957819050611513565b600c548211156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d5906127ff565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361148c57600d5461143f84610912565b8361144a91906121bd565b111561148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148290612891565b60405180910390fd5b5b60006064600b548461149e91906128b1565b6114a8919061293a565b905060006064600a54856114bc91906128b1565b6114c6919061293a565b905080826114d491906121bd565b846114df91906126ed565b925081601160008282546114f391906121bd565b925050819055506115108630838561150b91906121bd565b6119c0565b50505b61151e8484836119c0565b50611530565b61152f8383836119c0565b5b505050565b61153d610d48565b73ffffffffffffffffffffffffffffffffffffffff1661155b610a45565b73ffffffffffffffffffffffffffffffffffffffff16146115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a8906129b7565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601560006101000a81548160ff02191690831515021790555060006002826116a3919061293a565b9050600081836116b391906126ed565b905060004790506116c38361173a565b600081476116d191906126ed565b90506116dd8382611c20565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051611710939291906129d7565b60405180910390a1505050506000601560006101000a81548160ff02191690831515021790555050565b6001601560006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561177257611771612a0e565b5b6040519080825280602002602001820160405280156117a05781602001602082028036833780820191505090505b50905030816000815181106117b8576117b7612a3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118839190612a81565b8160018151811061189757611896612a3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118fe30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000843061012c4261194f91906121bd565b6040518663ffffffff1660e01b815260040161196f959493929190612ba7565b600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b50505050506000601560006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a26906125a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959061263b565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b906126cd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c129190611f85565b60405180910390a350505050565b6001601560006101000a81548160ff021916908315150217905550611c6830600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080611cb4610a45565b426040518863ffffffff1660e01b8152600401611cd696959493929190612c01565b60606040518083038185885af1158015611cf4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d199190612c77565b5050506000601560006101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d75578082015181840152602081019050611d5a565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d9d82611d3b565b611da78185611d46565b9350611db7818560208601611d57565b611dc081611d81565b840191505092915050565b60006020820190508181036000830152611de58184611d92565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611e32611e2d611e2884611ded565b611e0d565b611ded565b9050919050565b6000611e4482611e17565b9050919050565b6000611e5682611e39565b9050919050565b611e6681611e4b565b82525050565b6000602082019050611e816000830184611e5d565b92915050565b600080fd5b6000611e9782611ded565b9050919050565b611ea781611e8c565b8114611eb257600080fd5b50565b600081359050611ec481611e9e565b92915050565b6000819050919050565b611edd81611eca565b8114611ee857600080fd5b50565b600081359050611efa81611ed4565b92915050565b60008060408385031215611f1757611f16611e87565b5b6000611f2585828601611eb5565b9250506020611f3685828601611eeb565b9150509250929050565b60008115159050919050565b611f5581611f40565b82525050565b6000602082019050611f706000830184611f4c565b92915050565b611f7f81611eca565b82525050565b6000602082019050611f9a6000830184611f76565b92915050565b600080600060608486031215611fb957611fb8611e87565b5b6000611fc786828701611eb5565b9350506020611fd886828701611eb5565b9250506040611fe986828701611eeb565b9150509250925092565b600060ff82169050919050565b61200981611ff3565b82525050565b60006020820190506120246000830184612000565b92915050565b61203381611e8c565b82525050565b600060208201905061204e600083018461202a565b92915050565b60006020828403121561206a57612069611e87565b5b600061207884828501611eeb565b91505092915050565b60006020828403121561209757612096611e87565b5b60006120a584828501611eb5565b91505092915050565b600080604083850312156120c5576120c4611e87565b5b60006120d385828601611eeb565b92505060206120e485828601611eeb565b9150509250929050565b6000806040838503121561210557612104611e87565b5b600061211385828601611eb5565b925050602061212485828601611eb5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061217557607f821691505b6020821081036121885761218761212e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121c882611eca565b91506121d383611eca565b92508282019050808211156121eb576121ea61218e565b5b92915050565b7f45524332303a20746f74616c20746178206d757374206e6f742062652067726560008201527f61746572207468616e2032350000000000000000000000000000000000000000602082015250565b600061224d602c83611d46565b9150612258826121f1565b604082019050919050565b6000602082019050818103600083015261227c81612240565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006122df602583611d46565b91506122ea82612283565b604082019050919050565b6000602082019050818103600083015261230e816122d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612371602683611d46565b915061237c82612315565b604082019050919050565b600060208201905081810360008301526123a081612364565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612403602483611d46565b915061240e826123a7565b604082019050919050565b60006020820190508181036000830152612432816123f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612495602283611d46565b91506124a082612439565b604082019050919050565b600060208201905081810360008301526124c481612488565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612501601d83611d46565b915061250c826124cb565b602082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612593602583611d46565b915061259e82612537565b604082019050919050565b600060208201905081810360008301526125c281612586565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612625602383611d46565b9150612630826125c9565b604082019050919050565b6000602082019050818103600083015261265481612618565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006126b7602683611d46565b91506126c28261265b565b604082019050919050565b600060208201905081810360008301526126e6816126aa565b9050919050565b60006126f882611eca565b915061270383611eca565b925082820390508181111561271b5761271a61218e565b5b92915050565b7f4661696c656420746f2073656e64204554480000000000000000000000000000600082015250565b6000612757601283611d46565b915061276282612721565b602082019050919050565b600060208201905081810360008301526127868161274a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207460008201527f6865206d6178207472616e73616374696f6e20616d6f756e7400000000000000602082015250565b60006127e9603983611d46565b91506127f48261278d565b604082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b7f45524332303a2062616c616e636520616d6f756e74206578636565646564206d60008201527f61782077616c6c657420616d6f756e74206c696d697400000000000000000000602082015250565b600061287b603683611d46565b91506128868261281f565b604082019050919050565b600060208201905081810360008301526128aa8161286e565b9050919050565b60006128bc82611eca565b91506128c783611eca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612900576128ff61218e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061294582611eca565b915061295083611eca565b9250826129605761295f61290b565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a1602083611d46565b91506129ac8261296b565b602082019050919050565b600060208201905081810360008301526129d081612994565b9050919050565b60006060820190506129ec6000830186611f76565b6129f96020830185611f76565b612a066040830184611f76565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a7b81611e9e565b92915050565b600060208284031215612a9757612a96611e87565b5b6000612aa584828501612a6c565b91505092915050565b6000819050919050565b6000612ad3612ace612ac984612aae565b611e0d565b611eca565b9050919050565b612ae381612ab8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b1e81611e8c565b82525050565b6000612b308383612b15565b60208301905092915050565b6000602082019050919050565b6000612b5482612ae9565b612b5e8185612af4565b9350612b6983612b05565b8060005b83811015612b9a578151612b818882612b24565b9750612b8c83612b3c565b925050600181019050612b6d565b5085935050505092915050565b600060a082019050612bbc6000830188611f76565b612bc96020830187612ada565b8181036040830152612bdb8186612b49565b9050612bea606083018561202a565b612bf76080830184611f76565b9695505050505050565b600060c082019050612c16600083018961202a565b612c236020830188611f76565b612c306040830187612ada565b612c3d6060830186612ada565b612c4a608083018561202a565b612c5760a0830184611f76565b979650505050505050565b600081519050612c7181611ed4565b92915050565b600080600060608486031215612c9057612c8f611e87565b5b6000612c9e86828701612c62565b9350506020612caf86828701612c62565b9250506040612cc086828701612c62565b915050925092509256fea2646970667358221220f5245e6304bb97ff9a161e7f3984caf1308789ecad3f3d29c9b46c968ad0baa864736f6c63430008100033