0x6080604052734f9a0e7fd2bf6067db6994cf12e4495df938e6e9600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006557600080fd5b5061008261007761008760201b60201c565b61008f60201b60201c565b610153565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61213380620001636000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100f4578063bf8231701461011f578063f2fde38b14610148578063f5e7625b1461017157610070565b80630d484c2814610075578063715018a61461009e578063802d4d59146100b5575b600080fd5b34801561008157600080fd5b5061009c600480360381019061009791906111a6565b61018d565b005b3480156100aa57600080fd5b506100b36105e5565b005b3480156100c157600080fd5b506100dc60048036038101906100d791906112d0565b6105f9565b6040516100eb9392919061133f565b60405180910390f35b34801561010057600080fd5b50610109610878565b6040516101169190611385565b60405180910390f35b34801561012b57600080fd5b5061014660048036038101906101419190611631565b6108a1565b005b34801561015457600080fd5b5061016f600480360381019061016a919061172e565b610b57565b005b61018b600480360381019061018691906117b1565b610bda565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101ea9190611385565b602060405180830381865afa158015610207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022b9190611813565b90506000866000016020810190610242919061172e565b73ffffffffffffffffffffffffffffffffffffffff16878060200190610268919061184f565b6040516102769291906118e2565b6000604051808303816000865af19150503d80600081146102b3576040519150601f19603f3d011682016040523d82523d6000602084013e6102b8565b606091505b50509050806102fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f390611958565b60405180910390fd5b600086905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161033c9190611385565b602060405180830381865afa158015610359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037d9190611813565b90506000819050600087905060005b87518110156104465760005b6020811015610432578381602081106103b4576103b3611978565b5b1a60f81b83828b85815181106103cd576103cc611978565b5b60200260200101516103df91906119d6565b815181106103f0576103ef611978565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061042a90611a0a565b915050610398565b50808061043e90611a0a565b91505061038c565b5060008973ffffffffffffffffffffffffffffffffffffffff168260405161046e9190611ab8565b6000604051808303816000865af19150503d80600081146104ab576040519150601f19603f3d011682016040523d82523d6000602084013e6104b0565b606091505b50509050806104f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104eb90611b1b565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105519190611385565b602060405180830381865afa15801561056e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105929190611813565b90508781116105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90611b87565b60405180910390fd5b50505050505050505050505050565b6105ed610d17565b6105f76000610d95565b565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161065a9190611385565b602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190611813565b905060005a90506000808973ffffffffffffffffffffffffffffffffffffffff1689896040516106cc9291906118e2565b6000604051808303816000865af19150503d8060008114610709576040519150601f19603f3d011682016040523d82523d6000602084013e61070e565b606091505b50915091508161076257600061072382610e59565b9050806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107599190611beb565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107bf9190611385565b602060405180830381865afa1580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190611813565b905060005a90508582101561084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084190611b87565b60405180910390fd5b85826108569190611c0d565b81866108629190611c0d565b4398509850985050505050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000736dd434082eab5cd134b33719ec1ff05fe985b97b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109179190611385565b602060405180830381865afa158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190611813565b905060008273ffffffffffffffffffffffffffffffffffffffff166390411a328a8a8a6040518463ffffffff1660e01b815260040161099993929190611ea8565b6020604051808303816000875af11580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190611813565b9050808560800181815250508273ffffffffffffffffffffffffffffffffffffffff166390411a328787876040518463ffffffff1660e01b8152600401610a2593929190611ea8565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190611813565b506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ac69190611385565b602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190611813565b9050828111610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4290611b87565b60405180910390fd5b50505050505050505050565b610b5f610d17565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590611f5f565b60405180910390fd5b610bd781610d95565b50565b610be2610d17565b60005b82829050811015610d12576000838383818110610c0557610c04611978565b5b9050602002810190610c179190611f7f565b6000016020810190610c29919061172e565b73ffffffffffffffffffffffffffffffffffffffff16848484818110610c5257610c51611978565b5b9050602002810190610c649190611f7f565b8060200190610c73919061184f565b604051610c819291906118e2565b6000604051808303816000865af19150503d8060008114610cbe576040519150601f19603f3d011682016040523d82523d6000602084013e610cc3565b606091505b5050905080610cfe576040517fddcd19d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508080610d0a90611a0a565b915050610be5565b505050565b610d1f610ec4565b73ffffffffffffffffffffffffffffffffffffffff16610d3d610878565b73ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90611ff3565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6060604482511015610ea2576040518060400160405280601d81526020017f5472616e73616374696f6e2072657665727465642073696c656e746c790000008152509050610ebf565b60048201915081806020019051810190610ebc91906120b4565b90505b919050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600060408284031215610efb57610efa610ee0565b5b81905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f2f82610f04565b9050919050565b610f3f81610f24565b8114610f4a57600080fd5b50565b600081359050610f5c81610f36565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610fb582610f6c565b810181811067ffffffffffffffff82111715610fd457610fd3610f7d565b5b80604052505050565b6000610fe7610ecc565b9050610ff38282610fac565b919050565b600067ffffffffffffffff82111561101357611012610f7d565b5b61101c82610f6c565b9050602081019050919050565b82818337600083830152505050565b600061104b61104684610ff8565b610fdd565b90508281526020810184848401111561106757611066610f67565b5b611072848285611029565b509392505050565b600082601f83011261108f5761108e610f62565b5b813561109f848260208601611038565b91505092915050565b600067ffffffffffffffff8211156110c3576110c2610f7d565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b6110ec816110d9565b81146110f757600080fd5b50565b600081359050611109816110e3565b92915050565b600061112261111d846110a8565b610fdd565b90508083825260208201905060208402830185811115611145576111446110d4565b5b835b8181101561116e578061115a88826110fa565b845260208401935050602081019050611147565b5050509392505050565b600082601f83011261118d5761118c610f62565b5b813561119d84826020860161110f565b91505092915050565b600080600080600060a086880312156111c2576111c1610ed6565b5b600086013567ffffffffffffffff8111156111e0576111df610edb565b5b6111ec88828901610ee5565b95505060206111fd88828901610f4d565b945050604061120e88828901610f4d565b935050606086013567ffffffffffffffff81111561122f5761122e610edb565b5b61123b8882890161107a565b925050608086013567ffffffffffffffff81111561125c5761125b610edb565b5b61126888828901611178565b9150509295509295909350565b600080fd5b60008083601f8401126112905761128f610f62565b5b8235905067ffffffffffffffff8111156112ad576112ac611275565b5b6020830191508360018202830111156112c9576112c86110d4565b5b9250929050565b6000806000604084860312156112e9576112e8610ed6565b5b60006112f786828701610f4d565b935050602084013567ffffffffffffffff81111561131857611317610edb565b5b6113248682870161127a565b92509250509250925092565b611339816110d9565b82525050565b60006060820190506113546000830186611330565b6113616020830185611330565b61136e6040830184611330565b949350505050565b61137f81610f24565b82525050565b600060208201905061139a6000830184611376565b92915050565b600080fd5b600080fd5b600061014082840312156113c1576113c06113a0565b5b6113cc610140610fdd565b905060006113dc84828501610f4d565b60008301525060206113f084828501610f4d565b602083015250604061140484828501610f4d565b604083015250606061141884828501610f4d565b606083015250608061142c848285016110fa565b60808301525060a0611440848285016110fa565b60a08301525060c0611454848285016110fa565b60c08301525060e0611468848285016110fa565b60e08301525061010061147d84828501610f4d565b6101008301525061012082013567ffffffffffffffff8111156114a3576114a26113a5565b5b6114af8482850161107a565b6101208301525092915050565b600067ffffffffffffffff8211156114d7576114d6610f7d565b5b602082029050602081019050919050565b6000608082840312156114fe576114fd6113a0565b5b6115086080610fdd565b90506000611518848285016110fa565b600083015250602061152c848285016110fa565b6020830152506040611540848285016110fa565b604083015250606082013567ffffffffffffffff811115611564576115636113a5565b5b6115708482850161107a565b60608301525092915050565b600061158f61158a846114bc565b610fdd565b905080838252602082019050602084028301858111156115b2576115b16110d4565b5b835b818110156115f957803567ffffffffffffffff8111156115d7576115d6610f62565b5b8086016115e489826114e8565b855260208501945050506020810190506115b4565b5050509392505050565b600082601f83011261161857611617610f62565b5b813561162884826020860161157c565b91505092915050565b60008060008060008060c0878903121561164e5761164d610ed6565b5b600061165c89828a01610f4d565b965050602087013567ffffffffffffffff81111561167d5761167c610edb565b5b61168989828a016113aa565b955050604087013567ffffffffffffffff8111156116aa576116a9610edb565b5b6116b689828a01611603565b94505060606116c789828a01610f4d565b935050608087013567ffffffffffffffff8111156116e8576116e7610edb565b5b6116f489828a016113aa565b92505060a087013567ffffffffffffffff81111561171557611714610edb565b5b61172189828a01611603565b9150509295509295509295565b60006020828403121561174457611743610ed6565b5b600061175284828501610f4d565b91505092915050565b60008083601f84011261177157611770610f62565b5b8235905067ffffffffffffffff81111561178e5761178d611275565b5b6020830191508360208202830111156117aa576117a96110d4565b5b9250929050565b600080602083850312156117c8576117c7610ed6565b5b600083013567ffffffffffffffff8111156117e6576117e5610edb565b5b6117f28582860161175b565b92509250509250929050565b60008151905061180d816110e3565b92915050565b60006020828403121561182957611828610ed6565b5b6000611837848285016117fe565b91505092915050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261186c5761186b611840565b5b80840192508235915067ffffffffffffffff82111561188e5761188d611845565b5b6020830192506001820236038313156118aa576118a961184a565b5b509250929050565b600081905092915050565b60006118c983856118b2565b93506118d6838584611029565b82840190509392505050565b60006118ef8284866118bd565b91508190509392505050565b600082825260208201905092915050565b7f3100000000000000000000000000000000000000000000000000000000000000600082015250565b60006119426001836118fb565b915061194d8261190c565b602082019050919050565b6000602082019050818103600083015261197181611935565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119e1826110d9565b91506119ec836110d9565b9250828201905080821115611a0457611a036119a7565b5b92915050565b6000611a15826110d9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a4757611a466119a7565b5b600182019050919050565b600081519050919050565b60005b83811015611a7b578082015181840152602081019050611a60565b60008484015250505050565b6000611a9282611a52565b611a9c81856118b2565b9350611aac818560208601611a5d565b80840191505092915050565b6000611ac48284611a87565b915081905092915050565b7f3200000000000000000000000000000000000000000000000000000000000000600082015250565b6000611b056001836118fb565b9150611b1082611acf565b602082019050919050565b60006020820190508181036000830152611b3481611af8565b9050919050565b7f7700000000000000000000000000000000000000000000000000000000000000600082015250565b6000611b716001836118fb565b9150611b7c82611b3b565b602082019050919050565b60006020820190508181036000830152611ba081611b64565b9050919050565b600081519050919050565b6000611bbd82611ba7565b611bc781856118fb565b9350611bd7818560208601611a5d565b611be081610f6c565b840191505092915050565b60006020820190508181036000830152611c058184611bb2565b905092915050565b6000611c18826110d9565b9150611c23836110d9565b9250828203905081811115611c3b57611c3a6119a7565b5b92915050565b611c4a81610f24565b82525050565b611c59816110d9565b82525050565b600082825260208201905092915050565b6000611c7b82611a52565b611c858185611c5f565b9350611c95818560208601611a5d565b611c9e81610f6c565b840191505092915050565b600061014083016000830151611cc26000860182611c41565b506020830151611cd56020860182611c41565b506040830151611ce86040860182611c41565b506060830151611cfb6060860182611c41565b506080830151611d0e6080860182611c50565b5060a0830151611d2160a0860182611c50565b5060c0830151611d3460c0860182611c50565b5060e0830151611d4760e0860182611c50565b50610100830151611d5c610100860182611c41565b50610120830151848203610120860152611d768282611c70565b9150508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151611dc76000860182611c50565b506020830151611dda6020860182611c50565b506040830151611ded6040860182611c50565b5060608301518482036060860152611e058282611c70565b9150508091505092915050565b6000611e1e8383611daf565b905092915050565b6000602082019050919050565b6000611e3e82611d83565b611e488185611d8e565b935083602082028501611e5a85611d9f565b8060005b85811015611e965784840389528151611e778582611e12565b9450611e8283611e26565b925060208a01995050600181019050611e5e565b50829750879550505050505092915050565b6000606082019050611ebd6000830186611376565b8181036020830152611ecf8185611ca9565b90508181036040830152611ee38184611e33565b9050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f496026836118fb565b9150611f5482611eed565b604082019050919050565b60006020820190508181036000830152611f7881611f3c565b9050919050565b600082356001604003833603038112611f9b57611f9a611840565b5b80830191505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fdd6020836118fb565b9150611fe882611fa7565b602082019050919050565b6000602082019050818103600083015261200c81611fd0565b9050919050565b600067ffffffffffffffff82111561202e5761202d610f7d565b5b61203782610f6c565b9050602081019050919050565b600061205761205284612013565b610fdd565b90508281526020810184848401111561207357612072610f67565b5b61207e848285611a5d565b509392505050565b600082601f83011261209b5761209a610f62565b5b81516120ab848260208601612044565b91505092915050565b6000602082840312156120ca576120c9610ed6565b5b600082015167ffffffffffffffff8111156120e8576120e7610edb565b5b6120f484828501612086565b9150509291505056fea264697066735822122005cb51c251852f223cd1470470e6589537d34f932827f8b0963c2d11f3c3b7a164736f6c63430008120033