60806040523480156200001157600080fd5b506040516200478a3803806200478a833981810160405281019062000037919062000873565b733cc6cdda760b79bafa08df41ecfa224f810dceb66001836040518060400160405280600581526020017f56455253450000000000000000000000000000000000000000000000000000008152508882600090805190602001906200009e92919062000586565b508160019080519060200190620000b792919062000586565b508060069080519060200190620000d092919062000586565b50505050620000f4620000e8620003cb60201b60201c565b620003d360201b60201c565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002e9578015620001af576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b8152600401620001759291906200094a565b600060405180830381600087803b1580156200019057600080fd5b505af1158015620001a5573d6000803e3d6000fd5b50505050620002e8565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000269576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b81526004016200022f9291906200094a565b600060405180830381600087803b1580156200024a57600080fd5b505af11580156200025f573d6000803e3d6000fd5b50505050620002e7565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401620002b2919062000977565b600060405180830381600087803b158015620002cd57600080fd5b505af1158015620002e2573d6000803e3d6000fd5b505050505b5b5b505083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200037f33826200049960201b60201c565b33600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000a7b565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612710811115620004e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004d890620009f5565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b828054620005949062000a46565b90600052602060002090601f016020900481019282620005b8576000855562000604565b82601f10620005d357805160ff191683800117855562000604565b8280016001018555821562000604579182015b8281111562000603578251825591602001919060010190620005e6565b5b50905062000613919062000617565b5090565b5b808211156200063257600081600090555060010162000618565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200069f8262000654565b810181811067ffffffffffffffff82111715620006c157620006c062000665565b5b80604052505050565b6000620006d662000636565b9050620006e4828262000694565b919050565b600067ffffffffffffffff82111562000707576200070662000665565b5b620007128262000654565b9050602081019050919050565b60005b838110156200073f57808201518184015260208101905062000722565b838111156200074f576000848401525b50505050565b60006200076c6200076684620006e9565b620006ca565b9050828152602081018484840111156200078b576200078a6200064f565b5b620007988482856200071f565b509392505050565b600082601f830112620007b857620007b76200064a565b5b8151620007ca84826020860162000755565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080082620007d3565b9050919050565b6200081281620007f3565b81146200081e57600080fd5b50565b600081519050620008328162000807565b92915050565b6000819050919050565b6200084d8162000838565b81146200085957600080fd5b50565b6000815190506200086d8162000842565b92915050565b600080600080600060a0868803121562000892576200089162000640565b5b600086015167ffffffffffffffff811115620008b357620008b262000645565b5b620008c188828901620007a0565b9550506020620008d48882890162000821565b9450506040620008e78882890162000821565b935050606086015167ffffffffffffffff8111156200090b576200090a62000645565b5b6200091988828901620007a0565b92505060806200092c888289016200085c565b9150509295509295909350565b6200094481620007f3565b82525050565b600060408201905062000961600083018562000939565b62000970602083018462000939565b9392505050565b60006020820190506200098e600083018462000939565b92915050565b600082825260208201905092915050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b6000620009dd601a8362000994565b9150620009ea82620009a5565b602082019050919050565b6000602082019050818103600083015262000a1081620009ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a5f57607f821691505b60208210810362000a755762000a7462000a17565b5b50919050565b613cff8062000a8b6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636ebcf6071161010f578063b50e4664116100a2578063d0414c9d11610071578063d0414c9d146105a4578063d28d8852146105c2578063e985e9c5146105e0578063f2fde38b14610610576101f0565b8063b50e466414610520578063b88d4fde1461053c578063c0928eae14610558578063c87b56dd14610574576101f0565b80638da5cb5b116100de5780638da5cb5b1461049857806395d89b41146104b6578063992924a6146104d4578063a22cb46514610504576101f0565b80636ebcf6071461041257806370a0823114610442578063715018a6146104725780638c7ea24b1461047c576101f0565b80632a55205a1161018757806342842e0e1161015657806342842e0e1461038c57806358884432146103a85780636352211e146103c65780636c52c3fb146103f6576101f0565b80632a55205a146103035780633a330022146103345780633e63eb2a1461035057806341f434341461036e576101f0565b8063081812fc116101c3578063081812fc1461027d578063095ea7b3146102ad57806318160ddd146102c957806323b872dd146102e7576101f0565b806301ffc9a7146101f557806302d05d3f1461022557806302fe53051461024357806306fdde031461025f575b600080fd5b61020f600480360381019061020a91906127f1565b61062c565b60405161021c9190612839565b60405180910390f35b61022d61063e565b60405161023a9190612895565b60405180910390f35b61025d600480360381019061025891906129f6565b610664565b005b6102676106ca565b6040516102749190612ac7565b60405180910390f35b61029760048036038101906102929190612b1f565b61075c565b6040516102a49190612895565b60405180910390f35b6102c760048036038101906102c29190612b78565b6107a2565b005b6102d16107bb565b6040516102de9190612bc7565b60405180910390f35b61030160048036038101906102fc9190612be2565b6107c1565b005b61031d60048036038101906103189190612c35565b610810565b60405161032b929190612c75565b60405180910390f35b61034e60048036038101906103499190612c9e565b6108d0565b005b61035861091c565b6040516103659190612ac7565b60405180910390f35b6103766109aa565b6040516103839190612d2a565b60405180910390f35b6103a660048036038101906103a19190612be2565b6109bc565b005b6103b0610a0b565b6040516103bd9190612895565b60405180910390f35b6103e060048036038101906103db9190612b1f565b610a31565b6040516103ed9190612895565b60405180910390f35b610410600480360381019061040b9190612c9e565b610ab7565b005b61042c60048036038101906104279190612c9e565b610b03565b6040516104399190612bc7565b60405180910390f35b61045c60048036038101906104579190612c9e565b610b1b565b6040516104699190612bc7565b60405180910390f35b61047a610bd2565b005b61049660048036038101906104919190612b78565b610be6565b005b6104a0610bfc565b6040516104ad9190612895565b60405180910390f35b6104be610c26565b6040516104cb9190612ac7565b60405180910390f35b6104ee60048036038101906104e99190612b1f565b610cb8565b6040516104fb9190612895565b60405180910390f35b61051e60048036038101906105199190612d71565b610ceb565b005b61053a60048036038101906105359190612f3c565b610d04565b005b61055660048036038101906105519190613055565b610e04565b005b610572600480360381019061056d9190612b78565b610e55565b005b61058e60048036038101906105899190612b1f565b611129565b60405161059b9190612ac7565b60405180910390f35b6105ac61113b565b6040516105b99190612895565b60405180910390f35b6105ca611161565b6040516105d79190612ac7565b60405180910390f35b6105fa60048036038101906105f591906130d8565b6111ef565b6040516106079190612839565b60405180910390f35b61062a60048036038101906106259190612c9e565b611283565b005b600061063782611306565b9050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106be57600080fd5b6106c781611380565b50565b6060600080546106d990613147565b80601f016020809104026020016040519081016040528092919081815260200182805461070590613147565b80156107525780601f1061072757610100808354040283529160200191610752565b820191906000526020600020905b81548152906001019060200180831161073557829003601f168201915b5050505050905090565b60006107678261139a565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b816107ac816113e5565b6107b683836114e2565b505050565b60095481565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ff576107fe336113e5565b5b61080a8484846115f9565b50505050565b600080600060086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905080600001519250612710816020015162ffffff16856108bc91906131a7565b6108c69190613230565b9150509250929050565b6108d8611659565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6006805461092990613147565b80601f016020809104026020016040519081016040528092919081815260200182805461095590613147565b80156109a25780601f10610977576101008083540402835291602001916109a2565b820191906000526020600020905b81548152906001019060200180831161098557829003601f168201915b505050505081565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109fa576109f9336113e5565b5b610a058484846116d7565b50505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610a3d836116f7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa5906132ad565b60405180910390fd5b80915050919050565b610abf611659565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b829061333f565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bda611659565b610be46000611734565b565b610bee611659565b610bf882826117fa565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c3590613147565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6190613147565b8015610cae5780601f10610c8357610100808354040283529160200191610cae565b820191906000526020600020905b815481529060010190602001808311610c9157829003601f168201915b5050505050905090565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b81610cf5816113e5565b610cff83836118e4565b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5e57600080fd5b8151815114610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d99906133ab565b60405180910390fd5b60005b8151811015610dff57610dec838281518110610dc457610dc36133cb565b5b6020026020010151838381518110610ddf57610dde6133cb565b5b6020026020010151610e55565b8080610df7906133fa565b915050610da5565b505050565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e4257610e41336113e5565b5b610e4e858585856118fa565b5050505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eaf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f159061348e565b60405180910390fd5b610f278161195c565b15610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e906134fa565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fb7919061351a565b92505081905550600160096000828254610fd1919061351a565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60606111348261199d565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000805461116e90613147565b80601f016020809104026020016040519081016040528092919081815260200182805461119a90613147565b80156111e75780601f106111bc576101008083540402835291602001916111e7565b820191906000526020600020905b8154815290600101906020018083116111ca57829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61128b611659565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f1906135e2565b60405180910390fd5b61130381611734565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611379575061137882611a88565b5b9050919050565b80600690805190602001906113969291906126e2565b5050565b6113a38161195c565b6113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d9906132ad565b60405180910390fd5b50565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b11156114df576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b815260040161145c929190613602565b602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149d9190613640565b6114de57806040517fede71dcc0000000000000000000000000000000000000000000000000000000081526004016114d59190612895565b60405180910390fd5b5b50565b60006114ed82610a31565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611554906136df565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661157c611b6a565b73ffffffffffffffffffffffffffffffffffffffff1614806115ab57506115aa816115a5611b6a565b6111ef565b5b6115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613771565b60405180910390fd5b6115f48383611b72565b505050565b61160a611604611b6a565b82611c2b565b611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090613803565b60405180910390fd5b611654838383611cc0565b505050565b611661611b6a565b73ffffffffffffffffffffffffffffffffffffffff1661167f610bfc565b73ffffffffffffffffffffffffffffffffffffffff16146116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc9061386f565b60405180910390fd5b565b6116f283838360405180602001604052806000815250610e04565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61271081111561183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906138db565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548162ffffff021916908362ffffff1602179055509050505050565b6118f66118ef611b6a565b8383611fb9565b5050565b61190b611905611b6a565b83611c2b565b61194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190613803565b60405180910390fd5b61195684848484612125565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661197e836116f7565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60606119a88261139a565b6000600680546119b790613147565b80601f01602080910402602001604051908101604052809291908181526020018280546119e390613147565b8015611a305780601f10611a0557610100808354040283529160200191611a30565b820191906000526020600020905b815481529060010190602001808311611a1357829003601f168201915b505050505090506000815111611a555760405180602001604052806000815250611a80565b80611a5f84612181565b604051602001611a7092919061395d565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b5357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611b635750611b628261224f565b5b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611be583610a31565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611c3783610a31565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c795750611c7881856111ef565b5b80611cb757508373ffffffffffffffffffffffffffffffffffffffff16611c9f8461075c565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611ce082610a31565b73ffffffffffffffffffffffffffffffffffffffff1614611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d90613a02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c90613a94565b60405180910390fd5b611db283838360016122b9565b8273ffffffffffffffffffffffffffffffffffffffff16611dd282610a31565b73ffffffffffffffffffffffffffffffffffffffff1614611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f90613a02565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611fb483838360016123df565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e90613b00565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121189190612839565b60405180910390a3505050565b612130848484611cc0565b61213c848484846123e5565b61217b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217290613b92565b60405180910390fd5b50505050565b6060600060016121908461256c565b01905060008167ffffffffffffffff8111156121af576121ae6128cb565b5b6040519080825280601f01601f1916602001820160405280156121e15781602001600182028036833780820191505090505b509050600082602001820190505b600115612244578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161223857612237613201565b5b049450600085036121ef575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60018111156123d957600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461234d5780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123459190613bb2565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123d85780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123d0919061351a565b925050819055505b5b50505050565b50505050565b60006124068473ffffffffffffffffffffffffffffffffffffffff166126bf565b1561255f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261242f611b6a565b8786866040518563ffffffff1660e01b81526004016124519493929190613c3b565b6020604051808303816000875af192505050801561248d57506040513d601f19601f8201168201806040525081019061248a9190613c9c565b60015b61250f573d80600081146124bd576040519150601f19603f3d011682016040523d82523d6000602084013e6124c2565b606091505b506000815103612507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fe90613b92565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612564565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106125ca577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816125c0576125bf613201565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612607576d04ee2d6d415b85acef810000000083816125fd576125fc613201565b5b0492506020810190505b662386f26fc10000831061263657662386f26fc10000838161262c5761262b613201565b5b0492506010810190505b6305f5e100831061265f576305f5e100838161265557612654613201565b5b0492506008810190505b612710831061268457612710838161267a57612679613201565b5b0492506004810190505b606483106126a7576064838161269d5761269c613201565b5b0492506002810190505b600a83106126b6576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546126ee90613147565b90600052602060002090601f0160209004810192826127105760008555612757565b82601f1061272957805160ff1916838001178555612757565b82800160010185558215612757579182015b8281111561275657825182559160200191906001019061273b565b5b5090506127649190612768565b5090565b5b80821115612781576000816000905550600101612769565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127ce81612799565b81146127d957600080fd5b50565b6000813590506127eb816127c5565b92915050565b6000602082840312156128075761280661278f565b5b6000612815848285016127dc565b91505092915050565b60008115159050919050565b6128338161281e565b82525050565b600060208201905061284e600083018461282a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061287f82612854565b9050919050565b61288f81612874565b82525050565b60006020820190506128aa6000830184612886565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612903826128ba565b810181811067ffffffffffffffff82111715612922576129216128cb565b5b80604052505050565b6000612935612785565b905061294182826128fa565b919050565b600067ffffffffffffffff821115612961576129606128cb565b5b61296a826128ba565b9050602081019050919050565b82818337600083830152505050565b600061299961299484612946565b61292b565b9050828152602081018484840111156129b5576129b46128b5565b5b6129c0848285612977565b509392505050565b600082601f8301126129dd576129dc6128b0565b5b81356129ed848260208601612986565b91505092915050565b600060208284031215612a0c57612a0b61278f565b5b600082013567ffffffffffffffff811115612a2a57612a29612794565b5b612a36848285016129c8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a79578082015181840152602081019050612a5e565b83811115612a88576000848401525b50505050565b6000612a9982612a3f565b612aa38185612a4a565b9350612ab3818560208601612a5b565b612abc816128ba565b840191505092915050565b60006020820190508181036000830152612ae18184612a8e565b905092915050565b6000819050919050565b612afc81612ae9565b8114612b0757600080fd5b50565b600081359050612b1981612af3565b92915050565b600060208284031215612b3557612b3461278f565b5b6000612b4384828501612b0a565b91505092915050565b612b5581612874565b8114612b6057600080fd5b50565b600081359050612b7281612b4c565b92915050565b60008060408385031215612b8f57612b8e61278f565b5b6000612b9d85828601612b63565b9250506020612bae85828601612b0a565b9150509250929050565b612bc181612ae9565b82525050565b6000602082019050612bdc6000830184612bb8565b92915050565b600080600060608486031215612bfb57612bfa61278f565b5b6000612c0986828701612b63565b9350506020612c1a86828701612b63565b9250506040612c2b86828701612b0a565b9150509250925092565b60008060408385031215612c4c57612c4b61278f565b5b6000612c5a85828601612b0a565b9250506020612c6b85828601612b0a565b9150509250929050565b6000604082019050612c8a6000830185612886565b612c976020830184612bb8565b9392505050565b600060208284031215612cb457612cb361278f565b5b6000612cc284828501612b63565b91505092915050565b6000819050919050565b6000612cf0612ceb612ce684612854565b612ccb565b612854565b9050919050565b6000612d0282612cd5565b9050919050565b6000612d1482612cf7565b9050919050565b612d2481612d09565b82525050565b6000602082019050612d3f6000830184612d1b565b92915050565b612d4e8161281e565b8114612d5957600080fd5b50565b600081359050612d6b81612d45565b92915050565b60008060408385031215612d8857612d8761278f565b5b6000612d9685828601612b63565b9250506020612da785828601612d5c565b9150509250929050565b600067ffffffffffffffff821115612dcc57612dcb6128cb565b5b602082029050602081019050919050565b600080fd5b6000612df5612df084612db1565b61292b565b90508083825260208201905060208402830185811115612e1857612e17612ddd565b5b835b81811015612e415780612e2d8882612b63565b845260208401935050602081019050612e1a565b5050509392505050565b600082601f830112612e6057612e5f6128b0565b5b8135612e70848260208601612de2565b91505092915050565b600067ffffffffffffffff821115612e9457612e936128cb565b5b602082029050602081019050919050565b6000612eb8612eb384612e79565b61292b565b90508083825260208201905060208402830185811115612edb57612eda612ddd565b5b835b81811015612f045780612ef08882612b0a565b845260208401935050602081019050612edd565b5050509392505050565b600082601f830112612f2357612f226128b0565b5b8135612f33848260208601612ea5565b91505092915050565b60008060408385031215612f5357612f5261278f565b5b600083013567ffffffffffffffff811115612f7157612f70612794565b5b612f7d85828601612e4b565b925050602083013567ffffffffffffffff811115612f9e57612f9d612794565b5b612faa85828601612f0e565b9150509250929050565b600067ffffffffffffffff821115612fcf57612fce6128cb565b5b612fd8826128ba565b9050602081019050919050565b6000612ff8612ff384612fb4565b61292b565b905082815260208101848484011115613014576130136128b5565b5b61301f848285612977565b509392505050565b600082601f83011261303c5761303b6128b0565b5b813561304c848260208601612fe5565b91505092915050565b6000806000806080858703121561306f5761306e61278f565b5b600061307d87828801612b63565b945050602061308e87828801612b63565b935050604061309f87828801612b0a565b925050606085013567ffffffffffffffff8111156130c0576130bf612794565b5b6130cc87828801613027565b91505092959194509250565b600080604083850312156130ef576130ee61278f565b5b60006130fd85828601612b63565b925050602061310e85828601612b63565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061315f57607f821691505b60208210810361317257613171613118565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131b282612ae9565b91506131bd83612ae9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131f6576131f5613178565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323b82612ae9565b915061324683612ae9565b92508261325657613255613201565b5b828204905092915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000613297601883612a4a565b91506132a282613261565b602082019050919050565b600060208201905081810360008301526132c68161328a565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613329602983612a4a565b9150613334826132cd565b604082019050919050565b600060208201905081810360008301526133588161331c565b9050919050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b6000613395601683612a4a565b91506133a08261335f565b602082019050919050565b600060208201905081810360008301526133c481613388565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061340582612ae9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361343757613436613178565b5b600182019050919050565b7f6d696e7420746f20746865207a65726f20616464726573730000000000000000600082015250565b6000613478601883612a4a565b915061348382613442565b602082019050919050565b600060208201905081810360008301526134a78161346b565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006134e4601c83612a4a565b91506134ef826134ae565b602082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b600061352582612ae9565b915061353083612ae9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561356557613564613178565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135cc602683612a4a565b91506135d782613570565b604082019050919050565b600060208201905081810360008301526135fb816135bf565b9050919050565b60006040820190506136176000830185612886565b6136246020830184612886565b9392505050565b60008151905061363a81612d45565b92915050565b6000602082840312156136565761365561278f565b5b60006136648482850161362b565b91505092915050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006136c9602183612a4a565b91506136d48261366d565b604082019050919050565b600060208201905081810360008301526136f8816136bc565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b600061375b603d83612a4a565b9150613766826136ff565b604082019050919050565b6000602082019050818103600083015261378a8161374e565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006137ed602d83612a4a565b91506137f882613791565b604082019050919050565b6000602082019050818103600083015261381c816137e0565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613859602083612a4a565b915061386482613823565b602082019050919050565b600060208201905081810360008301526138888161384c565b9050919050565b7f45524332393831526f79616c746965733a20546f6f2068696768000000000000600082015250565b60006138c5601a83612a4a565b91506138d08261388f565b602082019050919050565b600060208201905081810360008301526138f4816138b8565b9050919050565b600081905092915050565b600061391182612a3f565b61391b81856138fb565b935061392b818560208601612a5b565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000815250565b60006139698285613906565b915061397482613937565b6001820191506139848284613906565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006139ec602583612a4a565b91506139f782613990565b604082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a7e602483612a4a565b9150613a8982613a22565b604082019050919050565b60006020820190508181036000830152613aad81613a71565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613aea601983612a4a565b9150613af582613ab4565b602082019050919050565b60006020820190508181036000830152613b1981613add565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613b7c603283612a4a565b9150613b8782613b20565b604082019050919050565b60006020820190508181036000830152613bab81613b6f565b9050919050565b6000613bbd82612ae9565b9150613bc883612ae9565b925082821015613bdb57613bda613178565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000613c0d82613be6565b613c178185613bf1565b9350613c27818560208601612a5b565b613c30816128ba565b840191505092915050565b6000608082019050613c506000830187612886565b613c5d6020830186612886565b613c6a6040830185612bb8565b8181036060830152613c7c8184613c02565b905095945050505050565b600081519050613c96816127c5565b92915050565b600060208284031215613cb257613cb161278f565b5b6000613cc084828501613c87565b9150509291505056fea26469706673582212201055069060ffb451301db0da39d6db225fb6ca66f92a2dd081c7a724e430af0e64736f6c634300080d003300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e445fb0297f7d1f507df708185946210eb6a9de60000000000000000000000001bfe7452477accc0188c34b3a4e8e3b15bf671b000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000002ee0000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001941746d6f7370686572657320627920436f727920486162657200000000000000