60a06040526000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f5560006010553480156200005157600080fd5b5060405162005384380380620053848339818101604052810190620000779190620007a8565b6040518060400160405280600b81526020017f6e5649444941204c656e640000000000000000000000000000000000000000008152506040518060400160405280600681526020017f6e564944494100000000000000000000000000000000000000000000000000008152508160039081620000f4919062000a5f565b50806004908162000106919062000a5f565b505050620001296200011d6200038f60201b60201c565b6200039760201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c26200038f60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002126200045d60201b60201c565b600a62000220919062000cd6565b6305f5e10062000231919062000d27565b600a81905550806002600a5462000249919062000d27565b62000255919062000da1565b600c81905550600c54600d81905550806002600a5462000276919062000d27565b62000282919062000da1565b600b81905550620002aa6200029c6200038f60201b60201c565b60016200046660201b60201c565b620002df600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200046660201b60201c565b62000314600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200046660201b60201c565b6200032960805160016200046660201b60201c565b6200033c3060016200046660201b60201c565b6200035161dead60016200046660201b60201c565b62000387600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54620004d160201b60201c565b505062000f37565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b620004766200063e60201b60201c565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000543576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200053a9062000e3a565b60405180910390fd5b6200055760008383620006cf60201b60201c565b80600260008282546200056b919062000e5c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200061e919062000ea8565b60405180910390a36200063a60008383620006d460201b60201c565b5050565b6200064e6200038f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000674620006d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c49062000f15565b60405180910390fd5b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007358262000708565b9050919050565b620007478162000728565b81146200075357600080fd5b50565b60008151905062000767816200073c565b92915050565b6000819050919050565b62000782816200076d565b81146200078e57600080fd5b50565b600081519050620007a28162000777565b92915050565b60008060408385031215620007c257620007c162000703565b5b6000620007d28582860162000756565b9250506020620007e58582860162000791565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087157607f821691505b60208210810362000887576200088662000829565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b2565b620008fd8683620008b2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009406200093a62000934846200076d565b62000915565b6200076d565b9050919050565b6000819050919050565b6200095c836200091f565b620009746200096b8262000947565b848454620008bf565b825550505050565b600090565b6200098b6200097c565b6200099881848462000951565b505050565b5b81811015620009c057620009b460008262000981565b6001810190506200099e565b5050565b601f82111562000a0f57620009d9816200088d565b620009e484620008a2565b81016020851015620009f4578190505b62000a0c62000a0385620008a2565b8301826200099d565b50505b505050565b600082821c905092915050565b600062000a346000198460080262000a14565b1980831691505092915050565b600062000a4f838362000a21565b9150826002028217905092915050565b62000a6a82620007ef565b67ffffffffffffffff81111562000a865762000a85620007fa565b5b62000a92825462000858565b62000a9f828285620009c4565b600060209050601f83116001811462000ad7576000841562000ac2578287015190505b62000ace858262000a41565b86555062000b3e565b601f19841662000ae7866200088d565b60005b8281101562000b115784890151825560018201915060208501945060208101905062000aea565b8683101562000b31578489015162000b2d601f89168262000a21565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bd45780860481111562000bac5762000bab62000b46565b5b600185161562000bbc5780820291505b808102905062000bcc8562000b75565b945062000b8c565b94509492505050565b60008262000bef576001905062000cc2565b8162000bff576000905062000cc2565b816001811462000c18576002811462000c235762000c59565b600191505062000cc2565b60ff84111562000c385762000c3762000b46565b5b8360020a91508482111562000c525762000c5162000b46565b5b5062000cc2565b5060208310610133831016604e8410600b841016171562000c935782820a90508381111562000c8d5762000c8c62000b46565b5b62000cc2565b62000ca2848484600162000b82565b9250905081840481111562000cbc5762000cbb62000b46565b5b81810290505b9392505050565b600060ff82169050919050565b600062000ce3826200076d565b915062000cf08362000cc9565b925062000d1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bdd565b905092915050565b600062000d34826200076d565b915062000d41836200076d565b925082820262000d51816200076d565b9150828204841483151762000d6b5762000d6a62000b46565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dae826200076d565b915062000dbb836200076d565b92508262000dce5762000dcd62000d72565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e22601f8362000dd9565b915062000e2f8262000dea565b602082019050919050565b6000602082019050818103600083015262000e558162000e13565b9050919050565b600062000e69826200076d565b915062000e76836200076d565b925082820190508082111562000e915762000e9062000b46565b5b92915050565b62000ea2816200076d565b82525050565b600060208201905062000ebf600083018462000e97565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000efd60208362000dd9565b915062000f0a8262000ec5565b602082019050919050565b6000602082019050818103600083015262000f308162000eee565b9050919050565b60805161441c62000f6860003960008181610cc801528181612817015281816128f8015261291f015261441c6000f3fe6080604052600436106102295760003560e01c806373fa7ddb11610123578063c2b7bbb6116100ab578063e083e9221161006f578063e083e92214610800578063e2f4560514610829578063f2fde38b14610854578063f8b45b051461087d578063ffb54a99146108a857610230565b8063c2b7bbb61461072f578063c4590d3f14610758578063c8c8ebe414610781578063c9567bf9146107ac578063dd62ed3e146107c357610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063afa4f3b2146106dd578063b70143c91461070657610230565b806373fa7ddb146105925780637571336a146105bb5780638da5cb5b146105e457806395d89b411461060f57610230565b806342966c68116101b1578063583e056811610175578063583e0568146104bf5780635d098b38146104ea5780636ddd17131461051357806370a082311461053e578063715018a61461057b57610230565b806342966c68146103ec578063470624021461041557806349bd5a5e146104405780634d54557f1461046b5780634fbee1931461048257610230565b806326ededb8116101f857806326ededb8146103055780632b14ca561461032e578063311028af14610359578063313ce5671461038457806339509351146103af57610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d57806323b872dd146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b6040516102579190612de7565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612eb1565b610965565b6040516102949190612f0c565b60405180910390f35b3480156102a957600080fd5b506102b2610988565b6040516102bf9190612f36565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612f51565b610992565b6040516102fc9190612f0c565b60405180910390f35b34801561031157600080fd5b5061032c60048036038101906103279190613009565b6109c1565b005b34801561033a57600080fd5b50610343610af7565b6040516103509190612f36565b60405180910390f35b34801561036557600080fd5b5061036e610afd565b60405161037b9190612f36565b60405180910390f35b34801561039057600080fd5b50610399610b03565b6040516103a69190613085565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612eb1565b610b0c565b6040516103e39190612f0c565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906130a0565b610b43565b005b34801561042157600080fd5b5061042a610b57565b6040516104379190612f36565b60405180910390f35b34801561044c57600080fd5b50610455610b5d565b60405161046291906130dc565b60405180910390f35b34801561047757600080fd5b50610480610b83565b005b34801561048e57600080fd5b506104a960048036038101906104a491906130f7565b610c70565b6040516104b69190612f0c565b60405180910390f35b3480156104cb57600080fd5b506104d4610cc6565b6040516104e19190613183565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c91906130f7565b610cea565b005b34801561051f57600080fd5b50610528610d8f565b6040516105359190612f0c565b60405180910390f35b34801561054a57600080fd5b50610565600480360381019061056091906130f7565b610da2565b6040516105729190612f36565b60405180910390f35b34801561058757600080fd5b50610590610dea565b005b34801561059e57600080fd5b506105b960048036038101906105b49190613308565b610dfe565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190613364565b610f5c565b005b3480156105f057600080fd5b506105f9610fbf565b60405161060691906130dc565b60405180910390f35b34801561061b57600080fd5b50610624610fe9565b6040516106319190612de7565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613364565b61107b565b005b34801561066f57600080fd5b5061068a60048036038101906106859190612eb1565b611121565b6040516106979190612f0c565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190612eb1565b611198565b6040516106d49190612f0c565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906130a0565b6111bb565b005b34801561071257600080fd5b5061072d600480360381019061072891906130a0565b611244565b005b34801561073b57600080fd5b50610756600480360381019061075191906130f7565b6112dc565b005b34801561076457600080fd5b5061077f600480360381019061077a91906133a4565b611382565b005b34801561078d57600080fd5b506107966113d8565b6040516107a39190612f36565b60405180910390f35b3480156107b857600080fd5b506107c16113de565b005b3480156107cf57600080fd5b506107ea60048036038101906107e591906133e4565b61141e565b6040516107f79190612f36565b60405180910390f35b34801561080c57600080fd5b50610827600480360381019061082291906130f7565b6114a5565b005b34801561083557600080fd5b5061083e6116bd565b60405161084b9190612f36565b60405180910390f35b34801561086057600080fd5b5061087b600480360381019061087691906130f7565b6116c3565b005b34801561088957600080fd5b50610892611746565b60405161089f9190612f36565b60405180910390f35b3480156108b457600080fd5b506108bd61174c565b6040516108ca9190612f0c565b60405180910390f35b6060600380546108e290613453565b80601f016020809104026020016040519081016040528092919081815260200182805461090e90613453565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60008061097061175f565b905061097d818585611767565b600191505092915050565b6000600254905090565b60008061099d61175f565b90506109aa858285611930565b6109b58585856119bc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0261175f565b73ffffffffffffffffffffffffffffffffffffffff1614610a2257600080fd5b60005b83839050811015610af157838382818110610a4357610a42613484565b5b9050602002016020810190610a5891906130f7565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ad69190612f36565b60405180910390a38080610ae9906134e2565b915050610a25565b50505050565b600f5481565b600a5481565b60006009905090565b600080610b1761175f565b9050610b38818585610b29858961141e565b610b33919061352a565b611767565b600191505092915050565b610b54610b4e61175f565b826123c6565b50565b60105481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd906135aa565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0761175f565b73ffffffffffffffffffffffffffffffffffffffff1614610c2757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c6d573d6000803e3d6000fd5b50565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d2b61175f565b73ffffffffffffffffffffffffffffffffffffffff1614610d4b57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610df2612593565b610dfc6000612611565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e3f61175f565b73ffffffffffffffffffffffffffffffffffffffff1614610e5f57600080fd5b60005b8251811015610f57578160146000858481518110610e8357610e82613484565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610eef57610eee613484565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051610f3c9190612f0c565b60405180910390a28080610f4f906134e2565b915050610e62565b505050565b610f64612593565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ff890613453565b80601f016020809104026020016040519081016040528092919081815260200182805461102490613453565b80156110715780601f1061104657610100808354040283529160200191611071565b820191906000526020600020905b81548152906001019060200180831161105457829003601f168201915b5050505050905090565b611083612593565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061363c565b60405180910390fd5b61111d82826126d7565b5050565b60008061112c61175f565b9050600061113a828661141e565b90508381101561117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906136ce565b60405180910390fd5b61118c8286868403611767565b60019250505092915050565b6000806111a361175f565b90506111b08185856119bc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111fc61175f565b73ffffffffffffffffffffffffffffffffffffffff161461121c57600080fd5b611224610b03565b600a6112309190613821565b8161123b919061386c565b600b8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128561175f565b73ffffffffffffffffffffffffffffffffffffffff16146112a557600080fd5b60006112b030610da2565b90506000606483836112c2919061386c565b6112cc91906138dd565b90506112d781612778565b505050565b6112e4612593565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611352600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f5c565b61137f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016126d7565b50565b61138a612593565b611392610b03565b600a61139e9190613821565b826113a9919061386c565b600d819055506113b7610b03565b600a6113c39190613821565b816113ce919061386c565b600c819055505050565b600d5481565b6113e6612593565b6001600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e661175f565b73ffffffffffffffffffffffffffffffffffffffff161461150657600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154191906130dc565b602060405180830381865afa15801561155e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115829190613923565b116115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b99061399c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161161891906130dc565b602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116599190613923565b6040518363ffffffff1660e01b81526004016116769291906139bc565b6020604051808303816000875af1158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b991906139fa565b5050565b600b5481565b6116cb612593565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613a99565b60405180910390fd5b61174381612611565b50565b600c5481565b600e60019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd90613b2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90613bbd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119239190612f36565b60405180910390a3505050565b600061193c848461141e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b657818110156119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613c29565b60405180910390fd5b6119b58484848403611767565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2290613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613d4d565b60405180910390fd5b60008103611ab357611aae838360006129d7565b6123c1565b611abb610fbf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b295750611af9610fbf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bb55750600860149054906101000a900460ff16155b15611fdc57600e60019054906101000a900460ff16611caf57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590613db9565b60405180910390fd5b5b43601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d965750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3d57600d54811115611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613e4b565b60405180910390fd5b600c54611dec83610da2565b82611df7919061352a565b1115611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613eb7565b60405180910390fd5b611fdb565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee05750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2f57600d54811115611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190613f49565b60405180910390fd5b611fda565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd957600c54611f8c83610da2565b82611f97919061352a565b1115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613eb7565b60405180910390fd5b5b5b5b5b6000611fe730610da2565b90506000600b548211905080801561200b5750600e60009054906101000a900460ff165b80156120245750600860149054906101000a900460ff16155b801561207a5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120d05750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121265750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216a576001600860146101000a81548160ff02191690831515021790555061214e612c4d565b6000600860146101000a81548160ff0219169083151502179055505b6000600860149054906101000a900460ff161580156121d25750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156122285750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000811561235557601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122b3576122ac606461229e600f5488612c8b90919063ffffffff16565b612ca190919063ffffffff16565b9050612331565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123305761232d606461231f60105488612c8b90919063ffffffff16565b612ca190919063ffffffff16565b90505b5b6000811115612346576123458730836129d7565b5b80856123529190613f69565b94505b601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b1576123b087612cb7565b5b6123bc8787876129d7565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061400f565b60405180910390fd5b61244182600083612d41565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906140a1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161257a9190612f36565b60405180910390a361258e83600084612d46565b505050565b61259b61175f565b73ffffffffffffffffffffffffffffffffffffffff166125b9610fbf565b73ffffffffffffffffffffffffffffffffffffffff161461260f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126069061410d565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff8111156127955761279461319e565b5b6040519080825280602002602001820160405280156127c35781602001602082028036833780820191505090505b50905030816000815181106127db576127da613484565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a49190614142565b816001815181106128b8576128b7613484565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061291d307f000000000000000000000000000000000000000000000000000000000000000084611767565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129a1959493929190614268565b600060405180830381600087803b1580156129bb57600080fd5b505af11580156129cf573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aac90613d4d565b60405180910390fd5b612ac0838383612d41565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d90614334565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c349190612f36565b60405180910390a3612c47848484612d46565b50505050565b6000612c5830610da2565b905060008103612c685750612c89565b6000819050600b54811115612c7d57600b5490505b612c8681612778565b50505b565b60008183612c99919061386c565b905092915050565b60008183612caf91906138dd565b905092915050565b612cff601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4b565b612d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d35906143c6565b60405180910390fd5b50565b505050565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d91578082015181840152602081019050612d76565b60008484015250505050565b6000601f19601f8301169050919050565b6000612db982612d57565b612dc38185612d62565b9350612dd3818560208601612d73565b612ddc81612d9d565b840191505092915050565b60006020820190508181036000830152612e018184612dae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4882612e1d565b9050919050565b612e5881612e3d565b8114612e6357600080fd5b50565b600081359050612e7581612e4f565b92915050565b6000819050919050565b612e8e81612e7b565b8114612e9957600080fd5b50565b600081359050612eab81612e85565b92915050565b60008060408385031215612ec857612ec7612e13565b5b6000612ed685828601612e66565b9250506020612ee785828601612e9c565b9150509250929050565b60008115159050919050565b612f0681612ef1565b82525050565b6000602082019050612f216000830184612efd565b92915050565b612f3081612e7b565b82525050565b6000602082019050612f4b6000830184612f27565b92915050565b600080600060608486031215612f6a57612f69612e13565b5b6000612f7886828701612e66565b9350506020612f8986828701612e66565b9250506040612f9a86828701612e9c565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612fc957612fc8612fa4565b5b8235905067ffffffffffffffff811115612fe657612fe5612fa9565b5b60208301915083602082028301111561300257613001612fae565b5b9250929050565b60008060006040848603121561302257613021612e13565b5b600084013567ffffffffffffffff8111156130405761303f612e18565b5b61304c86828701612fb3565b9350935050602061305f86828701612e9c565b9150509250925092565b600060ff82169050919050565b61307f81613069565b82525050565b600060208201905061309a6000830184613076565b92915050565b6000602082840312156130b6576130b5612e13565b5b60006130c484828501612e9c565b91505092915050565b6130d681612e3d565b82525050565b60006020820190506130f160008301846130cd565b92915050565b60006020828403121561310d5761310c612e13565b5b600061311b84828501612e66565b91505092915050565b6000819050919050565b600061314961314461313f84612e1d565b613124565b612e1d565b9050919050565b600061315b8261312e565b9050919050565b600061316d82613150565b9050919050565b61317d81613162565b82525050565b60006020820190506131986000830184613174565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131d682612d9d565b810181811067ffffffffffffffff821117156131f5576131f461319e565b5b80604052505050565b6000613208612e09565b905061321482826131cd565b919050565b600067ffffffffffffffff8211156132345761323361319e565b5b602082029050602081019050919050565b600061325861325384613219565b6131fe565b9050808382526020820190506020840283018581111561327b5761327a612fae565b5b835b818110156132a457806132908882612e66565b84526020840193505060208101905061327d565b5050509392505050565b600082601f8301126132c3576132c2612fa4565b5b81356132d3848260208601613245565b91505092915050565b6132e581612ef1565b81146132f057600080fd5b50565b600081359050613302816132dc565b92915050565b6000806040838503121561331f5761331e612e13565b5b600083013567ffffffffffffffff81111561333d5761333c612e18565b5b613349858286016132ae565b925050602061335a858286016132f3565b9150509250929050565b6000806040838503121561337b5761337a612e13565b5b600061338985828601612e66565b925050602061339a858286016132f3565b9150509250929050565b600080604083850312156133bb576133ba612e13565b5b60006133c985828601612e9c565b92505060206133da85828601612e9c565b9150509250929050565b600080604083850312156133fb576133fa612e13565b5b600061340985828601612e66565b925050602061341a85828601612e66565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061346b57607f821691505b60208210810361347e5761347d613424565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134ed82612e7b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361351f5761351e6134b3565b5b600182019050919050565b600061353582612e7b565b915061354083612e7b565b9250828201905080821115613558576135576134b3565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613594601683612d62565b915061359f8261355e565b602082019050919050565b600060208201905081810360008301526135c381613587565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613626603983612d62565b9150613631826135ca565b604082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006136b8602583612d62565b91506136c38261365c565b604082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561374557808604811115613721576137206134b3565b5b60018516156137305780820291505b808102905061373e856136ee565b9450613705565b94509492505050565b60008261375e576001905061381a565b8161376c576000905061381a565b8160018114613782576002811461378c576137bb565b600191505061381a565b60ff84111561379e5761379d6134b3565b5b8360020a9150848211156137b5576137b46134b3565b5b5061381a565b5060208310610133831016604e8410600b84101617156137f05782820a9050838111156137eb576137ea6134b3565b5b61381a565b6137fd84848460016136fb565b92509050818404811115613814576138136134b3565b5b81810290505b9392505050565b600061382c82612e7b565b915061383783613069565b92506138647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461374e565b905092915050565b600061387782612e7b565b915061388283612e7b565b925082820261389081612e7b565b915082820484148315176138a7576138a66134b3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138e882612e7b565b91506138f383612e7b565b925082613903576139026138ae565b5b828204905092915050565b60008151905061391d81612e85565b92915050565b60006020828403121561393957613938612e13565b5b60006139478482850161390e565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b6000613986601083612d62565b915061399182613950565b602082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b60006040820190506139d160008301856130cd565b6139de6020830184612f27565b9392505050565b6000815190506139f4816132dc565b92915050565b600060208284031215613a1057613a0f612e13565b5b6000613a1e848285016139e5565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a83602683612d62565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b15602483612d62565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba7602283612d62565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613c13601d83612d62565b9150613c1e82613bdd565b602082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca5602583612d62565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d37602383612d62565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613da3601683612d62565b9150613dae82613d6d565b602082019050919050565b60006020820190508181036000830152613dd281613d96565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613e35603583612d62565b9150613e4082613dd9565b604082019050919050565b60006020820190508181036000830152613e6481613e28565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613ea1601383612d62565b9150613eac82613e6b565b602082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613f33603683612d62565b9150613f3e82613ed7565b604082019050919050565b60006020820190508181036000830152613f6281613f26565b9050919050565b6000613f7482612e7b565b9150613f7f83612e7b565b9250828203905081811115613f9757613f966134b3565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff9602183612d62565b915061400482613f9d565b604082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602283612d62565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f7602083612d62565b9150614102826140c1565b602082019050919050565b60006020820190508181036000830152614126816140ea565b9050919050565b60008151905061413c81612e4f565b92915050565b60006020828403121561415857614157612e13565b5b60006141668482850161412d565b91505092915050565b6000819050919050565b600061419461418f61418a8461416f565b613124565b612e7b565b9050919050565b6141a481614179565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141df81612e3d565b82525050565b60006141f183836141d6565b60208301905092915050565b6000602082019050919050565b6000614215826141aa565b61421f81856141b5565b935061422a836141c6565b8060005b8381101561425b57815161424288826141e5565b975061424d836141fd565b92505060018101905061422e565b5085935050505092915050565b600060a08201905061427d6000830188612f27565b61428a602083018761419b565b818103604083015261429c818661420a565b90506142ab60608301856130cd565b6142b86080830184612f27565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061431e602683612d62565b9150614329826142c2565b604082019050919050565b6000602082019050818103600083015261434d81614311565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006143b0602483612d62565b91506143bb82614354565b604082019050919050565b600060208201905081810360008301526143df816143a3565b905091905056fea2646970667358221220d79fb14f0c57355b13d8fb91fa63e1ca899b71503261f35d99aa58da1adb2e0964736f6c63430008120033000000000000000000000000e401466aa5bcecd30c5983143d2ce960d60ec3180000000000000000000000000000000000000000000000000000000000000002