60a060405273514910771af9ca656af840dff83e8264ecf986ca600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8af398995b04c28e9951adb9721ef74c74f93e6a478f39e7e0777be13527e7ef60001b60095573271682deb8c4e0901d1a1550ad2e64d568e69909600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600f60006101000a81548161ffff021916908361ffff1602179055506001600f60026101000a81548163ffffffff021916908363ffffffff16021790555060a26010556000601160006101000a81548160ff02191690831515021790555073cc71c80d803381fd6ee984faff408f8501db1740601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200019757600080fd5b5073271682deb8c4e0901d1a1550ad2e64d568e699096040518060400160405280601081526020017f5469636b657420746f205a65726f2d47000000000000000000000000000000008152506040518060400160405280600481526020017f54545a470000000000000000000000000000000000000000000000000000000081525081600090816200022a919062000660565b5080600190816200023c919062000660565b5050506200025f620002536200031860201b60201c565b6200032060201b60201c565b6000600660146101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000747565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200046857607f821691505b6020821081036200047e576200047d62000420565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004a9565b620004f48683620004a9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005416200053b62000535846200050c565b62000516565b6200050c565b9050919050565b6000819050919050565b6200055d8362000520565b620005756200056c8262000548565b848454620004b6565b825550505050565b600090565b6200058c6200057d565b6200059981848462000552565b505050565b5b81811015620005c157620005b560008262000582565b6001810190506200059f565b5050565b601f8211156200061057620005da8162000484565b620005e58462000499565b81016020851015620005f5578190505b6200060d620006048562000499565b8301826200059e565b50505b505050565b600082821c905092915050565b6000620006356000198460080262000615565b1980831691505092915050565b600062000650838362000622565b9150826002028217905092915050565b6200066b82620003e6565b67ffffffffffffffff811115620006875762000686620003f1565b5b6200069382546200044f565b620006a0828285620005c5565b600060209050601f831160018114620006d85760008415620006c3578287015190505b620006cf858262000642565b8655506200073f565b601f198416620006e88662000484565b60005b828110156200071257848901518255600182019150602085019450602081019050620006eb565b868310156200073257848901516200072e601f89168262000622565b8355505b6001600288020188555050505b505050505050565b608051613e826200076a600039600081816108cb015261091f0152613e826000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80638456cb591161010f578063c87b56dd116100a2578063e831574211610071578063e831574214610570578063e985e9c51461058e578063f2fde38b146105be578063fc2a88c3146105da576101f0565b8063c87b56dd146104d2578063cd38aa8714610502578063d8a4676f14610520578063dfbf53ae14610552576101f0565b806395d89b41116100de57806395d89b411461044b578063a168fa8914610469578063a22cb4651461049a578063b88d4fde146104b6576101f0565b80638456cb59146103d75780638796ba8c146103e15780638da5cb5b146104115780639277f5e81461042f576101f0565b8063543e617f1161018757806370a082311161015657806370a0823114610363578063715018a614610393578063809b33401461039d5780638217a607146103bb576101f0565b8063543e617f146102ed5780635c975abb1461030b5780636352211e146103295780636871ee4014610359576101f0565b80631fe543e3116101c35780631fe543e31461028f57806323b872dd146102ab5780633f4ba83a146102c757806342842e0e146102d1576101f0565b806301ffc9a7146101f557806306fdde0314610225578063081812fc14610243578063095ea7b314610273575b600080fd5b61020f600480360381019061020a9190612766565b6105f8565b60405161021c91906127ae565b60405180910390f35b61022d6106da565b60405161023a9190612859565b60405180910390f35b61025d600480360381019061025891906128b1565b61076c565b60405161026a919061291f565b60405180910390f35b61028d60048036038101906102889190612966565b6107b2565b005b6102a960048036038101906102a49190612aee565b6108c9565b005b6102c560048036038101906102c09190612b4a565b610989565b005b6102cf6109e9565b005b6102eb60048036038101906102e69190612b4a565b6109fb565b005b6102f5610a1b565b604051610302919061291f565b60405180910390f35b610313610a41565b60405161032091906127ae565b60405180910390f35b610343600480360381019061033e91906128b1565b610a58565b604051610350919061291f565b60405180910390f35b610361610ade565b005b61037d60048036038101906103789190612b9d565b610dfe565b60405161038a9190612bd9565b60405180910390f35b61039b610eb5565b005b6103a5610ec9565b6040516103b291906127ae565b60405180910390f35b6103d560048036038101906103d09190612c20565b610edc565b005b6103df610f01565b005b6103fb60048036038101906103f691906128b1565b610f13565b6040516104089190612bd9565b60405180910390f35b610419610f37565b604051610426919061291f565b60405180910390f35b61044960048036038101906104449190612c8d565b610f61565b005b610453610f95565b6040516104609190612859565b60405180910390f35b610483600480360381019061047e91906128b1565b611027565b604051610491929190612cba565b60405180910390f35b6104b460048036038101906104af9190612ce3565b611065565b005b6104d060048036038101906104cb9190612dd8565b61107b565b005b6104ec60048036038101906104e791906128b1565b6110dd565b6040516104f99190612859565b60405180910390f35b61050a611147565b6040516105179190612bd9565b60405180910390f35b61053a600480360381019061053591906128b1565b611397565b60405161054993929190612f19565b60405180910390f35b61055a611469565b604051610567919061291f565b60405180910390f35b61057861148f565b6040516105859190612bd9565b60405180910390f35b6105a860048036038101906105a39190612f57565b611495565b6040516105b591906127ae565b60405180910390f35b6105d860048036038101906105d39190612b9d565b611529565b005b6105e26115ac565b6040516105ef9190612bd9565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106c357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106d357506106d2826115b2565b5b9050919050565b6060600080546106e990612fc6565b80601f016020809104026020016040519081016040528092919081815260200182805461071590612fc6565b80156107625780601f1061073757610100808354040283529160200191610762565b820191906000526020600020905b81548152906001019060200180831161074557829003601f168201915b5050505050905090565b60006107778261161c565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107bd82610a58565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082490613069565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661084c611667565b73ffffffffffffffffffffffffffffffffffffffff16148061087b575061087a81610875611667565b611495565b5b6108ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b1906130fb565b60405180910390fd5b6108c4838361166f565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097b57337f00000000000000000000000000000000000000000000000000000000000000006040517f1cf993f400000000000000000000000000000000000000000000000000000000815260040161097292919061311b565b60405180910390fd5b6109858282611728565b5050565b61099a610994611667565b8261190b565b6109d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d0906131b6565b60405180910390fd5b6109e48383836119a0565b505050565b6109f1611c99565b6109f9611d17565b565b610a168383836040518060200160405280600081525061107b565b505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660149054906101000a900460ff16905090565b600080610a6483611d7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc90613222565b60405180910390fd5b80915050919050565b601360149054906101000a900460ff1615610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b259061328e565b60405180910390fd5b6001601360146101000a81548160ff021916908315150217905550600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1633604051602401610b96919061291f565b6040516020818303038152906040527fadc63589000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610c2091906132f5565b6000604051808303816000865af19150503d8060008114610c5d576040519150601f19603f3d011682016040523d82523d6000602084013e610c62565b606091505b50915091504281806020019051810190610c7c9190613321565b11610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb39061339a565b60405180910390fd5b60013073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610cf7919061291f565b602060405180830381865afa158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d389190613321565b10610d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6f90613406565b60405180910390fd5b6000610d846012611db7565b90506010548110610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190613472565b60405180910390fd5b610dd46012611dc5565b610dde3382611ddb565b5050506000601360146101000a81548160ff021916908315150217905550565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613504565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ebd611c99565b610ec76000611df9565b565b601160009054906101000a900460ff1681565b610ee4611c99565b80601160006101000a81548160ff02191690831515021790555050565b610f09611c99565b610f11611ebf565b565b600d8181548110610f2357600080fd5b906000526020600020016000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f69611c99565b80600c60146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b606060018054610fa490612fc6565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd090612fc6565b801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b5050505050905090565b600b6020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b611077611070611667565b8383611f22565b5050565b61108c611086611667565b8361190b565b6110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906131b6565b60405180910390fd5b6110d78484848461208e565b50505050565b60606110e8826120ea565b611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90613570565b60405180910390fd5b604051806060016040528060358152602001613e18603591399050919050565b6000611151611c99565b6000620493e09050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d3b1d30600954600c60149054906101000a900467ffffffffffffffff16600f60009054906101000a900461ffff1685600f60029054906101000a900463ffffffff166040518663ffffffff1660e01b81526004016111f69594939291906135f4565b6020604051808303816000875af1158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190613321565b91506040518060600160405280600115158152602001600015158152602001600067ffffffffffffffff811115611273576112726129ab565b5b6040519080825280602002602001820160405280156112a15781602001602082028036833780820191505090505b50815250600b600084815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff0219169083151502179055506040820151816001019080519060200190611314929190612690565b50905050600d82908060018154018082558091505060019003906000526020600020016000909190919091505581600e819055507fcc58b13ad3eab50626c6a6300b1d139cd6ebb1688a7cced9461c2f7e762665ee82600f60029054906101000a900463ffffffff1660405161138b929190613647565b60405180910390a15090565b60008060606000600b60008681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016001820180548060200260200160405190810160405280929190818152602001828054801561144157602002820191906000526020600020905b81548152602001906001019080831161142d575b5050505050815250509050806000015181602001518260400151935093509350509193909250565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611531611c99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611597906136e2565b60405180910390fd5b6115a981611df9565b50565b600e5481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611625816120ea565b611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90613222565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166116e283610a58565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600b600083815260200190815260200160002060000160009054906101000a900460ff1661178b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117829061374e565b60405180910390fd5b6001600b600084815260200190815260200160002060000160016101000a81548160ff02191690831515021790555080600b600084815260200190815260200160002060010190805190602001906117e4929190612690565b503073ffffffffffffffffffffffffffffffffffffffff16636352211e61180b6012611db7565b8360008151811061181f5761181e61376e565b5b602002602001015161183191906137cc565b6040518263ffffffff1660e01b815260040161184d9190612bd9565b602060405180830381865afa15801561186a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188e9190613812565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ffe2e2d779dba245964d4e3ef9b994be63856fd568bf7d3ca9e224755cb1bd54d82826040516118ff92919061383f565b60405180910390a15050565b60008061191783610a58565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061195957506119588185611495565b5b8061199757508373ffffffffffffffffffffffffffffffffffffffff1661197f8461076c565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166119c082610a58565b73ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d906138e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c90613973565b60405180910390fd5b611a92838383600161212b565b8273ffffffffffffffffffffffffffffffffffffffff16611ab282610a58565b73ffffffffffffffffffffffffffffffffffffffff1614611b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aff906138e1565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611c9483838360016121cf565b505050565b611ca1611667565b73ffffffffffffffffffffffffffffffffffffffff16611cbf610f37565b73ffffffffffffffffffffffffffffffffffffffff1614611d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0c906139df565b60405180910390fd5b565b611d1f6121d5565b6000600660146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611d63611667565b604051611d70919061291f565b60405180910390a1565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600081600001549050919050565b6001816000016000828254019250508190555050565b611df582826040518060200160405280600081525061221e565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611ec7612279565b6001600660146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f0b611667565b604051611f18919061291f565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8790613a4b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161208191906127ae565b60405180910390a3505050565b6120998484846119a0565b6120a5848484846122c3565b6120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db90613add565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661210c83611d7a565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612133612279565b61213f8484848461244a565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121895750601160009054906101000a900460ff16155b156121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090613b6f565b60405180910390fd5b50505050565b50505050565b6121dd610a41565b61221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221390613bdb565b60405180910390fd5b565b6122288383612450565b61223560008484846122c3565b612274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226b90613add565b60405180910390fd5b505050565b612281610a41565b156122c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b890613c47565b60405180910390fd5b565b60006122e48473ffffffffffffffffffffffffffffffffffffffff1661266d565b1561243d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261230d611667565b8786866040518563ffffffff1660e01b815260040161232f9493929190613cb1565b6020604051808303816000875af192505050801561236b57506040513d601f19601f820116820180604052508101906123689190613d12565b60015b6123ed573d806000811461239b576040519150601f19603f3d011682016040523d82523d6000602084013e6123a0565b606091505b5060008151036123e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dc90613add565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612442565b600190505b949350505050565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b690613d8b565b60405180910390fd5b6124c8816120ea565b15612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90613df7565b60405180910390fd5b61251660008383600161212b565b61251f816120ea565b1561255f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255690613df7565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126696000838360016121cf565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280548282559060005260206000209081019282156126cc579160200282015b828111156126cb5782518255916020019190600101906126b0565b5b5090506126d991906126dd565b5090565b5b808211156126f65760008160009055506001016126de565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127438161270e565b811461274e57600080fd5b50565b6000813590506127608161273a565b92915050565b60006020828403121561277c5761277b612704565b5b600061278a84828501612751565b91505092915050565b60008115159050919050565b6127a881612793565b82525050565b60006020820190506127c3600083018461279f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128035780820151818401526020810190506127e8565b60008484015250505050565b6000601f19601f8301169050919050565b600061282b826127c9565b61283581856127d4565b93506128458185602086016127e5565b61284e8161280f565b840191505092915050565b600060208201905081810360008301526128738184612820565b905092915050565b6000819050919050565b61288e8161287b565b811461289957600080fd5b50565b6000813590506128ab81612885565b92915050565b6000602082840312156128c7576128c6612704565b5b60006128d58482850161289c565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612909826128de565b9050919050565b612919816128fe565b82525050565b60006020820190506129346000830184612910565b92915050565b612943816128fe565b811461294e57600080fd5b50565b6000813590506129608161293a565b92915050565b6000806040838503121561297d5761297c612704565b5b600061298b85828601612951565b925050602061299c8582860161289c565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129e38261280f565b810181811067ffffffffffffffff82111715612a0257612a016129ab565b5b80604052505050565b6000612a156126fa565b9050612a2182826129da565b919050565b600067ffffffffffffffff821115612a4157612a406129ab565b5b602082029050602081019050919050565b600080fd5b6000612a6a612a6584612a26565b612a0b565b90508083825260208201905060208402830185811115612a8d57612a8c612a52565b5b835b81811015612ab65780612aa2888261289c565b845260208401935050602081019050612a8f565b5050509392505050565b600082601f830112612ad557612ad46129a6565b5b8135612ae5848260208601612a57565b91505092915050565b60008060408385031215612b0557612b04612704565b5b6000612b138582860161289c565b925050602083013567ffffffffffffffff811115612b3457612b33612709565b5b612b4085828601612ac0565b9150509250929050565b600080600060608486031215612b6357612b62612704565b5b6000612b7186828701612951565b9350506020612b8286828701612951565b9250506040612b938682870161289c565b9150509250925092565b600060208284031215612bb357612bb2612704565b5b6000612bc184828501612951565b91505092915050565b612bd38161287b565b82525050565b6000602082019050612bee6000830184612bca565b92915050565b612bfd81612793565b8114612c0857600080fd5b50565b600081359050612c1a81612bf4565b92915050565b600060208284031215612c3657612c35612704565b5b6000612c4484828501612c0b565b91505092915050565b600067ffffffffffffffff82169050919050565b612c6a81612c4d565b8114612c7557600080fd5b50565b600081359050612c8781612c61565b92915050565b600060208284031215612ca357612ca2612704565b5b6000612cb184828501612c78565b91505092915050565b6000604082019050612ccf600083018561279f565b612cdc602083018461279f565b9392505050565b60008060408385031215612cfa57612cf9612704565b5b6000612d0885828601612951565b9250506020612d1985828601612c0b565b9150509250929050565b600080fd5b600067ffffffffffffffff821115612d4357612d426129ab565b5b612d4c8261280f565b9050602081019050919050565b82818337600083830152505050565b6000612d7b612d7684612d28565b612a0b565b905082815260208101848484011115612d9757612d96612d23565b5b612da2848285612d59565b509392505050565b600082601f830112612dbf57612dbe6129a6565b5b8135612dcf848260208601612d68565b91505092915050565b60008060008060808587031215612df257612df1612704565b5b6000612e0087828801612951565b9450506020612e1187828801612951565b9350506040612e228782880161289c565b925050606085013567ffffffffffffffff811115612e4357612e42612709565b5b612e4f87828801612daa565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e908161287b565b82525050565b6000612ea28383612e87565b60208301905092915050565b6000602082019050919050565b6000612ec682612e5b565b612ed08185612e66565b9350612edb83612e77565b8060005b83811015612f0c578151612ef38882612e96565b9750612efe83612eae565b925050600181019050612edf565b5085935050505092915050565b6000606082019050612f2e600083018661279f565b612f3b602083018561279f565b8181036040830152612f4d8184612ebb565b9050949350505050565b60008060408385031215612f6e57612f6d612704565b5b6000612f7c85828601612951565b9250506020612f8d85828601612951565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fde57607f821691505b602082108103612ff157612ff0612f97565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130536021836127d4565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006130e5603d836127d4565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b60006040820190506131306000830185612910565b61313d6020830184612910565b9392505050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006131a0602d836127d4565b91506131ab82613144565b604082019050919050565b600060208201905081810360008301526131cf81613193565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061320c6018836127d4565b9150613217826131d6565b602082019050919050565b6000602082019050818103600083015261323b816131ff565b9050919050565b7f4e6f2072652d656e7472616e6379000000000000000000000000000000000000600082015250565b6000613278600e836127d4565b915061328382613242565b602082019050919050565b600060208201905081810360008301526132a78161326b565b9050919050565b600081519050919050565b600081905092915050565b60006132cf826132ae565b6132d981856132b9565b93506132e98185602086016127e5565b80840191505092915050565b600061330182846132c4565b915081905092915050565b60008151905061331b81612885565b92915050565b60006020828403121561333757613336612704565b5b60006133458482850161330c565b91505092915050565b7f57616c6c657420646f65736e2774206861766520764d6f6f6e65790000000000600082015250565b6000613384601b836127d4565b915061338f8261334e565b602082019050919050565b600060208201905081810360008301526133b381613377565b9050919050565b7f57616c6c657420616c7265616479206f776e732061207469636b657400000000600082015250565b60006133f0601c836127d4565b91506133fb826133ba565b602082019050919050565b6000602082019050818103600083015261341f816133e3565b9050919050565b7f5469636b6574732061726520736f6c64206f7574000000000000000000000000600082015250565b600061345c6014836127d4565b915061346782613426565b602082019050919050565b6000602082019050818103600083015261348b8161344f565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006134ee6029836127d4565b91506134f982613492565b604082019050919050565b6000602082019050818103600083015261351d816134e1565b9050919050565b7f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e00600082015250565b600061355a601f836127d4565b915061356582613524565b602082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b6000819050919050565b6135a381613590565b82525050565b6135b281612c4d565b82525050565b600061ffff82169050919050565b6135cf816135b8565b82525050565b600063ffffffff82169050919050565b6135ee816135d5565b82525050565b600060a082019050613609600083018861359a565b61361660208301876135a9565b61362360408301866135c6565b61363060608301856135e5565b61363d60808301846135e5565b9695505050505050565b600060408201905061365c6000830185612bca565b61366960208301846135e5565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136cc6026836127d4565b91506136d782613670565b604082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b7f72657175657374206e6f7420666f756e64000000000000000000000000000000600082015250565b60006137386011836127d4565b915061374382613702565b602082019050919050565b600060208201905081810360008301526137678161372b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137d78261287b565b91506137e28361287b565b9250826137f2576137f161379d565b5b828206905092915050565b60008151905061380c8161293a565b92915050565b60006020828403121561382857613827612704565b5b6000613836848285016137fd565b91505092915050565b60006040820190506138546000830185612bca565b81810360208301526138668184612ebb565b90509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006138cb6025836127d4565b91506138d68261386f565b604082019050919050565b600060208201905081810360008301526138fa816138be565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061395d6024836127d4565b915061396882613901565b604082019050919050565b6000602082019050818103600083015261398c81613950565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139c96020836127d4565b91506139d482613993565b602082019050919050565b600060208201905081810360008301526139f8816139bc565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613a356019836127d4565b9150613a40826139ff565b602082019050919050565b60006020820190508181036000830152613a6481613a28565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613ac76032836127d4565b9150613ad282613a6b565b604082019050919050565b60006020820190508181036000830152613af681613aba565b9050919050565b7f43616e6e6f74207472616e73666572207469636b65747320756e74696c20746860008201527f652077696e6e65722069732063686f73656e0000000000000000000000000000602082015250565b6000613b596032836127d4565b9150613b6482613afd565b604082019050919050565b60006020820190508181036000830152613b8881613b4c565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613bc56014836127d4565b9150613bd082613b8f565b602082019050919050565b60006020820190508181036000830152613bf481613bb8565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613c316010836127d4565b9150613c3c82613bfb565b602082019050919050565b60006020820190508181036000830152613c6081613c24565b9050919050565b600082825260208201905092915050565b6000613c83826132ae565b613c8d8185613c67565b9350613c9d8185602086016127e5565b613ca68161280f565b840191505092915050565b6000608082019050613cc66000830187612910565b613cd36020830186612910565b613ce06040830185612bca565b8181036060830152613cf28184613c78565b905095945050505050565b600081519050613d0c8161273a565b92915050565b600060208284031215613d2857613d27612704565b5b6000613d3684828501613cfd565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613d756020836127d4565b9150613d8082613d3f565b602082019050919050565b60006020820190508181036000830152613da481613d68565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613de1601c836127d4565b9150613dec82613dab565b602082019050919050565b60006020820190508181036000830152613e1081613dd4565b905091905056fe697066733a2f2f516d616d34354468345871737743647562686658717a444b75486e61464d774a35394d343173545a715276644a61a26469706673582212202f296101d9716e484a23016ea54509fe65ec92a6d1ed71a4c6ecc1831450230764736f6c63430008120033