60806040526b0cecb8f27f4200f3a00000006008556b0cecb8f27f4200f3a00000006009556000600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055503480156200008257600080fd5b506040518060400160405280600d81526020017f5969656c6450726f746f636f6c000000000000000000000000000000000000008152506040518060400160405280600381526020017f59505400000000000000000000000000000000000000000000000000000000008152508160039081620001009190620007c0565b508060049081620001129190620007c0565b505050600062000127620002c760201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000238816001620002cf60201b60201c565b6200025a6200024c620003cc60201b60201c565b6001620002cf60201b60201c565b6200026d306001620002cf60201b60201c565b6200028261dead6001620002cf60201b60201c565b620002a1306c0112a65a21103a943908000000620003f660201b60201c565b620002bf826b3077b58d5d37839198000000620003f660201b60201c565b505062000a34565b600033905090565b620002df620002c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000371576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003689062000908565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000468576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200045f906200097a565b60405180910390fd5b80600260008282546200047c9190620009cb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004d39190620009cb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200053a919062000a17565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005c857607f821691505b602082108103620005de57620005dd62000580565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000609565b62000654868362000609565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006a16200069b62000695846200066c565b62000676565b6200066c565b9050919050565b6000819050919050565b620006bd8362000680565b620006d5620006cc82620006a8565b84845462000616565b825550505050565b600090565b620006ec620006dd565b620006f9818484620006b2565b505050565b5b81811015620007215762000715600082620006e2565b600181019050620006ff565b5050565b601f82111562000770576200073a81620005e4565b6200074584620005f9565b8101602085101562000755578190505b6200076d6200076485620005f9565b830182620006fe565b50505b505050565b600082821c905092915050565b6000620007956000198460080262000775565b1980831691505092915050565b6000620007b0838362000782565b9150826002028217905092915050565b620007cb8262000546565b67ffffffffffffffff811115620007e757620007e662000551565b5b620007f38254620005af565b6200080082828562000725565b600060209050601f83116001811462000838576000841562000823578287015190505b6200082f8582620007a2565b8655506200089f565b601f1984166200084886620005e4565b60005b8281101562000872578489015182556001820191506020850194506020810190506200084b565b868310156200089257848901516200088e601f89168262000782565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620008f0602083620008a7565b9150620008fd82620008b8565b602082019050919050565b600060208201905081810360008301526200092381620008e1565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000962601f83620008a7565b91506200096f826200092a565b602082019050919050565b60006020820190508181036000830152620009958162000953565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009d8826200066c565b9150620009e5836200066c565b925082820190508082111562000a0057620009ff6200099c565b5b92915050565b62000a11816200066c565b82525050565b600060208201905062000a2e600083018462000a06565b92915050565b61340b8062000a446000396000f3fe60806040526004361061016a5760003560e01c80637571336a116100d1578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461051c578063f2fde38b14610559578063f8b45b0514610582578063ffb54a99146105ad57610171565b8063a9059cbb14610489578063c876d0b9146104c6578063c8c8ebe4146104f157610171565b80637571336a1461039a5780638a8c523c146103c35780638da5cb5b146103cd57806395d89b41146103f85780639a7a23d614610423578063a457c2d71461044c57610171565b80633950935111610123578063395093511461029c578063452ed4f1146102d95780634a62bb651461030457806370a082311461032f578063715018a61461036c578063751039fc1461038357610171565b806306fdde03146101765780630758d924146101a1578063095ea7b3146101cc57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105d8565b60405161019891906124eb565b60405180910390f35b3480156101ad57600080fd5b506101b661066a565b6040516101c3919061258c565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612620565b610690565b604051610200919061267b565b60405180910390f35b34801561021557600080fd5b5061021e6106ae565b60405161022b91906126a5565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906126c0565b6106b8565b604051610268919061267b565b60405180910390f35b34801561027d57600080fd5b506102866107b0565b604051610293919061272f565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190612620565b6107b9565b6040516102d0919061267b565b60405180910390f35b3480156102e557600080fd5b506102ee610865565b6040516102fb9190612759565b60405180910390f35b34801561031057600080fd5b5061031961088b565b604051610326919061267b565b60405180910390f35b34801561033b57600080fd5b5061035660048036038101906103519190612774565b61089e565b60405161036391906126a5565b60405180910390f35b34801561037857600080fd5b506103816108e6565b005b34801561038f57600080fd5b50610398610a3e565b005b3480156103a657600080fd5b506103c160048036038101906103bc91906127cd565b610b39565b005b6103cb610c2b565b005b3480156103d957600080fd5b506103e2611166565b6040516103ef9190612759565b60405180910390f35b34801561040457600080fd5b5061040d611190565b60405161041a91906124eb565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906127cd565b611222565b005b34801561045857600080fd5b50610473600480360381019061046e9190612620565b611357565b604051610480919061267b565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190612620565b611442565b6040516104bd919061267b565b60405180910390f35b3480156104d257600080fd5b506104db611460565b6040516104e8919061267b565b60405180910390f35b3480156104fd57600080fd5b50610506611473565b60405161051391906126a5565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e919061280d565b611479565b60405161055091906126a5565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190612774565b611500565b005b34801561058e57600080fd5b506105976116c6565b6040516105a491906126a5565b60405180910390f35b3480156105b957600080fd5b506105c26116cc565b6040516105cf919061267b565b60405180910390f35b6060600380546105e79061287c565b80601f01602080910402602001604051908101604052809291908181526020018280546106139061287c565b80156106605780601f1061063557610100808354040283529160200191610660565b820191906000526020600020905b81548152906001019060200180831161064357829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006106a461069d6116df565b84846116e7565b6001905092915050565b6000600254905090565b60006106c58484846118b0565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107106116df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610790576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107879061291f565b60405180910390fd5b6107a48561079c6116df565b8584036116e7565b60019150509392505050565b60006012905090565b600061085b6107c66116df565b8484600160006107d46116df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610856919061296e565b6116e7565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ee6116df565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906129ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a466116df565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc906129ee565b60405180910390fd5b6000600a60016101000a81548160ff0219169083151502179055506000600e60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b610b416116df565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc7906129ee565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c336116df565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb9906129ee565b60405180910390fd5b600a60009054906101000a900460ff1615610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612a5a565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da39190612a8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e509190612a8f565b6040518363ffffffff1660e01b8152600401610e6d929190612abc565b6020604051808303816000875af1158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb09190612a8f565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f1d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610b39565b610f4a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161205f565b610f7e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f796106ae565b6116e7565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fc73061089e565b600080610fd2611166565b426040518863ffffffff1660e01b8152600401610ff496959493929190612b20565b60606040518083038185885af1158015611012573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110379190612b96565b505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110d9929190612be9565b6020604051808303816000875af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612c27565b506001600a60006101000a81548160ff0219169083151502179055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461119f9061287c565b80601f01602080910402602001604051908101604052809291908181526020018280546111cb9061287c565b80156112185780601f106111ed57610100808354040283529160200191611218565b820191906000526020600020905b8154815290600101906020018083116111fb57829003601f168201915b5050505050905090565b61122a6116df565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b0906129ee565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612cc6565b60405180910390fd5b611353828261205f565b5050565b600080600160006113666116df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612d58565b60405180910390fd5b61143761142e6116df565b858584036116e7565b600191505092915050565b600061145661144f6116df565b84846118b0565b6001905092915050565b600e60009054906101000a900460ff1681565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115086116df565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158e906129ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90612dea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600a60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174d90612e7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90612f0e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118a391906126a5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690612fa0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361198e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198590613032565b60405180910390fd5b600081036119a7576119a283836000612109565b61205a565b600a60019054906101000a900460ff161561204e576119c4611166565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a325750611a02611166565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a6a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611add575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204d57600a60009054906101000a900460ff16611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b289061309e565b60405180910390fd5b600e60009054906101000a900460ff1615611d6457600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611bf25750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d6357600243611c0491906130be565b600d60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054108015611c9b5750600243611c5991906130be565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd190613164565b60405180910390fd5b43600d60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e075750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eae57600854811115611e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e48906131f6565b60405180910390fd5b600954611e5d8361089e565b82611e68919061296e565b1115611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea090613262565b60405180910390fd5b61204c565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f515750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fa057600854811115611f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f92906132f4565b60405180910390fd5b61204b565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661204a57600954611ffd8361089e565b82612008919061296e565b1115612049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204090613262565b60405180910390fd5b5b5b5b5b5b612059838383612109565b5b505050565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506120bf82612372565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f90612fa0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121de90613032565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561226d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226490613386565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612300919061296e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161236491906126a5565b60405180910390a350505050565b612408816040516024016123869190612759565b6040516020818303038152906040527f2c2ecbc2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061240b565b50565b6124228161241a612425612446565b63ffffffff16565b50565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b612451819050919050565b6124596133a6565b565b600081519050919050565b600082825260208201905092915050565b60005b8381101561249557808201518184015260208101905061247a565b60008484015250505050565b6000601f19601f8301169050919050565b60006124bd8261245b565b6124c78185612466565b93506124d7818560208601612477565b6124e0816124a1565b840191505092915050565b6000602082019050818103600083015261250581846124b2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061255261254d6125488461250d565b61252d565b61250d565b9050919050565b600061256482612537565b9050919050565b600061257682612559565b9050919050565b6125868161256b565b82525050565b60006020820190506125a1600083018461257d565b92915050565b600080fd5b60006125b78261250d565b9050919050565b6125c7816125ac565b81146125d257600080fd5b50565b6000813590506125e4816125be565b92915050565b6000819050919050565b6125fd816125ea565b811461260857600080fd5b50565b60008135905061261a816125f4565b92915050565b60008060408385031215612637576126366125a7565b5b6000612645858286016125d5565b92505060206126568582860161260b565b9150509250929050565b60008115159050919050565b61267581612660565b82525050565b6000602082019050612690600083018461266c565b92915050565b61269f816125ea565b82525050565b60006020820190506126ba6000830184612696565b92915050565b6000806000606084860312156126d9576126d86125a7565b5b60006126e7868287016125d5565b93505060206126f8868287016125d5565b92505060406127098682870161260b565b9150509250925092565b600060ff82169050919050565b61272981612713565b82525050565b60006020820190506127446000830184612720565b92915050565b612753816125ac565b82525050565b600060208201905061276e600083018461274a565b92915050565b60006020828403121561278a576127896125a7565b5b6000612798848285016125d5565b91505092915050565b6127aa81612660565b81146127b557600080fd5b50565b6000813590506127c7816127a1565b92915050565b600080604083850312156127e4576127e36125a7565b5b60006127f2858286016125d5565b9250506020612803858286016127b8565b9150509250929050565b60008060408385031215612824576128236125a7565b5b6000612832858286016125d5565b9250506020612843858286016125d5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061289457607f821691505b6020821081036128a7576128a661284d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612909602883612466565b9150612914826128ad565b604082019050919050565b60006020820190508181036000830152612938816128fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612979826125ea565b9150612984836125ea565b925082820190508082111561299c5761299b61293f565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129d8602083612466565b91506129e3826129a2565b602082019050919050565b60006020820190508181036000830152612a07816129cb565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b6000612a44601783612466565b9150612a4f82612a0e565b602082019050919050565b60006020820190508181036000830152612a7381612a37565b9050919050565b600081519050612a89816125be565b92915050565b600060208284031215612aa557612aa46125a7565b5b6000612ab384828501612a7a565b91505092915050565b6000604082019050612ad1600083018561274a565b612ade602083018461274a565b9392505050565b6000819050919050565b6000612b0a612b05612b0084612ae5565b61252d565b6125ea565b9050919050565b612b1a81612aef565b82525050565b600060c082019050612b35600083018961274a565b612b426020830188612696565b612b4f6040830187612b11565b612b5c6060830186612b11565b612b69608083018561274a565b612b7660a0830184612696565b979650505050505050565b600081519050612b90816125f4565b92915050565b600080600060608486031215612baf57612bae6125a7565b5b6000612bbd86828701612b81565b9350506020612bce86828701612b81565b9250506040612bdf86828701612b81565b9150509250925092565b6000604082019050612bfe600083018561274a565b612c0b6020830184612696565b9392505050565b600081519050612c21816127a1565b92915050565b600060208284031215612c3d57612c3c6125a7565b5b6000612c4b84828501612c12565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000612cb0603983612466565b9150612cbb82612c54565b604082019050919050565b60006020820190508181036000830152612cdf81612ca3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d42602583612466565b9150612d4d82612ce6565b604082019050919050565b60006020820190508181036000830152612d7181612d35565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612dd4602683612466565b9150612ddf82612d78565b604082019050919050565b60006020820190508181036000830152612e0381612dc7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e66602483612466565b9150612e7182612e0a565b604082019050919050565b60006020820190508181036000830152612e9581612e59565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ef8602283612466565b9150612f0382612e9c565b604082019050919050565b60006020820190508181036000830152612f2781612eeb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f8a602583612466565b9150612f9582612f2e565b604082019050919050565b60006020820190508181036000830152612fb981612f7d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061301c602383612466565b915061302782612fc0565b604082019050919050565b6000602082019050818103600083015261304b8161300f565b9050919050565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b6000613088601783612466565b915061309382613052565b602082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b60006130c9826125ea565b91506130d4836125ea565b92508282039050818111156130ec576130eb61293f565b5b92915050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b600061314e603583612466565b9150613159826130f2565b604082019050919050565b6000602082019050818103600083015261317d81613141565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006131e0603583612466565b91506131eb82613184565b604082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061324c601383612466565b915061325782613216565b602082019050919050565b6000602082019050818103600083015261327b8161323f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006132de603683612466565b91506132e982613282565b604082019050919050565b6000602082019050818103600083015261330d816132d1565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613370602683612466565b915061337b82613314565b604082019050919050565b6000602082019050818103600083015261339f81613363565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fdfea26469706673582212207d73b2df4438b9a8b37a51d5ec2295754026f4098c0692418e7f8408d83b85fa64736f6c63430008130033