6080604052736281f01e12b8e343cb8838aae1b12fdda1b252cb600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180602001604052806000815250600c9081620000799190620005e8565b506103e76012553480156200008d57600080fd5b5060405162004159380380620041598339818101604052810190620000b39190620008a1565b87878160029081620000c69190620005e8565b508060039081620000d89190620005e8565b50620000e96200019260201b60201c565b600081905550505062000111620001056200019b60201b60201c565b620001a360201b60201c565b60016009819055506200012a896200026960201b60201c565b6200013b896200028e60201b60201c565b846010819055508360118190555082600e8190555081600f8190555080601360006101000a81548160ff02191690831515021790555085600c9081620001829190620005e8565b5050505050505050505062000a7f565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000279620002b360201b60201c565b80600b90816200028a9190620005e8565b5050565b6200029e620002b360201b60201c565b80600d9081620002af9190620005e8565b5050565b620002c36200019b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002e96200034460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003399062000a5d565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003f057607f821691505b602082108103620004065762000405620003a8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004707fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000431565b6200047c868362000431565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004c9620004c3620004bd8462000494565b6200049e565b62000494565b9050919050565b6000819050919050565b620004e583620004a8565b620004fd620004f482620004d0565b8484546200043e565b825550505050565b600090565b6200051462000505565b62000521818484620004da565b505050565b5b8181101562000549576200053d6000826200050a565b60018101905062000527565b5050565b601f821115620005985762000562816200040c565b6200056d8462000421565b810160208510156200057d578190505b620005956200058c8562000421565b83018262000526565b50505b505050565b600082821c905092915050565b6000620005bd600019846008026200059d565b1980831691505092915050565b6000620005d88383620005aa565b9150826002028217905092915050565b620005f3826200036e565b67ffffffffffffffff8111156200060f576200060e62000379565b5b6200061b8254620003d7565b620006288282856200054d565b600060209050601f8311600181146200066057600084156200064b578287015190505b620006578582620005ca565b865550620006c7565b601f19841662000670866200040c565b60005b828110156200069a5784890151825560018201915060208501945060208101905062000673565b86831015620006ba5784890151620006b6601f891682620005aa565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200070982620006ed565b810181811067ffffffffffffffff821117156200072b576200072a62000379565b5b80604052505050565b600062000740620006cf565b90506200074e8282620006fe565b919050565b600067ffffffffffffffff82111562000771576200077062000379565b5b6200077c82620006ed565b9050602081019050919050565b60005b83811015620007a95780820151818401526020810190506200078c565b60008484015250505050565b6000620007cc620007c68462000753565b62000734565b905082815260208101848484011115620007eb57620007ea620006e8565b5b620007f884828562000789565b509392505050565b600082601f830112620008185762000817620006e3565b5b81516200082a848260208601620007b5565b91505092915050565b6200083e8162000494565b81146200084a57600080fd5b50565b6000815190506200085e8162000833565b92915050565b60008115159050919050565b6200087b8162000864565b81146200088757600080fd5b50565b6000815190506200089b8162000870565b92915050565b60008060008060008060008060006101208a8c031215620008c757620008c6620006d9565b5b60008a015167ffffffffffffffff811115620008e857620008e7620006de565b5b620008f68c828d0162000800565b99505060208a015167ffffffffffffffff8111156200091a5762000919620006de565b5b620009288c828d0162000800565b98505060408a015167ffffffffffffffff8111156200094c576200094b620006de565b5b6200095a8c828d0162000800565b97505060608a015167ffffffffffffffff8111156200097e576200097d620006de565b5b6200098c8c828d0162000800565b96505060806200099f8c828d016200084d565b95505060a0620009b28c828d016200084d565b94505060c0620009c58c828d016200084d565b93505060e0620009d88c828d016200084d565b925050610100620009ec8c828d016200088a565b9150509295985092959850929598565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000a45602083620009fc565b915062000a528262000a0d565b602082019050919050565b6000602082019050818103600083015262000a788162000a36565b9050919050565b6136ca8062000a8f6000396000f3fe60806040526004361061021a5760003560e01c8063715018a611610123578063c6682862116100ab578063e268e4d31161006f578063e268e4d3146107a5578063e985e9c5146107ce578063e99678c81461080b578063f2c4ce1e14610836578063f2fde38b1461085f5761021a565b8063c6682862146106ac578063c87b56dd146106d7578063d5abeb0114610714578063da3ef23f1461073f578063dc33e681146107685761021a565b806395d89b41116100f257806395d89b41146105e8578063a0712d6814610613578063a22cb4651461062f578063b88d4fde14610658578063bd7a1998146106815761021a565b8063715018a6146105405780638462151c146105575780638da5cb5b14610594578063940cd05b146105bf5761021a565b806336afeca2116101a65780635183022711610175578063518302271461044757806355f804b3146104725780636352211e1461049b5780636c0360eb146104d857806370a08231146105035761021a565b806336afeca2146103c05780633ccfd60b146103eb57806342842e0e146103f557806344a0d68a1461041e5761021a565b8063095ea7b3116101ed578063095ea7b3146102ef57806313faede614610318578063149835a01461034357806318160ddd1461036c57806323b872dd146103975761021a565b806301ffc9a71461021f57806306fdde031461025c578063081812fc14610287578063081c8c44146102c4575b600080fd5b34801561022b57600080fd5b5061024660048036038101906102419190612697565b610888565b60405161025391906126df565b60405180910390f35b34801561026857600080fd5b5061027161091a565b60405161027e919061278a565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a991906127e2565b6109ac565b6040516102bb9190612850565b60405180910390f35b3480156102d057600080fd5b506102d9610a2b565b6040516102e6919061278a565b60405180910390f35b3480156102fb57600080fd5b5061031660048036038101906103119190612897565b610ab9565b005b34801561032457600080fd5b5061032d610bfd565b60405161033a91906128e6565b60405180910390f35b34801561034f57600080fd5b5061036a600480360381019061036591906127e2565b610c03565b005b34801561037857600080fd5b50610381610c15565b60405161038e91906128e6565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b99190612901565b610c2c565b005b3480156103cc57600080fd5b506103d5610f4e565b6040516103e291906128e6565b60405180910390f35b6103f3610f54565b005b34801561040157600080fd5b5061041c60048036038101906104179190612901565b611007565b005b34801561042a57600080fd5b50610445600480360381019061044091906127e2565b611027565b005b34801561045357600080fd5b5061045c611039565b60405161046991906126df565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190612a89565b61104c565b005b3480156104a757600080fd5b506104c260048036038101906104bd91906127e2565b611067565b6040516104cf9190612850565b60405180910390f35b3480156104e457600080fd5b506104ed611079565b6040516104fa919061278a565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190612ad2565b611107565b60405161053791906128e6565b60405180910390f35b34801561054c57600080fd5b506105556111bf565b005b34801561056357600080fd5b5061057e60048036038101906105799190612ad2565b6111d3565b60405161058b9190612bbd565b60405180910390f35b3480156105a057600080fd5b506105a9611316565b6040516105b69190612850565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190612c0b565b611340565b005b3480156105f457600080fd5b506105fd611365565b60405161060a919061278a565b60405180910390f35b61062d600480360381019061062891906127e2565b6113f7565b005b34801561063b57600080fd5b5061065660048036038101906106519190612c38565b61162e565b005b34801561066457600080fd5b5061067f600480360381019061067a9190612d19565b6117a5565b005b34801561068d57600080fd5b50610696611818565b6040516106a391906128e6565b60405180910390f35b3480156106b857600080fd5b506106c161181e565b6040516106ce919061278a565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f991906127e2565b6118ac565b60405161070b919061278a565b60405180910390f35b34801561072057600080fd5b50610729611a04565b60405161073691906128e6565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612a89565b611a0a565b005b34801561077457600080fd5b5061078f600480360381019061078a9190612ad2565b611a25565b60405161079c91906128e6565b60405180910390f35b3480156107b157600080fd5b506107cc60048036038101906107c791906127e2565b611a37565b005b3480156107da57600080fd5b506107f560048036038101906107f09190612d9c565b611a49565b60405161080291906126df565b60405180910390f35b34801561081757600080fd5b50610820611add565b60405161082d91906128e6565b60405180910390f35b34801561084257600080fd5b5061085d60048036038101906108589190612a89565b611ae3565b005b34801561086b57600080fd5b5061088660048036038101906108819190612ad2565b611afe565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108e357506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109135750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461092990612e0b565b80601f016020809104026020016040519081016040528092919081815260200182805461095590612e0b565b80156109a25780601f10610977576101008083540402835291602001916109a2565b820191906000526020600020905b81548152906001019060200180831161098557829003601f168201915b5050505050905090565b60006109b782611b81565b6109ed576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610a3890612e0b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6490612e0b565b8015610ab15780601f10610a8657610100808354040283529160200191610ab1565b820191906000526020600020905b815481529060010190602001808311610a9457829003601f168201915b505050505081565b6000610ac482611067565b90508073ffffffffffffffffffffffffffffffffffffffff16610ae5611be0565b73ffffffffffffffffffffffffffffffffffffffff1614610b4857610b1181610b0c611be0565b611a49565b610b47576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600e5481565b610c0b611be8565b8060108190555050565b6000610c1f611c66565b6001546000540303905090565b6000610c3782611c6f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610caa84611d3b565b91509150610cc08187610cbb611be0565b611d62565b610d0c57610cd586610cd0611be0565b611a49565b610d0b576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d72576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d7f8686866001611da6565b8015610d8a57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e5885610e34888887611dac565b7c020000000000000000000000000000000000000000000000000000000017611dd4565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610ede5760006001850190506000600460008381526020019081526020016000205403610edc576000548114610edb578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f468686866001611dff565b505050505050565b600f5481565b610f5c611be8565b600260095403610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890612e88565b60405180910390fd5b60026009819055506000479050610fb6611be0565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ffb573d6000803e3d6000fd5b50506001600981905550565b611022838383604051806020016040528060008152506117a5565b505050565b61102f611be8565b80600e8190555050565b601360009054906101000a900460ff1681565b611054611be8565b80600b90816110639190613054565b5050565b600061107282611c6f565b9050919050565b600b805461108690612e0b565b80601f01602080910402602001604051908101604052809291908181526020018280546110b290612e0b565b80156110ff5780601f106110d4576101008083540402835291602001916110ff565b820191906000526020600020905b8154815290600101906020018083116110e257829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361116e576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6111c7611be8565b6111d16000611e05565b565b606060008060006111e385611107565b905060008167ffffffffffffffff8111156112015761120061295e565b5b60405190808252806020026020018201604052801561122f5781602001602082028036833780820191505090505b50905061123a6125dc565b6000611244611c66565b90505b8386146113085761125781611ecb565b915081604001516112fd57600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146112a257816000015194505b8773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036112fc57808387806001019850815181106112ef576112ee613126565b5b6020026020010181815250505b5b806001019050611247565b508195505050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611348611be8565b80601360006101000a81548160ff02191690831515021790555050565b60606003805461137490612e0b565b80601f01602080910402602001604051908101604052809291908181526020018280546113a090612e0b565b80156113ed5780601f106113c2576101008083540402835291602001916113ed565b820191906000526020600020905b8154815290600101906020018083116113d057829003601f168201915b5050505050905090565b60026009540361143c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143390612e88565b60405180910390fd5b600260098190555060115461144f610c15565b1061149a57600e54341015611499576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611490906131a1565b60405180910390fd5b5b60028110156114e957600e543410156114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df906131a1565b60405180910390fd5b5b600f5434101561152e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611525906131a1565b60405180910390fd5b6000341115611612576000600a34611546919061321f565b9050600081346115569190613250565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156115c0573d6000803e3d6000fd5b506115c9611316565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561160e573d6000803e3d6000fd5b5050505b61162361161d611be0565b82611ef6565b600160098190555050565b611636611be0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169a576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006116a7611be0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611754611be0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161179991906126df565b60405180910390a35050565b6117b0848484610c2c565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611812576117db84848484611f14565b611811576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60125481565b600c805461182b90612e0b565b80601f016020809104026020016040519081016040528092919081815260200182805461185790612e0b565b80156118a45780601f10611879576101008083540402835291602001916118a4565b820191906000526020600020905b81548152906001019060200180831161188757829003601f168201915b505050505081565b60606118b782611b81565b6118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed906132f6565b60405180910390fd5b60001515601360009054906101000a900460ff161515036119a357600d805461191e90612e0b565b80601f016020809104026020016040519081016040528092919081815260200182805461194a90612e0b565b80156119975780601f1061196c57610100808354040283529160200191611997565b820191906000526020600020905b81548152906001019060200180831161197a57829003601f168201915b505050505090506119ff565b60006119ad612064565b905060008151116119cd57604051806020016040528060008152506119fb565b806119d7846120f6565b600c6040516020016119eb939291906133d5565b6040516020818303038152906040525b9150505b919050565b60105481565b611a12611be8565b80600c9081611a219190613054565b5050565b6000611a3082612256565b9050919050565b611a3f611be8565b8060128190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60115481565b611aeb611be8565b80600d9081611afa9190613054565b5050565b611b06611be8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613478565b60405180910390fd5b611b7e81611e05565b50565b600081611b8c611c66565b11158015611b9b575060005482105b8015611bd9575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b611bf06122ad565b73ffffffffffffffffffffffffffffffffffffffff16611c0e611316565b73ffffffffffffffffffffffffffffffffffffffff1614611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b906134e4565b60405180910390fd5b565b60006001905090565b60008082905080611c7e611c66565b11611d0457600054811015611d035760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611d01575b60008103611cf7576004600083600190039350838152602001908152602001600020549050611ccd565b8092505050611d36565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611dc38686846122b5565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611ed36125dc565b611eef60046000848152602001908152602001600020546122be565b9050919050565b611f10828260405180602001604052806000815250612374565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f3a611be0565b8786866040518563ffffffff1660e01b8152600401611f5c9493929190613559565b6020604051808303816000875af1925050508015611f9857506040513d601f19601f82011682018060405250810190611f9591906135ba565b60015b612011573d8060008114611fc8576040519150601f19603f3d011682016040523d82523d6000602084013e611fcd565b606091505b506000815103612009576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600b805461207390612e0b565b80601f016020809104026020016040519081016040528092919081815260200182805461209f90612e0b565b80156120ec5780601f106120c1576101008083540402835291602001916120ec565b820191906000526020600020905b8154815290600101906020018083116120cf57829003601f168201915b5050505050905090565b60606000820361213d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612251565b600082905060005b6000821461216f578080612158906135e7565b915050600a82612168919061321f565b9150612145565b60008167ffffffffffffffff81111561218b5761218a61295e565b5b6040519080825280601f01601f1916602001820160405280156121bd5781602001600182028036833780820191505090505b5090505b6000851461224a576001826121d69190613250565b9150600a856121e5919061362f565b60306121f19190613660565b60f81b81838151811061220757612206613126565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612243919061321f565b94506121c1565b8093505050505b919050565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b600033905090565b60009392505050565b6122c66125dc565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b61237e8383612411565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461240c57600080549050600083820390505b6123be6000868380600101945086611f14565b6123f4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106123ab57816000541461240957600080fd5b50505b505050565b60008054905060008203612451576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61245e6000848385611da6565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506124d5836124c66000866000611dac565b6124cf856125cc565b17611dd4565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461257657808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905061253b565b50600082036125b1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506125c76000848385611dff565b505050565b60006001821460e11b9050919050565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126748161263f565b811461267f57600080fd5b50565b6000813590506126918161266b565b92915050565b6000602082840312156126ad576126ac612635565b5b60006126bb84828501612682565b91505092915050565b60008115159050919050565b6126d9816126c4565b82525050565b60006020820190506126f460008301846126d0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612734578082015181840152602081019050612719565b60008484015250505050565b6000601f19601f8301169050919050565b600061275c826126fa565b6127668185612705565b9350612776818560208601612716565b61277f81612740565b840191505092915050565b600060208201905081810360008301526127a48184612751565b905092915050565b6000819050919050565b6127bf816127ac565b81146127ca57600080fd5b50565b6000813590506127dc816127b6565b92915050565b6000602082840312156127f8576127f7612635565b5b6000612806848285016127cd565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283a8261280f565b9050919050565b61284a8161282f565b82525050565b60006020820190506128656000830184612841565b92915050565b6128748161282f565b811461287f57600080fd5b50565b6000813590506128918161286b565b92915050565b600080604083850312156128ae576128ad612635565b5b60006128bc85828601612882565b92505060206128cd858286016127cd565b9150509250929050565b6128e0816127ac565b82525050565b60006020820190506128fb60008301846128d7565b92915050565b60008060006060848603121561291a57612919612635565b5b600061292886828701612882565b935050602061293986828701612882565b925050604061294a868287016127cd565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61299682612740565b810181811067ffffffffffffffff821117156129b5576129b461295e565b5b80604052505050565b60006129c861262b565b90506129d4828261298d565b919050565b600067ffffffffffffffff8211156129f4576129f361295e565b5b6129fd82612740565b9050602081019050919050565b82818337600083830152505050565b6000612a2c612a27846129d9565b6129be565b905082815260208101848484011115612a4857612a47612959565b5b612a53848285612a0a565b509392505050565b600082601f830112612a7057612a6f612954565b5b8135612a80848260208601612a19565b91505092915050565b600060208284031215612a9f57612a9e612635565b5b600082013567ffffffffffffffff811115612abd57612abc61263a565b5b612ac984828501612a5b565b91505092915050565b600060208284031215612ae857612ae7612635565b5b6000612af684828501612882565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b34816127ac565b82525050565b6000612b468383612b2b565b60208301905092915050565b6000602082019050919050565b6000612b6a82612aff565b612b748185612b0a565b9350612b7f83612b1b565b8060005b83811015612bb0578151612b978882612b3a565b9750612ba283612b52565b925050600181019050612b83565b5085935050505092915050565b60006020820190508181036000830152612bd78184612b5f565b905092915050565b612be8816126c4565b8114612bf357600080fd5b50565b600081359050612c0581612bdf565b92915050565b600060208284031215612c2157612c20612635565b5b6000612c2f84828501612bf6565b91505092915050565b60008060408385031215612c4f57612c4e612635565b5b6000612c5d85828601612882565b9250506020612c6e85828601612bf6565b9150509250929050565b600067ffffffffffffffff821115612c9357612c9261295e565b5b612c9c82612740565b9050602081019050919050565b6000612cbc612cb784612c78565b6129be565b905082815260208101848484011115612cd857612cd7612959565b5b612ce3848285612a0a565b509392505050565b600082601f830112612d0057612cff612954565b5b8135612d10848260208601612ca9565b91505092915050565b60008060008060808587031215612d3357612d32612635565b5b6000612d4187828801612882565b9450506020612d5287828801612882565b9350506040612d63878288016127cd565b925050606085013567ffffffffffffffff811115612d8457612d8361263a565b5b612d9087828801612ceb565b91505092959194509250565b60008060408385031215612db357612db2612635565b5b6000612dc185828601612882565b9250506020612dd285828601612882565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e2357607f821691505b602082108103612e3657612e35612ddc565b5b50919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612e72601f83612705565b9150612e7d82612e3c565b602082019050919050565b60006020820190508181036000830152612ea181612e65565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612f0a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ecd565b612f148683612ecd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612f51612f4c612f47846127ac565b612f2c565b6127ac565b9050919050565b6000819050919050565b612f6b83612f36565b612f7f612f7782612f58565b848454612eda565b825550505050565b600090565b612f94612f87565b612f9f818484612f62565b505050565b5b81811015612fc357612fb8600082612f8c565b600181019050612fa5565b5050565b601f82111561300857612fd981612ea8565b612fe284612ebd565b81016020851015612ff1578190505b613005612ffd85612ebd565b830182612fa4565b50505b505050565b600082821c905092915050565b600061302b6000198460080261300d565b1980831691505092915050565b6000613044838361301a565b9150826002028217905092915050565b61305d826126fa565b67ffffffffffffffff8111156130765761307561295e565b5b6130808254612e0b565b61308b828285612fc7565b600060209050601f8311600181146130be57600084156130ac578287015190505b6130b68582613038565b86555061311e565b601f1984166130cc86612ea8565b60005b828110156130f4578489015182556001820191506020850194506020810190506130cf565b86831015613111578489015161310d601f89168261301a565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e73756666696369656e742066756e64730000000000000000000000000000600082015250565b600061318b601283612705565b915061319682613155565b602082019050919050565b600060208201905081810360008301526131ba8161317e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061322a826127ac565b9150613235836127ac565b925082613245576132446131c1565b5b828204905092915050565b600061325b826127ac565b9150613266836127ac565b925082820390508181111561327e5761327d6131f0565b5b92915050565b7f455243373231414d657461646174613a2055524920717565727920666f72206e60008201527f6f6e6578697374656e7420746f6b656e00000000000000000000000000000000602082015250565b60006132e0603083612705565b91506132eb82613284565b604082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b600081905092915050565b600061332c826126fa565b6133368185613316565b9350613346818560208601612716565b80840191505092915050565b6000815461335f81612e0b565b6133698186613316565b945060018216600081146133845760018114613399576133cc565b60ff19831686528115158202860193506133cc565b6133a285612ea8565b60005b838110156133c4578154818901526001820191506020810190506133a5565b838801955050505b50505092915050565b60006133e18286613321565b91506133ed8285613321565b91506133f98284613352565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613462602683612705565b915061346d82613406565b604082019050919050565b6000602082019050818103600083015261349181613455565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134ce602083612705565b91506134d982613498565b602082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061352b82613504565b613535818561350f565b9350613545818560208601612716565b61354e81612740565b840191505092915050565b600060808201905061356e6000830187612841565b61357b6020830186612841565b61358860408301856128d7565b818103606083015261359a8184613520565b905095945050505050565b6000815190506135b48161266b565b92915050565b6000602082840312156135d0576135cf612635565b5b60006135de848285016135a5565b91505092915050565b60006135f2826127ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613624576136236131f0565b5b600182019050919050565b600061363a826127ac565b9150613645836127ac565b925082613655576136546131c1565b5b828206905092915050565b600061366b826127ac565b9150613676836127ac565b925082820190508082111561368e5761368d6131f0565b5b9291505056fea2646970667358221220e4edcda037e4a58ca58f4395541865bc213e92c7b81573b828caf289fbafe2a164736f6c63430008120033000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000001f44767eab1000000000000000000000000000000000000000000000000000000000d18c2e28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004368747470733a2f2f697066732e696f2f697066732f516d526e686d324168786d7874675874485877554d646744357a79726a7153446770455774784c315258787859730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000650726178697300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002707800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000