60e06040526100126104b460201b60201c565b600a61001e91906109c7565b6378a3ca0061002d9190610a11565b6080908152505f600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055505f60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60a0908152505f60c0908152505f600a55348015610107575f80fd5b506040518060400160405280600e81526020017f546865204d656d652047616d65730000000000000000000000000000000000008152506040518060400160405280600581526020017f4d474d45530000000000000000000000000000000000000000000000000000008152506101906101856104bc60201b60201c565b6104c360201b60201c565b816004908161019f9190610c83565b5080600590816101af9190610c83565b5050506101d6736e601f5bb9afbc97757ab268adb96c9a29375eb13361058460201b60201c565b61020a3361271061ffff1661271061ffff166080516101f59190610a11565b6101ff9190610d7f565b61060860201b60201c565b6001600760146101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610339573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035d9190610e0d565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040a9190610e0d565b6040518363ffffffff1660e01b8152600401610427929190610e47565b6020604051808303815f875af1158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190610e0d565b60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a8190555050610f41565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066d90610ec8565b60405180910390fd5b6106875f838361084c60201b60201c565b8060035f8282546106989190610ee6565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106eb9190610ee6565b9250508190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d15760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107c49190610f28565b60405180910390a3610837565b8173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161082e9190610f28565b60405180910390a35b6108485f838361085160201b60201c565b5050565b505050565b505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156108d8578086048111156108b4576108b3610856565b5b60018516156108c35780820291505b80810290506108d185610883565b9450610898565b94509492505050565b5f826108f057600190506109ab565b816108fd575f90506109ab565b8160018114610913576002811461091d5761094c565b60019150506109ab565b60ff84111561092f5761092e610856565b5b8360020a91508482111561094657610945610856565b5b506109ab565b5060208310610133831016604e8410600b84101617156109815782820a90508381111561097c5761097b610856565b5b6109ab565b61098e848484600161088f565b925090508184048111156109a5576109a4610856565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6109d1826109b2565b91506109dc836109bb565b9250610a097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846108e1565b905092915050565b5f610a1b826109b2565b9150610a26836109b2565b9250828202610a34816109b2565b91508282048414831517610a4b57610a4a610856565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610acd57607f821691505b602082108103610ae057610adf610a89565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b07565b610b4c8683610b07565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610b87610b82610b7d846109b2565b610b64565b6109b2565b9050919050565b5f819050919050565b610ba083610b6d565b610bb4610bac82610b8e565b848454610b13565b825550505050565b5f90565b610bc8610bbc565b610bd3818484610b97565b505050565b5b81811015610bf657610beb5f82610bc0565b600181019050610bd9565b5050565b601f821115610c3b57610c0c81610ae6565b610c1584610af8565b81016020851015610c24578190505b610c38610c3085610af8565b830182610bd8565b50505b505050565b5f82821c905092915050565b5f610c5b5f1984600802610c40565b1980831691505092915050565b5f610c738383610c4c565b9150826002028217905092915050565b610c8c82610a52565b67ffffffffffffffff811115610ca557610ca4610a5c565b5b610caf8254610ab6565b610cba828285610bfa565b5f60209050601f831160018114610ceb575f8415610cd9578287015190505b610ce38582610c68565b865550610d4a565b601f198416610cf986610ae6565b5f5b82811015610d2057848901518255600182019150602085019450602081019050610cfb565b86831015610d3d5784890151610d39601f891682610c4c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d89826109b2565b9150610d94836109b2565b925082610da457610da3610d52565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ddc82610db3565b9050919050565b610dec81610dd2565b8114610df6575f80fd5b50565b5f81519050610e0781610de3565b92915050565b5f60208284031215610e2257610e21610daf565b5b5f610e2f84828501610df9565b91505092915050565b610e4181610dd2565b82525050565b5f604082019050610e5a5f830185610e38565b610e676020830184610e38565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610eb2601f83610e6e565b9150610ebd82610e7e565b602082019050919050565b5f6020820190508181035f830152610edf81610ea6565b9050919050565b5f610ef0826109b2565b9150610efb836109b2565b9250828201905080821115610f1357610f12610856565b5b92915050565b610f22816109b2565b82525050565b5f602082019050610f3b5f830184610f19565b92915050565b60805160a05160c051612c58610f795f395f81816108c601526117ed01525f8181610af4015261177501525f6111620152612c585ff3fe608060405234801561000f575f80fd5b50600436106101e3575f3560e01c806370a082311161010d578063a9059cbb116100a0578063d5abeb011161006f578063d5abeb011461055d578063dd62ed3e1461057b578063f2fde38b146105ab578063f887ea40146105c7576101e3565b8063a9059cbb146104d7578063b48b7f7714610507578063beae207f14610537578063c9567bf914610553576101e3565b806396784f75116100dc57806396784f751461044f578063985bdfd11461046b578063a457c2d714610489578063a8aa1b31146104b9576101e3565b806370a08231146103d9578063715018a6146104095780638da5cb5b1461041357806395d89b4114610431576101e3565b806327c8f835116101855780634022b75e116101545780634022b75e1461036557806347062402146103815780634c255c971461039f5780634ca64b3a146103bd576101e3565b806327c8f835146102db5780632b14ca56146102f9578063313ce567146103175780633950935114610335576101e3565b806318160ddd116101c157806318160ddd1461025357806323b872dd146102715780632433cc80146102a157806325fa0b98146102bd576101e3565b806306fdde03146101e7578063095ea7b314610205578063158ef93e14610235575b5f80fd5b6101ef6105e5565b6040516101fc9190611f14565b60405180910390f35b61021f600480360381019061021a9190611fc9565b610675565b60405161022c9190612021565b60405180910390f35b61023d610692565b60405161024a9190612021565b60405180910390f35b61025b6106a5565b6040516102689190612049565b60405180910390f35b61028b60048036038101906102869190612062565b6106ae565b6040516102989190612021565b60405180910390f35b6102bb60048036038101906102b691906120dc565b6107a0565b005b6102c561088c565b6040516102d29190612021565b60405180910390f35b6102e361089f565b6040516102f09190612129565b60405180910390f35b6103016108c4565b60405161030e9190612049565b60405180910390f35b61031f6108e8565b60405161032c919061215d565b60405180910390f35b61034f600480360381019061034a9190611fc9565b6108f0565b60405161035c9190612021565b60405180910390f35b61037f600480360381019061037a919061222c565b610997565b005b610389610af2565b6040516103969190612049565b60405180910390f35b6103a7610b16565b6040516103b491906122d9565b60405180910390f35b6103d760048036038101906103d291906122f2565b610b1c565b005b6103f360048036038101906103ee919061234f565b610b7a565b6040516104009190612049565b60405180910390f35b610411610bc0565b005b61041b610c5f565b6040516104289190612129565b60405180910390f35b610439610c86565b6040516104469190611f14565b60405180910390f35b6104696004803603810190610464919061222c565b610d16565b005b610473610e71565b60405161048091906122d9565b60405180910390f35b6104a3600480360381019061049e9190611fc9565b610e77565b6040516104b09190612021565b60405180910390f35b6104c1610f5d565b6040516104ce9190612129565b60405180910390f35b6104f160048036038101906104ec9190611fc9565b610f82565b6040516104fe9190612021565b60405180910390f35b610521600480360381019061051c919061234f565b610f9f565b60405161052e9190612021565b60405180910390f35b610551600480360381019061054c919061237a565b610fbc565b005b61055b61105a565b005b610565611160565b6040516105729190612049565b60405180910390f35b610595600480360381019061059091906123a5565b611184565b6040516105a29190612049565b60405180910390f35b6105c560048036038101906105c0919061234f565b611206565b005b6105cf611314565b6040516105dc919061243e565b60405180910390f35b6060600480546105f490612484565b80601f016020809104026020016040519081016040528092919081815260200182805461062090612484565b801561066b5780601f106106425761010080835404028352916020019161066b565b820191905f5260205f20905b81548152906001019060200180831161064e57829003601f168201915b5050505050905090565b5f610688610681611339565b8484611340565b6001905092915050565b600760149054906101000a900460ff1681565b5f600354905090565b5f6106ba848484611503565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610701611339565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077790612524565b60405180910390fd5b6107948561078c611339565b858403611340565b60019150509392505050565b6107a8611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b9061258c565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600760159054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6012905090565b5f61098d6108fc611339565b848460025f610909611339565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461098891906125d7565b611340565b6001905092915050565b61099f611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a229061258c565b60405180910390fd5b5f5b84849050811015610aea57848482818110610a4b57610a4a61260a565b5b9050602002016020810190610a60919061234f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610ac157610ac061260a565b5b90506020020135604051610ad59190612049565b60405180910390a38080600101915050610a2d565b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61271081565b5f610b25611339565b90505f5b84849050811015610b7357610b6682868684818110610b4b57610b4a61260a565b5b9050602002016020810190610b60919061234f565b85611503565b8080600101915050610b29565b5050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bc8611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b9061258c565b60405180910390fd5b610c5d5f611992565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610c9590612484565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc190612484565b8015610d0c5780601f10610ce357610100808354040283529160200191610d0c565b820191905f5260205f20905b815481529060010190602001808311610cef57829003601f168201915b5050505050905090565b610d1e611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da19061258c565b60405180910390fd5b5f5b84849050811015610e6957848482818110610dca57610dc961260a565b5b9050602002016020810190610ddf919061234f565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610e4057610e3f61260a565b5b90506020020135604051610e549190612049565b60405180910390a38080600101915050610dac565b505050505050565b61271081565b5f8060025f610e84611339565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906126a7565b60405180910390fd5b610f52610f49611339565b85858403611340565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610f95610f8e611339565b8484611503565b6001905092915050565b600b602052805f5260405f205f915054906101000a900460ff1681565b610fc4611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611050576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110479061258c565b60405180910390fd5b80600a8190555050565b611062611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e59061258c565b60405180910390fd5b5f1515600760159054906101000a900460ff16151514611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113a9061270f565b60405180910390fd5b6001600760156101000a81548160ff021916908315150217905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61120e611339565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112919061258c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff9061279d565b60405180910390fd5b61131181611992565b50565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a59061282b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611413906128b9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114f69190612049565b60405180910390a3505050565b60011515600760149054906101000a900460ff16151514611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612921565b60405180910390fd5b60011515600760149054906101000a900460ff16151514801561158e57505f1515600760159054906101000a900460ff161515145b156116465761159b610c5f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061160657506115d7610c5f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90612989565b60405180910390fd5b5b5f8190505f73ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156116da57506116aa610c5f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561171957506116e9610c5f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611981575f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611797577f000000000000000000000000000000000000000000000000000000000000000090505b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611869577f00000000000000000000000000000000000000000000000000000000000000009050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661186857611867600a54611a53565b5b5b60011515600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615151480611912575060011515600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b1561191b575f90505b5f81111561197f575f61271061ffff16828561193791906129a7565b6119419190612a15565b9050808461194f9190612a45565b925061197d8660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a62565b505b505b61198c848483611a62565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b803a1115611a5f575f80fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac790612ae8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590612b76565b60405180910390fd5b611b49838383611e9a565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490612c04565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611c5d91906125d7565b9250508190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d43578273ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d369190612049565b60405180910390a3611e89565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e225760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e159190612049565b60405180910390a3611e88565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e7f9190612049565b60405180910390a35b5b611e94848484611e9f565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ee682611ea4565b611ef08185611eae565b9350611f00818560208601611ebe565b611f0981611ecc565b840191505092915050565b5f6020820190508181035f830152611f2c8184611edc565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f6582611f3c565b9050919050565b611f7581611f5b565b8114611f7f575f80fd5b50565b5f81359050611f9081611f6c565b92915050565b5f819050919050565b611fa881611f96565b8114611fb2575f80fd5b50565b5f81359050611fc381611f9f565b92915050565b5f8060408385031215611fdf57611fde611f34565b5b5f611fec85828601611f82565b9250506020611ffd85828601611fb5565b9150509250929050565b5f8115159050919050565b61201b81612007565b82525050565b5f6020820190506120345f830184612012565b92915050565b61204381611f96565b82525050565b5f60208201905061205c5f83018461203a565b92915050565b5f805f6060848603121561207957612078611f34565b5b5f61208686828701611f82565b935050602061209786828701611f82565b92505060406120a886828701611fb5565b9150509250925092565b6120bb81612007565b81146120c5575f80fd5b50565b5f813590506120d6816120b2565b92915050565b5f80604083850312156120f2576120f1611f34565b5b5f6120ff85828601611f82565b9250506020612110858286016120c8565b9150509250929050565b61212381611f5b565b82525050565b5f60208201905061213c5f83018461211a565b92915050565b5f60ff82169050919050565b61215781612142565b82525050565b5f6020820190506121705f83018461214e565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261219757612196612176565b5b8235905067ffffffffffffffff8111156121b4576121b361217a565b5b6020830191508360208202830111156121d0576121cf61217e565b5b9250929050565b5f8083601f8401126121ec576121eb612176565b5b8235905067ffffffffffffffff8111156122095761220861217a565b5b6020830191508360208202830111156122255761222461217e565b5b9250929050565b5f805f805f6060868803121561224557612244611f34565b5b5f61225288828901611f82565b955050602086013567ffffffffffffffff81111561227357612272611f38565b5b61227f88828901612182565b9450945050604086013567ffffffffffffffff8111156122a2576122a1611f38565b5b6122ae888289016121d7565b92509250509295509295909350565b5f61ffff82169050919050565b6122d3816122bd565b82525050565b5f6020820190506122ec5f8301846122ca565b92915050565b5f805f6040848603121561230957612308611f34565b5b5f84013567ffffffffffffffff81111561232657612325611f38565b5b61233286828701612182565b9350935050602061234586828701611fb5565b9150509250925092565b5f6020828403121561236457612363611f34565b5b5f61237184828501611f82565b91505092915050565b5f6020828403121561238f5761238e611f34565b5b5f61239c84828501611fb5565b91505092915050565b5f80604083850312156123bb576123ba611f34565b5b5f6123c885828601611f82565b92505060206123d985828601611f82565b9150509250929050565b5f819050919050565b5f6124066124016123fc84611f3c565b6123e3565b611f3c565b9050919050565b5f612417826123ec565b9050919050565b5f6124288261240d565b9050919050565b6124388161241e565b82525050565b5f6020820190506124515f83018461242f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061249b57607f821691505b6020821081036124ae576124ad612457565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61250e602883611eae565b9150612519826124b4565b604082019050919050565b5f6020820190508181035f83015261253b81612502565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612576602083611eae565b915061258182612542565b602082019050919050565b5f6020820190508181035f8301526125a38161256a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e182611f96565b91506125ec83611f96565b9250828201905080821115612604576126036125aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612691602583611eae565b915061269c82612637565b604082019050919050565b5f6020820190508181035f8301526126be81612685565b9050919050565b7f436f6e74726163743a2054726164696e67206973206f70656e656421000000005f82015250565b5f6126f9601c83611eae565b9150612704826126c5565b602082019050919050565b5f6020820190508181035f830152612726816126ed565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612787602683611eae565b91506127928261272d565b604082019050919050565b5f6020820190508181035f8301526127b48161277b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612815602483611eae565b9150612820826127bb565b604082019050919050565b5f6020820190508181035f83015261284281612809565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128a3602283611eae565b91506128ae82612849565b604082019050919050565b5f6020820190508181035f8301526128d081612897565b9050919050565b7f436f6e74726163743a206e6f7420696e697469616c697a6564210000000000005f82015250565b5f61290b601a83611eae565b9150612916826128d7565b602082019050919050565b5f6020820190508181035f830152612938816128ff565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f7420737461727465645f82015250565b5f612973602083611eae565b915061297e8261293f565b602082019050919050565b5f6020820190508181035f8301526129a081612967565b9050919050565b5f6129b182611f96565b91506129bc83611f96565b92508282026129ca81611f96565b915082820484148315176129e1576129e06125aa565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a1f82611f96565b9150612a2a83611f96565b925082612a3a57612a396129e8565b5b828204905092915050565b5f612a4f82611f96565b9150612a5a83611f96565b9250828203905081811115612a7257612a716125aa565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ad2602583611eae565b9150612add82612a78565b604082019050919050565b5f6020820190508181035f830152612aff81612ac6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b60602383611eae565b9150612b6b82612b06565b604082019050919050565b5f6020820190508181035f830152612b8d81612b54565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612bee602683611eae565b9150612bf982612b94565b604082019050919050565b5f6020820190508181035f830152612c1b81612be2565b905091905056fea2646970667358221220ea14a00f58c7f6ac354f51d0455221746067e6b18d48748cd5b6269f2c87b46864736f6c634300081a0033