0x6080604052734f9a0e7fd2bf6067db6994cf12e4495df938e6e9600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006557600080fd5b5061008261007761008760201b60201c565b61008f60201b60201c565b610153565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611f66806101626000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100f4578063bf8231701461011f578063f2fde38b14610148578063f5e7625b1461017157610070565b80630d484c2814610075578063715018a61461009e578063802d4d59146100b5575b600080fd5b34801561008157600080fd5b5061009c60048036038101906100979190611129565b61018d565b005b3480156100aa57600080fd5b506100b36105e5565b005b3480156100c157600080fd5b506100dc60048036038101906100d79190611253565b6105f9565b6040516100eb939291906112c2565b60405180910390f35b34801561010057600080fd5b50610109610866565b6040516101169190611308565b60405180910390f35b34801561012b57600080fd5b50610146600480360381019061014191906115b4565b61088f565b005b34801561015457600080fd5b5061016f600480360381019061016a91906116b1565b610b45565b005b61018b60048036038101906101869190611734565b610bc8565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101ea9190611308565b602060405180830381865afa158015610207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022b9190611796565b9050600086600001602081019061024291906116b1565b73ffffffffffffffffffffffffffffffffffffffff1687806020019061026891906117d2565b604051610276929190611865565b6000604051808303816000865af19150503d80600081146102b3576040519150601f19603f3d011682016040523d82523d6000602084013e6102b8565b606091505b50509050806102fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f3906118db565b60405180910390fd5b600086905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161033c9190611308565b602060405180830381865afa158015610359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037d9190611796565b90506000819050600087905060005b87518110156104465760005b6020811015610432578381602081106103b4576103b36118fb565b5b1a60f81b83828b85815181106103cd576103cc6118fb565b5b60200260200101516103df9190611959565b815181106103f0576103ef6118fb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061042a9061198d565b915050610398565b50808061043e9061198d565b91505061038c565b5060008973ffffffffffffffffffffffffffffffffffffffff168260405161046e9190611a3b565b6000604051808303816000865af19150503d80600081146104ab576040519150601f19603f3d011682016040523d82523d6000602084013e6104b0565b606091505b50509050806104f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104eb90611a9e565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105519190611308565b602060405180830381865afa15801561056e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105929190611796565b90508781116105d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cd90611b0a565b60405180910390fd5b50505050505050505050505050565b6105ed610d05565b6105f76000610d83565b565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161065a9190611308565b602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190611796565b905060005a905060008873ffffffffffffffffffffffffffffffffffffffff1688886040516106cb929190611865565b6000604051808303816000865af19150503d8060008114610708576040519150601f19603f3d011682016040523d82523d6000602084013e61070d565b606091505b5050905080610751576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610748906118db565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107ae9190611308565b602060405180830381865afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef9190611796565b905060005a905084821015610839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083090611b0a565b60405180910390fd5b84826108459190611b2a565b81856108519190611b2a565b43975097509750505050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000736dd434082eab5cd134b33719ec1ff05fe985b97b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109059190611308565b602060405180830381865afa158015610922573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109469190611796565b905060008273ffffffffffffffffffffffffffffffffffffffff166390411a328a8a8a6040518463ffffffff1660e01b815260040161098793929190611dc5565b6020604051808303816000875af11580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca9190611796565b9050808560800181815250508273ffffffffffffffffffffffffffffffffffffffff166390411a328787876040518463ffffffff1660e01b8152600401610a1393929190611dc5565b6020604051808303816000875af1158015610a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a569190611796565b506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ab49190611308565b602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190611796565b9050828111610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3090611b0a565b60405180910390fd5b50505050505050505050565b610b4d610d05565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611e7c565b60405180910390fd5b610bc581610d83565b50565b610bd0610d05565b60005b82829050811015610d00576000838383818110610bf357610bf26118fb565b5b9050602002810190610c059190611e9c565b6000016020810190610c1791906116b1565b73ffffffffffffffffffffffffffffffffffffffff16848484818110610c4057610c3f6118fb565b5b9050602002810190610c529190611e9c565b8060200190610c6191906117d2565b604051610c6f929190611865565b6000604051808303816000865af19150503d8060008114610cac576040519150601f19603f3d011682016040523d82523d6000602084013e610cb1565b606091505b5050905080610cec576040517fddcd19d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508080610cf89061198d565b915050610bd3565b505050565b610d0d610e47565b73ffffffffffffffffffffffffffffffffffffffff16610d2b610866565b73ffffffffffffffffffffffffffffffffffffffff1614610d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7890611f10565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600060408284031215610e7e57610e7d610e63565b5b81905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610eb282610e87565b9050919050565b610ec281610ea7565b8114610ecd57600080fd5b50565b600081359050610edf81610eb9565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f3882610eef565b810181811067ffffffffffffffff82111715610f5757610f56610f00565b5b80604052505050565b6000610f6a610e4f565b9050610f768282610f2f565b919050565b600067ffffffffffffffff821115610f9657610f95610f00565b5b610f9f82610eef565b9050602081019050919050565b82818337600083830152505050565b6000610fce610fc984610f7b565b610f60565b905082815260208101848484011115610fea57610fe9610eea565b5b610ff5848285610fac565b509392505050565b600082601f83011261101257611011610ee5565b5b8135611022848260208601610fbb565b91505092915050565b600067ffffffffffffffff82111561104657611045610f00565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b61106f8161105c565b811461107a57600080fd5b50565b60008135905061108c81611066565b92915050565b60006110a56110a08461102b565b610f60565b905080838252602082019050602084028301858111156110c8576110c7611057565b5b835b818110156110f157806110dd888261107d565b8452602084019350506020810190506110ca565b5050509392505050565b600082601f8301126111105761110f610ee5565b5b8135611120848260208601611092565b91505092915050565b600080600080600060a0868803121561114557611144610e59565b5b600086013567ffffffffffffffff81111561116357611162610e5e565b5b61116f88828901610e68565b955050602061118088828901610ed0565b945050604061119188828901610ed0565b935050606086013567ffffffffffffffff8111156111b2576111b1610e5e565b5b6111be88828901610ffd565b925050608086013567ffffffffffffffff8111156111df576111de610e5e565b5b6111eb888289016110fb565b9150509295509295909350565b600080fd5b60008083601f84011261121357611212610ee5565b5b8235905067ffffffffffffffff8111156112305761122f6111f8565b5b60208301915083600182028301111561124c5761124b611057565b5b9250929050565b60008060006040848603121561126c5761126b610e59565b5b600061127a86828701610ed0565b935050602084013567ffffffffffffffff81111561129b5761129a610e5e565b5b6112a7868287016111fd565b92509250509250925092565b6112bc8161105c565b82525050565b60006060820190506112d760008301866112b3565b6112e460208301856112b3565b6112f160408301846112b3565b949350505050565b61130281610ea7565b82525050565b600060208201905061131d60008301846112f9565b92915050565b600080fd5b600080fd5b6000610140828403121561134457611343611323565b5b61134f610140610f60565b9050600061135f84828501610ed0565b600083015250602061137384828501610ed0565b602083015250604061138784828501610ed0565b604083015250606061139b84828501610ed0565b60608301525060806113af8482850161107d565b60808301525060a06113c38482850161107d565b60a08301525060c06113d78482850161107d565b60c08301525060e06113eb8482850161107d565b60e08301525061010061140084828501610ed0565b6101008301525061012082013567ffffffffffffffff81111561142657611425611328565b5b61143284828501610ffd565b6101208301525092915050565b600067ffffffffffffffff82111561145a57611459610f00565b5b602082029050602081019050919050565b60006080828403121561148157611480611323565b5b61148b6080610f60565b9050600061149b8482850161107d565b60008301525060206114af8482850161107d565b60208301525060406114c38482850161107d565b604083015250606082013567ffffffffffffffff8111156114e7576114e6611328565b5b6114f384828501610ffd565b60608301525092915050565b600061151261150d8461143f565b610f60565b9050808382526020820190506020840283018581111561153557611534611057565b5b835b8181101561157c57803567ffffffffffffffff81111561155a57611559610ee5565b5b808601611567898261146b565b85526020850194505050602081019050611537565b5050509392505050565b600082601f83011261159b5761159a610ee5565b5b81356115ab8482602086016114ff565b91505092915050565b60008060008060008060c087890312156115d1576115d0610e59565b5b60006115df89828a01610ed0565b965050602087013567ffffffffffffffff811115611600576115ff610e5e565b5b61160c89828a0161132d565b955050604087013567ffffffffffffffff81111561162d5761162c610e5e565b5b61163989828a01611586565b945050606061164a89828a01610ed0565b935050608087013567ffffffffffffffff81111561166b5761166a610e5e565b5b61167789828a0161132d565b92505060a087013567ffffffffffffffff81111561169857611697610e5e565b5b6116a489828a01611586565b9150509295509295509295565b6000602082840312156116c7576116c6610e59565b5b60006116d584828501610ed0565b91505092915050565b60008083601f8401126116f4576116f3610ee5565b5b8235905067ffffffffffffffff811115611711576117106111f8565b5b60208301915083602082028301111561172d5761172c611057565b5b9250929050565b6000806020838503121561174b5761174a610e59565b5b600083013567ffffffffffffffff81111561176957611768610e5e565b5b611775858286016116de565b92509250509250929050565b60008151905061179081611066565b92915050565b6000602082840312156117ac576117ab610e59565b5b60006117ba84828501611781565b91505092915050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126117ef576117ee6117c3565b5b80840192508235915067ffffffffffffffff821115611811576118106117c8565b5b60208301925060018202360383131561182d5761182c6117cd565b5b509250929050565b600081905092915050565b600061184c8385611835565b9350611859838584610fac565b82840190509392505050565b6000611872828486611840565b91508190509392505050565b600082825260208201905092915050565b7f3100000000000000000000000000000000000000000000000000000000000000600082015250565b60006118c560018361187e565b91506118d08261188f565b602082019050919050565b600060208201905081810360008301526118f4816118b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119648261105c565b915061196f8361105c565b92508282019050808211156119875761198661192a565b5b92915050565b60006119988261105c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036119ca576119c961192a565b5b600182019050919050565b600081519050919050565b60005b838110156119fe5780820151818401526020810190506119e3565b60008484015250505050565b6000611a15826119d5565b611a1f8185611835565b9350611a2f8185602086016119e0565b80840191505092915050565b6000611a478284611a0a565b915081905092915050565b7f3200000000000000000000000000000000000000000000000000000000000000600082015250565b6000611a8860018361187e565b9150611a9382611a52565b602082019050919050565b60006020820190508181036000830152611ab781611a7b565b9050919050565b7f7700000000000000000000000000000000000000000000000000000000000000600082015250565b6000611af460018361187e565b9150611aff82611abe565b602082019050919050565b60006020820190508181036000830152611b2381611ae7565b9050919050565b6000611b358261105c565b9150611b408361105c565b9250828203905081811115611b5857611b5761192a565b5b92915050565b611b6781610ea7565b82525050565b611b768161105c565b82525050565b600082825260208201905092915050565b6000611b98826119d5565b611ba28185611b7c565b9350611bb28185602086016119e0565b611bbb81610eef565b840191505092915050565b600061014083016000830151611bdf6000860182611b5e565b506020830151611bf26020860182611b5e565b506040830151611c056040860182611b5e565b506060830151611c186060860182611b5e565b506080830151611c2b6080860182611b6d565b5060a0830151611c3e60a0860182611b6d565b5060c0830151611c5160c0860182611b6d565b5060e0830151611c6460e0860182611b6d565b50610100830151611c79610100860182611b5e565b50610120830151848203610120860152611c938282611b8d565b9150508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151611ce46000860182611b6d565b506020830151611cf76020860182611b6d565b506040830151611d0a6040860182611b6d565b5060608301518482036060860152611d228282611b8d565b9150508091505092915050565b6000611d3b8383611ccc565b905092915050565b6000602082019050919050565b6000611d5b82611ca0565b611d658185611cab565b935083602082028501611d7785611cbc565b8060005b85811015611db35784840389528151611d948582611d2f565b9450611d9f83611d43565b925060208a01995050600181019050611d7b565b50829750879550505050505092915050565b6000606082019050611dda60008301866112f9565b8181036020830152611dec8185611bc6565b90508181036040830152611e008184611d50565b9050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e6660268361187e565b9150611e7182611e0a565b604082019050919050565b60006020820190508181036000830152611e9581611e59565b9050919050565b600082356001604003833603038112611eb857611eb76117c3565b5b80830191505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611efa60208361187e565b9150611f0582611ec4565b602082019050919050565b60006020820190508181036000830152611f2981611eed565b905091905056fea26469706673582212208bcc0e976cb0ee8b25e5504bbc187daa44cc26d74fe9b7f86fb348dbebaed24664736f6c63430008120033