0x60806040526040518060400160405280600f81526020017f4261646d696e746f6e546f6b656e630000000000000000000000000000000000815250600090816200004a9190620003ad565b506040518060400160405280600481526020017f424e54630000000000000000000000000000000000000000000000000000000081525060019081620000919190620003ad565b506b033b2e3c9fd0803ce80000006002556012600360006101000a81548160ff021916908360ff1602179055506001600360016101000a81548160ff021916908315150217905550348015620000e657600080fd5b50600254600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000494565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001b557607f821691505b602082108103620001cb57620001ca6200016d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001f6565b620002418683620001f6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200028e62000288620002828462000259565b62000263565b62000259565b9050919050565b6000819050919050565b620002aa836200026d565b620002c2620002b98262000295565b84845462000203565b825550505050565b600090565b620002d9620002ca565b620002e68184846200029f565b505050565b5b818110156200030e5762000302600082620002cf565b600181019050620002ec565b5050565b601f8211156200035d576200032781620001d1565b6200033284620001e6565b8101602085101562000342578190505b6200035a6200035185620001e6565b830182620002eb565b50505b505050565b600082821c905092915050565b6000620003826000198460080262000362565b1980831691505092915050565b60006200039d83836200036f565b9150826002028217905092915050565b620003b88262000133565b67ffffffffffffffff811115620003d457620003d36200013e565b5b620003e082546200019c565b620003ed82828562000312565b600060209050601f83116001811462000425576000841562000410578287015190505b6200041c85826200038f565b8655506200048c565b601f1984166200043586620001d1565b60005b828110156200045f5784890151825560018201915060208501945060208101905062000438565b868310156200047f57848901516200047b601f8916826200036f565b8355505b6001600288020188555050505b505050505050565b61157680620004a46000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c5780639c3cce71116100665780639c3cce71146102165780639fd6db1214610232578063a9059cbb14610250578063dd62ed3e14610280576100cf565b806370a08231146101be5780637e5cd5c1146101ee57806395d89b41146101f8576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd1461014057806323dacd0d14610170578063313ce567146101a0575b600080fd5b6100dc6102b0565b6040516100e99190610c7f565b60405180910390f35b61010c60048036038101906101079190610d49565b61033e565b6040516101199190610da4565b60405180910390f35b61012a610430565b6040516101379190610dce565b60405180910390f35b61015a60048036038101906101559190610de9565b610436565b6040516101679190610da4565b60405180910390f35b61018a60048036038101906101859190610e3c565b610728565b6040516101979190610da4565b60405180910390f35b6101a861089b565b6040516101b59190610e85565b60405180910390f35b6101d860048036038101906101d39190610ea0565b6108ae565b6040516101e59190610dce565b60405180910390f35b6101f66108c6565b005b6102006108e3565b60405161020d9190610c7f565b60405180910390f35b610230600480360381019061022b91906110d8565b610971565b005b61023a610a18565b6040516102479190610da4565b60405180910390f35b61026a60048036038101906102659190610d49565b610a2b565b6040516102779190610da4565b60405180910390f35b61029a60048036038101906102959190611150565b610bca565b6040516102a79190610dce565b60405180910390f35b600080546102bd906111bf565b80601f01602080910402602001604051908101604052809291908181526020018280546102e9906111bf565b80156103365780601f1061030b57610100808354040283529160200191610336565b820191906000526020600020905b81548152906001019060200180831161031957829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161041e9190610dce565b60405180910390a36001905092915050565b60025481565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b19061123c565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610579576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610570906112a8565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105c891906112f7565b9250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461061e919061132b565b9250508190555081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106b191906112f7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107159190610dce565b60405180910390a3600190509392505050565b6000600360019054906101000a900460ff16610779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610770906113ab565b60405180910390fd5b60648211156107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b49061143d565b60405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461080c919061132b565b925050819055508160026000828254610825919061132b565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161088a9190610dce565b60405180910390a360019050919050565b600360009054906101000a900460ff1681565b60046020528060005260406000206000915090505481565b6000600360016101000a81548160ff021916908315150217905550565b600180546108f0906111bf565b80601f016020809104026020016040519081016040528092919081815260200182805461091c906111bf565b80156109695780601f1061093e57610100808354040283529160200191610969565b820191906000526020600020905b81548152906001019060200180831161094c57829003601f168201915b505050505081565b80518251146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac906114a9565b60405180910390fd5b60005b8251811015610a13576109ff8382815181106109d7576109d66114c9565b5b60200260200101518383815181106109f2576109f16114c9565b5b6020026020010151610a2b565b508080610a0b906114f8565b9150506109b8565b505050565b600360019054906101000a900460ff1681565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa69061123c565b60405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610afe91906112f7565b9250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b54919061132b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bb89190610dce565b60405180910390a36001905092915050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c29578082015181840152602081019050610c0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c5182610bef565b610c5b8185610bfa565b9350610c6b818560208601610c0b565b610c7481610c35565b840191505092915050565b60006020820190508181036000830152610c998184610c46565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ce082610cb5565b9050919050565b610cf081610cd5565b8114610cfb57600080fd5b50565b600081359050610d0d81610ce7565b92915050565b6000819050919050565b610d2681610d13565b8114610d3157600080fd5b50565b600081359050610d4381610d1d565b92915050565b60008060408385031215610d6057610d5f610cab565b5b6000610d6e85828601610cfe565b9250506020610d7f85828601610d34565b9150509250929050565b60008115159050919050565b610d9e81610d89565b82525050565b6000602082019050610db96000830184610d95565b92915050565b610dc881610d13565b82525050565b6000602082019050610de36000830184610dbf565b92915050565b600080600060608486031215610e0257610e01610cab565b5b6000610e1086828701610cfe565b9350506020610e2186828701610cfe565b9250506040610e3286828701610d34565b9150509250925092565b600060208284031215610e5257610e51610cab565b5b6000610e6084828501610d34565b91505092915050565b600060ff82169050919050565b610e7f81610e69565b82525050565b6000602082019050610e9a6000830184610e76565b92915050565b600060208284031215610eb657610eb5610cab565b5b6000610ec484828501610cfe565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f0a82610c35565b810181811067ffffffffffffffff82111715610f2957610f28610ed2565b5b80604052505050565b6000610f3c610ca1565b9050610f488282610f01565b919050565b600067ffffffffffffffff821115610f6857610f67610ed2565b5b602082029050602081019050919050565b600080fd5b6000610f91610f8c84610f4d565b610f32565b90508083825260208201905060208402830185811115610fb457610fb3610f79565b5b835b81811015610fdd5780610fc98882610cfe565b845260208401935050602081019050610fb6565b5050509392505050565b600082601f830112610ffc57610ffb610ecd565b5b813561100c848260208601610f7e565b91505092915050565b600067ffffffffffffffff8211156110305761102f610ed2565b5b602082029050602081019050919050565b600061105461104f84611015565b610f32565b9050808382526020820190506020840283018581111561107757611076610f79565b5b835b818110156110a0578061108c8882610d34565b845260208401935050602081019050611079565b5050509392505050565b600082601f8301126110bf576110be610ecd565b5b81356110cf848260208601611041565b91505092915050565b600080604083850312156110ef576110ee610cab565b5b600083013567ffffffffffffffff81111561110d5761110c610cb0565b5b61111985828601610fe7565b925050602083013567ffffffffffffffff81111561113a57611139610cb0565b5b611146858286016110aa565b9150509250929050565b6000806040838503121561116757611166610cab565b5b600061117585828601610cfe565b925050602061118685828601610cfe565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806111d757607f821691505b6020821081036111ea576111e9611190565b5b50919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000611226601483610bfa565b9150611231826111f0565b602082019050919050565b6000602082019050818103600083015261125581611219565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b6000611292601683610bfa565b915061129d8261125c565b602082019050919050565b600060208201905081810360008301526112c181611285565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061130282610d13565b915061130d83610d13565b9250828203905081811115611325576113246112c8565b5b92915050565b600061133682610d13565b915061134183610d13565b9250828201905080821115611359576113586112c8565b5b92915050565b7f4d696e74696e672064697361626c656400000000000000000000000000000000600082015250565b6000611395601083610bfa565b91506113a08261135f565b602082019050919050565b600060208201905081810360008301526113c481611388565b9050919050565b7f45786365656473206d6178696d756d20746f6b656e206368616e6765206c696d60008201527f6974000000000000000000000000000000000000000000000000000000000000602082015250565b6000611427602283610bfa565b9150611432826113cb565b604082019050919050565b600060208201905081810360008301526114568161141a565b9050919050565b7f496e76616c696420696e70757400000000000000000000000000000000000000600082015250565b6000611493600d83610bfa565b915061149e8261145d565b602082019050919050565b600060208201905081810360008301526114c281611486565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061150382610d13565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611535576115346112c8565b5b60018201905091905056fea26469706673582212209d3eef02b356ce19274461216997d528777144c02dad3f03eb842d1bb6d1be5d64736f6c63430008120033