0x60806040525f60405161001190610492565b604051809103905ff08015801561002a573d5f803e3d5ffd5b509050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663c9c6539682737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100df91906104fd565b6040518363ffffffff1660e01b81526004016100fc929190610537565b6020604051808303815f875af1158015610118573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013c91906104fd565b508073ffffffffffffffffffffffffffffffffffffffff1663293230b86040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610182575f80fd5b505af1158015610194573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b81526004016101d1919061055e565b5f604051808303815f87803b1580156101e8575f80fd5b505af11580156101fa573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610268919061055e565b602060405180830381865afa158015610283573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a791906105aa565b6040518363ffffffff1660e01b81526004016102c49291906105e4565b6020604051808303815f875af11580156102e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103049190610640565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71967016345785d8a0000838473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610378919061055e565b602060405180830381865afa158015610393573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b791906105aa565b5f808773ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610402573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042691906104fd565b426040518863ffffffff1660e01b8152600401610448969594939291906106ad565b60606040518083038185885af1158015610464573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610489919061070c565b5050505061075c565b613f8b806107a683390190565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104cc826104a3565b9050919050565b6104dc816104c2565b81146104e6575f80fd5b50565b5f815190506104f7816104d3565b92915050565b5f602082840312156105125761051161049f565b5b5f61051f848285016104e9565b91505092915050565b610531816104c2565b82525050565b5f60408201905061054a5f830185610528565b6105576020830184610528565b9392505050565b5f6020820190506105715f830184610528565b92915050565b5f819050919050565b61058981610577565b8114610593575f80fd5b50565b5f815190506105a481610580565b92915050565b5f602082840312156105bf576105be61049f565b5b5f6105cc84828501610596565b91505092915050565b6105de81610577565b82525050565b5f6040820190506105f75f830185610528565b61060460208301846105d5565b9392505050565b5f8115159050919050565b61061f8161060b565b8114610629575f80fd5b50565b5f8151905061063a81610616565b92915050565b5f602082840312156106555761065461049f565b5b5f6106628482850161062c565b91505092915050565b5f819050919050565b5f819050919050565b5f61069761069261068d8461066b565b610674565b610577565b9050919050565b6106a78161067d565b82525050565b5f60c0820190506106c05f830189610528565b6106cd60208301886105d5565b6106da604083018761069e565b6106e7606083018661069e565b6106f46080830185610528565b61070160a08301846105d5565b979650505050505050565b5f805f606084860312156107235761072261049f565b5b5f61073086828701610596565b935050602061074186828701610596565b925050604061075286828701610596565b9150509250925092565b603e806107685f395ff3fe60806040525f80fdfea26469706673582212209b27f56ac220b3a2e063eba0245a5ec57616a4462b2eeabd8cb890887e1bd2a264736f6c634300081a003360a06040526040518060400160405280600a81526020017f537461736820436f696e000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5354415348000000000000000000000000000000000000000000000000000000815250816003908161007f919061080b565b50806004908161008f919061080b565b5050506100ae6100a361035b60201b60201c565b61036260201b60201c565b5f6b015b6a759f4835dc2400000090505f6100e660646100d8605a8561042560201b90919060201c565b61043a60201b90919060201c565b90506101106103e861010260058561042560201b90919060201c565b61043a60201b90919060201c565b60078190555073420c37737a412806bdbec5e3bb8d82d27914942073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505f60088190555060186009819055506001600a819055506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061034432610339838561044f60201b90919060201c565b61046460201b60201c565b610354338261046460201b60201c565b5050610aab565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836104329190610907565b905092915050565b5f81836104479190610975565b905092915050565b5f818361045c91906109a5565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c990610a32565b60405180910390fd5b6104e35f83836105c760201b60201c565b8060025f8282546104f49190610a50565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105469190610a50565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105aa9190610a92565b60405180910390a36105c35f83836105cc60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061064c57607f821691505b60208210810361065f5761065e610608565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610686565b6106cb8683610686565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61070f61070a610705846106e3565b6106ec565b6106e3565b9050919050565b5f819050919050565b610728836106f5565b61073c61073482610716565b848454610692565b825550505050565b5f90565b610750610744565b61075b81848461071f565b505050565b5b8181101561077e576107735f82610748565b600181019050610761565b5050565b601f8211156107c35761079481610665565b61079d84610677565b810160208510156107ac578190505b6107c06107b885610677565b830182610760565b50505b505050565b5f82821c905092915050565b5f6107e35f19846008026107c8565b1980831691505092915050565b5f6107fb83836107d4565b9150826002028217905092915050565b610814826105d1565b67ffffffffffffffff81111561082d5761082c6105db565b5b6108378254610635565b610842828285610782565b5f60209050601f831160018114610873575f8415610861578287015190505b61086b85826107f0565b8655506108d2565b601f19841661088186610665565b5f5b828110156108a857848901518255600182019150602085019450602081019050610883565b868310156108c557848901516108c1601f8916826107d4565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610911826106e3565b915061091c836106e3565b925082820261092a816106e3565b91508282048414831517610941576109406108da565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61097f826106e3565b915061098a836106e3565b92508261099a57610999610948565b5b828204905092915050565b5f6109af826106e3565b91506109ba836106e3565b92508282039050818111156109d2576109d16108da565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a1c601f836109d8565b9150610a27826109e8565b602082019050919050565b5f6020820190508181035f830152610a4981610a10565b9050919050565b5f610a5a826106e3565b9150610a65836106e3565b9250828201905080821115610a7d57610a7c6108da565b5b92915050565b610a8c816106e3565b82525050565b5f602082019050610aa55f830184610a83565b92915050565b6080516134a5610ae65f395f818161060f01528181610d5e015281816110820152818161119c01528181611ebb0152611fde01526134a55ff3fe608060405260043610610184575f3560e01c80638bcea939116100d0578063ac3c457311610089578063dd62ed3e11610063578063dd62ed3e14610557578063f1bab2ec14610593578063f2fde38b146105bd578063f442d3fb146105e55761018b565b8063ac3c4573146104d9578063cc1776d314610503578063d51692db1461052d5761018b565b80638bcea939146103bb5780638da5cb5b146103e557806395d89b411461040f5780639e8c708e14610439578063a457c2d714610461578063a9059cbb1461049d5761018b565b8063293230b81161013d5780634f7041a5116101175780634f7041a514610315578063704ce43e1461033f57806370a0823114610369578063715018a6146103a55761018b565b8063293230b814610299578063313ce567146102af57806339509351146102d95761018b565b80630614117a1461018f57806306fdde03146101a557806307783fff146101cf578063095ea7b3146101f757806318160ddd1461023357806323b872dd1461025d5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a361060d565b005b3480156101b0575f80fd5b506101b96106e7565b6040516101c691906123b8565b60405180910390f35b3480156101da575f80fd5b506101f560048036038101906101f0919061240f565b610777565b005b348015610202575f80fd5b5061021d600480360381019061021891906124b9565b61086a565b60405161022a9190612511565b60405180910390f35b34801561023e575f80fd5b5061024761088c565b6040516102549190612539565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190612552565b610895565b6040516102909190612511565b60405180910390f35b3480156102a4575f80fd5b506102ad6108c3565b005b3480156102ba575f80fd5b506102c3610afa565b6040516102d091906125bd565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa91906124b9565b610b02565b60405161030c9190612511565b60405180910390f35b348015610320575f80fd5b50610329610ba7565b6040516103369190612539565b60405180910390f35b34801561034a575f80fd5b50610353610bad565b6040516103609190612539565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a91906125d6565b610bb3565b60405161039c9190612539565b60405180910390f35b3480156103b0575f80fd5b506103b9610bf8565b005b3480156103c6575f80fd5b506103cf610c7f565b6040516103dc9190612610565b60405180910390f35b3480156103f0575f80fd5b506103f9610ca4565b6040516104069190612610565b60405180910390f35b34801561041a575f80fd5b50610423610ccc565b60405161043091906123b8565b60405180910390f35b348015610444575f80fd5b5061045f600480360381019061045a9190612664565b610d5c565b005b34801561046c575f80fd5b50610487600480360381019061048291906124b9565b610ee6565b6040516104949190612511565b60405180910390f35b3480156104a8575f80fd5b506104c360048036038101906104be91906124b9565b610fca565b6040516104d09190612511565b60405180910390f35b3480156104e4575f80fd5b506104ed610fec565b6040516104fa9190612539565b60405180910390f35b34801561050e575f80fd5b50610517610ff2565b6040516105249190612539565b60405180910390f35b348015610538575f80fd5b50610541610ff8565b60405161054e9190612539565b60405180910390f35b348015610562575f80fd5b5061057d6004803603810190610578919061268f565b610ffe565b60405161058a9190612539565b60405180910390f35b34801561059e575f80fd5b506105a7611080565b6040516105b49190612610565b60405180910390f35b3480156105c8575f80fd5b506105e360048036038101906105de91906125d6565b6110a4565b005b3480156105f0575f80fd5b5061060b600480360381019061060691906126cd565b61119a565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610699575061066a610ca4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106a1575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156106e4573d5f803e3d5ffd5b50565b6060600380546106f690612725565b80601f016020809104026020016040519081016040528092919081815260200182805461072290612725565b801561076d5780601f106107445761010080835404028352916020019161076d565b820191905f5260205f20905b81548152906001019060200180831161075057829003601f168201915b5050505050905090565b61077f61131a565b73ffffffffffffffffffffffffffffffffffffffff1661079d610ca4565b73ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061279f565b60405180910390fd5b5f8311158015610804575060188211155b8015610811575060018111155b610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061282d565b60405180910390fd5b826008819055508160098190555080600a81905550505050565b5f8061087461131a565b9050610881818585611321565b600191505092915050565b5f600254905090565b5f8061089f61131a565b90506108ac8582856114e4565b6108b785858561156f565b60019150509392505050565b6108cb61131a565b73ffffffffffffffffffffffffffffffffffffffff166108e9610ca4565b73ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109369061279f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c0919061285f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5d919061285f565b6040518363ffffffff1660e01b8152600401610a7a92919061288a565b602060405180830381865afa158015610a95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab9919061285f565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f6012905090565b5f80610b0c61131a565b9050610b9c81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b9791906128de565b611321565b600191505092915050565b60085481565b600a5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c0061131a565b73ffffffffffffffffffffffffffffffffffffffff16610c1e610ca4565b73ffffffffffffffffffffffffffffffffffffffff1614610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b9061279f565b60405180910390fd5b610c7d5f611a36565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cdb90612725565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0790612725565b8015610d525780601f10610d2957610100808354040283529160200191610d52565b820191905f5260205f20905b815481529060010190602001808311610d3557829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610de85750610db9610ca4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610df0575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e469190612610565b602060405180830381865afa158015610e61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e859190612925565b6040518363ffffffff1660e01b8152600401610ea2929190612950565b6020604051808303815f875af1158015610ebe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee291906129a1565b5050565b5f80610ef061131a565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890612a3c565b60405180910390fd5b610fbe8286868403611321565b60019250505092915050565b5f80610fd461131a565b9050610fe181858561156f565b600191505092915050565b60075481565b60095481565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110ac61131a565b73ffffffffffffffffffffffffffffffffffffffff166110ca610ca4565b73ffffffffffffffffffffffffffffffffffffffff1614611120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111179061279f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361118e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118590612aca565b60405180910390fd5b61119781611a36565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061122657506111f7610ca4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61122e575f80fd5b61125e620186a0611250600161124261088c565b611af990919063ffffffff16565b611b0e90919063ffffffff16565b8110156112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129790612b58565b60405180910390fd5b6112ce60646112c060026112b261088c565b611af990919063ffffffff16565b611b0e90919063ffffffff16565b811115611310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130790612be6565b60405180910390fd5b8060078190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690612c74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f490612d02565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d79190612539565b60405180910390a3505050565b5f6114ef8484610ffe565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611569578181101561155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290612d6a565b60405180910390fd5b6115688484848403611321565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490612df8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164290612e86565b60405180910390fd5b5f811161168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612f14565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806117295750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806117845750805b6117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612f7c565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905060075461187530610bb3565b1015801561188f5750600d5f9054906101000a900460ff16155b80156118985750815b80156118a2575082155b156118e3576001600d5f6101000a81548160ff0219169083151502179055506118c9611b23565b5f600d5f6101000a81548160ff0219169083151502179055505b5f816118f1576009546118f5565b6008545b90505f61190d600a548361209f90919063ffffffff16565b90505f811115611a2157841580156119315750600d5f9054906101000a900460ff16155b8015611942575082806119415750835b5b15611a20575f61196e6064611960848a611af990919063ffffffff16565b611b0e90919063ffffffff16565b9050611995826119878584611af990919063ffffffff16565b611b0e90919063ffffffff16565b600c5f8282546119a591906128de565b925050819055505f600a5411156119f5576119dd826119cf600a5484611af990919063ffffffff16565b611b0e90919063ffffffff16565b600b5f8282546119ed91906128de565b925050819055505b5f811115611a0957611a088930836120b4565b5b611a1c818861232990919063ffffffff16565b9650505b5b611a2c8888886120b4565b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611b069190612f9a565b905092915050565b5f8183611b1b9190613008565b905092915050565b5f611b2d30610bb3565b90505f611b47600b54600c5461209f90919063ffffffff16565b90505f808211611b57575f611b7f565b611b7e6064611b70600585611af990919063ffffffff16565b611b0e90919063ffffffff16565b5b90508082611b8d91906128de565b91505f831480611b9c57505f82145b15611ba95750505061209d565b600754831115611bb95760075492505b5f611bf46002611be685611bd8600b5489611af990919063ffffffff16565b611b0e90919063ffffffff16565b611b0e90919063ffffffff16565b90505f611c0a828661232990919063ffffffff16565b90505f4790505f600267ffffffffffffffff811115611c2c57611c2b613038565b5b604051908082528060200260200182016040528015611c5a5781602001602082028036833780820191505090505b50905030815f81518110611c7157611c70613065565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2c919061285f565b81600181518110611d4057611d3f613065565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9930737a250d5630b4cf539739df2c5dacb4c659f2488d85611321565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401611dee95949392919061318b565b5f604051808303815f87803b158015611e05575f80fd5b505af1158015611e17573d5f803e3d5ffd5b505050505f611e2f834761232990919063ffffffff16565b90505f611e5988611e4b600c5485611af990919063ffffffff16565b611b0e90919063ffffffff16565b90505f611e8189611e738a86611af990919063ffffffff16565b611b0e90919063ffffffff16565b90505f611ea982611e9b858761232990919063ffffffff16565b61232990919063ffffffff16565b90505f600b819055505f600c819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015611f1c573d5f803e3d5ffd5b5073c2db06b64d51787e7b7165eb2ec8642e8f792fb273ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611f74573d5f803e3d5ffd5b50611f9430737a250d5630b4cf539739df2c5dacb4c659f2488d8a611321565b5f88118015611fa257505f81115b1561206457737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308b5f807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b815260040161201f969594939291906131e3565b60606040518083038185885af115801561203b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120609190613242565b5050505b817f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050505050505050505b565b5f81836120ac91906128de565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211990613302565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218790613390565b60405180910390fd5b61219b83838361233e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561221e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122159061341e565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122ac91906128de565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123109190612539565b60405180910390a3612323848484612343565b50505050565b5f8183612336919061343c565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61238a82612348565b6123948185612352565b93506123a4818560208601612362565b6123ad81612370565b840191505092915050565b5f6020820190508181035f8301526123d08184612380565b905092915050565b5f80fd5b5f819050919050565b6123ee816123dc565b81146123f8575f80fd5b50565b5f81359050612409816123e5565b92915050565b5f805f60608486031215612426576124256123d8565b5b5f612433868287016123fb565b9350506020612444868287016123fb565b9250506040612455868287016123fb565b9150509250925092565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124888261245f565b9050919050565b6124988161247e565b81146124a2575f80fd5b50565b5f813590506124b38161248f565b92915050565b5f80604083850312156124cf576124ce6123d8565b5b5f6124dc858286016124a5565b92505060206124ed858286016123fb565b9150509250929050565b5f8115159050919050565b61250b816124f7565b82525050565b5f6020820190506125245f830184612502565b92915050565b612533816123dc565b82525050565b5f60208201905061254c5f83018461252a565b92915050565b5f805f60608486031215612569576125686123d8565b5b5f612576868287016124a5565b9350506020612587868287016124a5565b9250506040612598868287016123fb565b9150509250925092565b5f60ff82169050919050565b6125b7816125a2565b82525050565b5f6020820190506125d05f8301846125ae565b92915050565b5f602082840312156125eb576125ea6123d8565b5b5f6125f8848285016124a5565b91505092915050565b61260a8161247e565b82525050565b5f6020820190506126235f830184612601565b92915050565b5f6126338261247e565b9050919050565b61264381612629565b811461264d575f80fd5b50565b5f8135905061265e8161263a565b92915050565b5f60208284031215612679576126786123d8565b5b5f61268684828501612650565b91505092915050565b5f80604083850312156126a5576126a46123d8565b5b5f6126b2858286016124a5565b92505060206126c3858286016124a5565b9150509250929050565b5f602082840312156126e2576126e16123d8565b5b5f6126ef848285016123fb565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061273c57607f821691505b60208210810361274f5761274e6126f8565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612789602083612352565b915061279482612755565b602082019050919050565b5f6020820190508181035f8301526127b68161277d565b9050919050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f612817602e83612352565b9150612822826127bd565b604082019050919050565b5f6020820190508181035f8301526128448161280b565b9050919050565b5f815190506128598161248f565b92915050565b5f60208284031215612874576128736123d8565b5b5f6128818482850161284b565b91505092915050565b5f60408201905061289d5f830185612601565b6128aa6020830184612601565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128e8826123dc565b91506128f3836123dc565b925082820190508082111561290b5761290a6128b1565b5b92915050565b5f8151905061291f816123e5565b92915050565b5f6020828403121561293a576129396123d8565b5b5f61294784828501612911565b91505092915050565b5f6040820190506129635f830185612601565b612970602083018461252a565b9392505050565b612980816124f7565b811461298a575f80fd5b50565b5f8151905061299b81612977565b92915050565b5f602082840312156129b6576129b56123d8565b5b5f6129c38482850161298d565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612a26602583612352565b9150612a31826129cc565b604082019050919050565b5f6020820190508181035f830152612a5381612a1a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ab4602683612352565b9150612abf82612a5a565b604082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f612b42603883612352565b9150612b4d82612ae8565b604082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f612bd0603583612352565b9150612bdb82612b76565b604082019050919050565b5f6020820190508181035f830152612bfd81612bc4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c5e602483612352565b9150612c6982612c04565b604082019050919050565b5f6020820190508181035f830152612c8b81612c52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cec602283612352565b9150612cf782612c92565b604082019050919050565b5f6020820190508181035f830152612d1981612ce0565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612d54601d83612352565b9150612d5f82612d20565b602082019050919050565b5f6020820190508181035f830152612d8181612d48565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612de2602b83612352565b9150612ded82612d88565b604082019050919050565b5f6020820190508181035f830152612e0f81612dd6565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612e70602983612352565b9150612e7b82612e16565b604082019050919050565b5f6020820190508181035f830152612e9d81612e64565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612efe602a83612352565b9150612f0982612ea4565b604082019050919050565b5f6020820190508181035f830152612f2b81612ef2565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612f66601f83612352565b9150612f7182612f32565b602082019050919050565b5f6020820190508181035f830152612f9381612f5a565b9050919050565b5f612fa4826123dc565b9150612faf836123dc565b9250828202612fbd816123dc565b91508282048414831517612fd457612fd36128b1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613012826123dc565b915061301d836123dc565b92508261302d5761302c612fdb565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6130be6130b96130b484613092565b61309b565b6123dc565b9050919050565b6130ce816130a4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131068161247e565b82525050565b5f61311783836130fd565b60208301905092915050565b5f602082019050919050565b5f613139826130d4565b61314381856130de565b935061314e836130ee565b805f5b8381101561317e578151613165888261310c565b975061317083613123565b925050600181019050613151565b5085935050505092915050565b5f60a08201905061319e5f83018861252a565b6131ab60208301876130c5565b81810360408301526131bd818661312f565b90506131cc6060830185612601565b6131d9608083018461252a565b9695505050505050565b5f60c0820190506131f65f830189612601565b613203602083018861252a565b61321060408301876130c5565b61321d60608301866130c5565b61322a6080830185612601565b61323760a083018461252a565b979650505050505050565b5f805f60608486031215613259576132586123d8565b5b5f61326686828701612911565b935050602061327786828701612911565b925050604061328886828701612911565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132ec602583612352565b91506132f782613292565b604082019050919050565b5f6020820190508181035f830152613319816132e0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61337a602383612352565b915061338582613320565b604082019050919050565b5f6020820190508181035f8301526133a78161336e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613408602683612352565b9150613413826133ae565b604082019050919050565b5f6020820190508181035f830152613435816133fc565b9050919050565b5f613446826123dc565b9150613451836123dc565b9250828203905081811115613469576134686128b1565b5b9291505056fea2646970667358221220de24a5f08dbf1ed1b7f81f760ae9b2164b676943b42427ddbbfa4138b105a2f564736f6c634300081a0033