6080604052662386f26fc1000060085560066009556003600a553480156200002657600080fd5b506040518060400160405280600e81526020017f4149204265737420467269656e640000000000000000000000000000000000008152506040518060400160405280600481526020017f41494246000000000000000000000000000000000000000000000000000000008152508160009081620000a4919062000427565b508060019081620000b6919062000427565b505050620000d9620000cd620000df60201b60201c565b620000e760201b60201c565b6200050e565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200022f57607f821691505b602082108103620002455762000244620001e7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002af7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000270565b620002bb868362000270565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200030862000302620002fc84620002d3565b620002dd565b620002d3565b9050919050565b6000819050919050565b6200032483620002e7565b6200033c62000333826200030f565b8484546200027d565b825550505050565b600090565b6200035362000344565b6200036081848462000319565b505050565b5b8181101562000388576200037c60008262000349565b60018101905062000366565b5050565b601f821115620003d757620003a1816200024b565b620003ac8462000260565b81016020851015620003bc578190505b620003d4620003cb8562000260565b83018262000365565b50505b505050565b600082821c905092915050565b6000620003fc60001984600802620003dc565b1980831691505092915050565b6000620004178383620003e9565b9150826002028217905092915050565b6200043282620001ad565b67ffffffffffffffff8111156200044e576200044d620001b8565b5b6200045a825462000216565b620004678282856200038c565b600060209050601f8311600181146200049f57600084156200048a578287015190505b62000496858262000409565b86555062000506565b601f198416620004af866200024b565b60005b82811015620004d957848901518255600182019150602085019450602081019050620004b2565b86831015620004f95784890151620004f5601f891682620003e9565b8355505b6001600288020188555050505b505050505050565b613b01806200051e6000396000f3fe6080604052600436106101cd5760003560e01c806370a08231116100f7578063a0712d6811610095578063c87b56dd11610064578063c87b56dd14610643578063d5abeb0114610680578063e985e9c5146106ab578063f2fde38b146106e8576101cd565b8063a0712d68146105ac578063a22cb465146105c8578063a49a1e7d146105f1578063b88d4fde1461061a576101cd565b8063841718a6116100d1578063841718a6146105025780638da5cb5b1461052b57806395d89b4114610556578063a035b1fe14610581576101cd565b806370a0823114610485578063715018a6146104c257806373714b00146104d9576101cd565b806332cb6b0c1161016f578063453c23101161013e578063453c2310146103c75780636352211e146103f257806365f130971461042f57806368428a1b1461045a576101cd565b806332cb6b0c1461031f578063360d506f1461034a5780633ccfd60b1461038757806342842e0e1461039e576101cd565b8063081812fc116101ab578063081812fc14610265578063095ea7b3146102a257806318160ddd146102cb57806323b872dd146102f6576101cd565b806301ffc9a7146101d257806303d41eb61461020f57806306fdde031461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f491906123a6565b610711565b60405161020691906123ee565b60405180910390f35b34801561021b57600080fd5b506102246107f3565b6040516102319190612422565b60405180910390f35b34801561024657600080fd5b5061024f6107f9565b60405161025c91906124cd565b60405180910390f35b34801561027157600080fd5b5061028c6004803603810190610287919061251b565b61088b565b6040516102999190612589565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906125d0565b6108d1565b005b3480156102d757600080fd5b506102e06109e8565b6040516102ed9190612422565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612610565b6109ee565b005b34801561032b57600080fd5b50610334610a4e565b6040516103419190612422565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c9190612663565b610a54565b60405161037e919061274e565b60405180910390f35b34801561039357600080fd5b5061039c610b54565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612610565b610bab565b005b3480156103d357600080fd5b506103dc610bcb565b6040516103e99190612422565b60405180910390f35b3480156103fe57600080fd5b506104196004803603810190610414919061251b565b610bd1565b6040516104269190612589565b60405180910390f35b34801561043b57600080fd5b50610444610c57565b6040516104519190612422565b60405180910390f35b34801561046657600080fd5b5061046f610c5c565b60405161047c91906123ee565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190612663565b610c6f565b6040516104b99190612422565b60405180910390f35b3480156104ce57600080fd5b506104d7610d26565b005b3480156104e557600080fd5b5061050060048036038101906104fb91906125d0565b610d3a565b005b34801561050e57600080fd5b506105296004803603810190610524919061279c565b610dad565b005b34801561053757600080fd5b50610540610dd2565b60405161054d9190612589565b60405180910390f35b34801561056257600080fd5b5061056b610dfc565b60405161057891906124cd565b60405180910390f35b34801561058d57600080fd5b50610596610e8e565b6040516105a39190612422565b60405180910390f35b6105c660048036038101906105c1919061251b565b610e94565b005b3480156105d457600080fd5b506105ef60048036038101906105ea91906127c9565b61107e565b005b3480156105fd57600080fd5b506106186004803603810190610613919061293e565b611094565b005b34801561062657600080fd5b50610641600480360381019061063c9190612a28565b6110af565b005b34801561064f57600080fd5b5061066a6004803603810190610665919061251b565b611111565b60405161067791906124cd565b60405180910390f35b34801561068c57600080fd5b50610695611179565b6040516106a29190612422565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190612aab565b61118a565b6040516106df91906123ee565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a9190612663565b61121e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107dc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107ec57506107eb826112a1565b5b9050919050565b60095481565b60606000805461080890612b1a565b80601f016020809104026020016040519081016040528092919081815260200182805461083490612b1a565b80156108815780601f1061085657610100808354040283529160200191610881565b820191906000526020600020905b81548152906001019060200180831161086457829003601f168201915b5050505050905090565b60006108968261130b565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108dc82610bd1565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612bbd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661096b611356565b73ffffffffffffffffffffffffffffffffffffffff16148061099a575061099981610994611356565b61118a565b5b6109d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d090612c4f565b60405180910390fd5b6109e3838361135e565b505050565b60075481565b6109ff6109f9611356565b82611417565b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590612ce1565b60405180910390fd5b610a498383836114ac565b505050565b61013281565b60606000610a6183610c6f565b90506000610a6f600d6117a5565b90506000808367ffffffffffffffff811115610a8e57610a8d612813565b5b604051908082528060200260200182016040528015610abc5781602001602082028036833780820191505090505b50905060005b83811015610b47578673ffffffffffffffffffffffffffffffffffffffff16610aea82610bd1565b73ffffffffffffffffffffffffffffffffffffffff1603610b345780828481518110610b1957610b18612d01565b5b6020026020010181815250508280610b3090612d5f565b9350505b8080610b3f90612d5f565b915050610ac2565b5080945050505050919050565b610b5c6117b3565b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ba7573d6000803e3d6000fd5b5050565b610bc6838383604051806020016040528060008152506110af565b505050565b600a5481565b600080610bdd83611831565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590612df3565b60405180910390fd5b80915050919050565b600381565b600b60009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690612e85565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d2e6117b3565b610d38600061186e565b565b610d426117b3565b6000600954905080821115610d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8390612ef1565b60405180910390fd5b8181610d989190612f11565b600981905550610da88383611934565b505050565b610db56117b3565b80600b60006101000a81548160ff02191690831515021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610e0b90612b1a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3790612b1a565b8015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b5050505050905090565b60085481565b806000610ea033610c6f565b9050600a548282610eb19190612f45565b1115610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee990612feb565b60405180910390fd5b600b60009054906101000a900460ff16610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890613057565b60405180910390fd5b610f4b3384611934565b60038210610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f85906130c3565b60405180910390fd5b81600854610f9c91906130e3565b3414610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613189565b60405180910390fd5b60008211611020576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611017906131f5565b60405180910390fd5b610132611038836007546119bd90919063ffffffff16565b1115611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613261565b60405180910390fd5b505050565b611090611089611356565b83836119d3565b5050565b61109c6117b3565b80600c90816110ab919061342d565b5050565b6110c06110ba611356565b83611417565b6110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690612ce1565b60405180910390fd5b61110b84848484611b3f565b50505050565b606061111c8261130b565b6000611126611b9b565b905060008151116111465760405180602001604052806000815250611171565b8061115084611c2d565b60405160200161116192919061353b565b6040516020818303038152906040525b915050919050565b6000611185600d6117a5565b905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112266117b3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c906135d1565b60405180910390fd5b61129e8161186e565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61131481611d8d565b611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612df3565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113d183610bd1565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061142383610bd1565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114655750611464818561118a565b5b806114a357508373ffffffffffffffffffffffffffffffffffffffff1661148b8461088b565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166114cc82610bd1565b73ffffffffffffffffffffffffffffffffffffffff1614611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613663565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611588906136f5565b60405180910390fd5b61159e8383836001611dce565b8273ffffffffffffffffffffffffffffffffffffffff166115be82610bd1565b73ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613663565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117a08383836001611ef4565b505050565b600081600001549050919050565b6117bb611356565b73ffffffffffffffffffffffffffffffffffffffff166117d9610dd2565b73ffffffffffffffffffffffffffffffffffffffff161461182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613761565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008111611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e906131f5565b60405180910390fd5b6000600754905060005b828110156119b05761199f84838061199890612d5f565b9450611efa565b806119a990612d5f565b9050611981565b5080600781905550505050565b600081836119cb9190612f45565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a38906137cd565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b3291906123ee565b60405180910390a3505050565b611b4a8484846114ac565b611b5684848484611f18565b611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c9061385f565b60405180910390fd5b50505050565b6060600c8054611baa90612b1a565b80601f0160208091040260200160405190810160405280929190818152602001828054611bd690612b1a565b8015611c235780601f10611bf857610100808354040283529160200191611c23565b820191906000526020600020905b815481529060010190602001808311611c0657829003601f168201915b5050505050905090565b606060008203611c74576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611d88565b600082905060005b60008214611ca6578080611c8f90612d5f565b915050600a82611c9f91906138ae565b9150611c7c565b60008167ffffffffffffffff811115611cc257611cc1612813565b5b6040519080825280601f01601f191660200182016040528015611cf45781602001600182028036833780820191505090505b5090505b60008514611d8157600182611d0d9190612f11565b9150600a85611d1c91906138df565b6030611d289190612f45565b60f81b818381518110611d3e57611d3d612d01565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611d7a91906138ae565b9450611cf8565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611daf83611831565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6001811115611eee57600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e625780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e5a9190612f11565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611eed5780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ee59190612f45565b925050819055505b5b50505050565b50505050565b611f1482826040518060200160405280600081525061209f565b5050565b6000611f398473ffffffffffffffffffffffffffffffffffffffff166120fa565b15612092578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f62611356565b8786866040518563ffffffff1660e01b8152600401611f849493929190613965565b6020604051808303816000875af1925050508015611fc057506040513d601f19601f82011682018060405250810190611fbd91906139c6565b60015b612042573d8060008114611ff0576040519150601f19603f3d011682016040523d82523d6000602084013e611ff5565b606091505b50600081510361203a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120319061385f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612097565b600190505b949350505050565b6120a9838361211d565b6120b66000848484611f18565b6120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec9061385f565b60405180910390fd5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218390613a3f565b60405180910390fd5b61219581611d8d565b156121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc90613aab565b60405180910390fd5b6121e3600083836001611dce565b6121ec81611d8d565b1561222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390613aab565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612336600083836001611ef4565b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6123838161234e565b811461238e57600080fd5b50565b6000813590506123a08161237a565b92915050565b6000602082840312156123bc576123bb612344565b5b60006123ca84828501612391565b91505092915050565b60008115159050919050565b6123e8816123d3565b82525050565b600060208201905061240360008301846123df565b92915050565b6000819050919050565b61241c81612409565b82525050565b60006020820190506124376000830184612413565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561247757808201518184015260208101905061245c565b60008484015250505050565b6000601f19601f8301169050919050565b600061249f8261243d565b6124a98185612448565b93506124b9818560208601612459565b6124c281612483565b840191505092915050565b600060208201905081810360008301526124e78184612494565b905092915050565b6124f881612409565b811461250357600080fd5b50565b600081359050612515816124ef565b92915050565b60006020828403121561253157612530612344565b5b600061253f84828501612506565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257382612548565b9050919050565b61258381612568565b82525050565b600060208201905061259e600083018461257a565b92915050565b6125ad81612568565b81146125b857600080fd5b50565b6000813590506125ca816125a4565b92915050565b600080604083850312156125e7576125e6612344565b5b60006125f5858286016125bb565b925050602061260685828601612506565b9150509250929050565b60008060006060848603121561262957612628612344565b5b6000612637868287016125bb565b9350506020612648868287016125bb565b925050604061265986828701612506565b9150509250925092565b60006020828403121561267957612678612344565b5b6000612687848285016125bb565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6126c581612409565b82525050565b60006126d783836126bc565b60208301905092915050565b6000602082019050919050565b60006126fb82612690565b612705818561269b565b9350612710836126ac565b8060005b8381101561274157815161272888826126cb565b9750612733836126e3565b925050600181019050612714565b5085935050505092915050565b6000602082019050818103600083015261276881846126f0565b905092915050565b612779816123d3565b811461278457600080fd5b50565b60008135905061279681612770565b92915050565b6000602082840312156127b2576127b1612344565b5b60006127c084828501612787565b91505092915050565b600080604083850312156127e0576127df612344565b5b60006127ee858286016125bb565b92505060206127ff85828601612787565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61284b82612483565b810181811067ffffffffffffffff8211171561286a57612869612813565b5b80604052505050565b600061287d61233a565b90506128898282612842565b919050565b600067ffffffffffffffff8211156128a9576128a8612813565b5b6128b282612483565b9050602081019050919050565b82818337600083830152505050565b60006128e16128dc8461288e565b612873565b9050828152602081018484840111156128fd576128fc61280e565b5b6129088482856128bf565b509392505050565b600082601f83011261292557612924612809565b5b81356129358482602086016128ce565b91505092915050565b60006020828403121561295457612953612344565b5b600082013567ffffffffffffffff81111561297257612971612349565b5b61297e84828501612910565b91505092915050565b600067ffffffffffffffff8211156129a2576129a1612813565b5b6129ab82612483565b9050602081019050919050565b60006129cb6129c684612987565b612873565b9050828152602081018484840111156129e7576129e661280e565b5b6129f28482856128bf565b509392505050565b600082601f830112612a0f57612a0e612809565b5b8135612a1f8482602086016129b8565b91505092915050565b60008060008060808587031215612a4257612a41612344565b5b6000612a50878288016125bb565b9450506020612a61878288016125bb565b9350506040612a7287828801612506565b925050606085013567ffffffffffffffff811115612a9357612a92612349565b5b612a9f878288016129fa565b91505092959194509250565b60008060408385031215612ac257612ac1612344565b5b6000612ad0858286016125bb565b9250506020612ae1858286016125bb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b3257607f821691505b602082108103612b4557612b44612aeb565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ba7602183612448565b9150612bb282612b4b565b604082019050919050565b60006020820190508181036000830152612bd681612b9a565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612c39603d83612448565b9150612c4482612bdd565b604082019050919050565b60006020820190508181036000830152612c6881612c2c565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ccb602d83612448565b9150612cd682612c6f565b604082019050919050565b60006020820190508181036000830152612cfa81612cbe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6a82612409565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d9c57612d9b612d30565b5b600182019050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612ddd601883612448565b9150612de882612da7565b602082019050919050565b60006020820190508181036000830152612e0c81612dd0565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612e6f602983612448565b9150612e7a82612e13565b604082019050919050565b60006020820190508181036000830152612e9e81612e62565b9050919050565b7f457863656564732072657365727665206c696d69740000000000000000000000600082015250565b6000612edb601583612448565b9150612ee682612ea5565b602082019050919050565b60006020820190508181036000830152612f0a81612ece565b9050919050565b6000612f1c82612409565b9150612f2783612409565b9250828203905081811115612f3f57612f3e612d30565b5b92915050565b6000612f5082612409565b9150612f5b83612409565b9250828201905080821115612f7357612f72612d30565b5b92915050565b7f45786365656473206d6178696d756d206e756d626572206f6620746f6b656e7360008201527f207065722077616c6c6574000000000000000000000000000000000000000000602082015250565b6000612fd5602b83612448565b9150612fe082612f79565b604082019050919050565b6000602082019050818103600083015261300481612fc8565b9050919050565b7f53616c65206e6f74206c69766500000000000000000000000000000000000000600082015250565b6000613041600d83612448565b915061304c8261300b565b602082019050919050565b6000602082019050818103600083015261307081613034565b9050919050565b7f5361766520736f6d6520666f72207468652072657374206f6620757321000000600082015250565b60006130ad601d83612448565b91506130b882613077565b602082019050919050565b600060208201905081810360008301526130dc816130a0565b9050919050565b60006130ee82612409565b91506130f983612409565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561313257613131612d30565b5b828202905092915050565b7f4e6f7420656e6f75676820746f2061646f70742061204b390000000000000000600082015250565b6000613173601883612448565b915061317e8261313d565b602082019050919050565b600060208201905081810360008301526131a281613166565b9050919050565b7f5a65726f206d696e740000000000000000000000000000000000000000000000600082015250565b60006131df600983612448565b91506131ea826131a9565b602082019050919050565b6000602082019050818103600083015261320e816131d2565b9050919050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b600061324b601283612448565b915061325682613215565b602082019050919050565b6000602082019050818103600083015261327a8161323e565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026132e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826132a6565b6132ed86836132a6565b95508019841693508086168417925050509392505050565b6000819050919050565b600061332a61332561332084612409565b613305565b612409565b9050919050565b6000819050919050565b6133448361330f565b61335861335082613331565b8484546132b3565b825550505050565b600090565b61336d613360565b61337881848461333b565b505050565b5b8181101561339c57613391600082613365565b60018101905061337e565b5050565b601f8211156133e1576133b281613281565b6133bb84613296565b810160208510156133ca578190505b6133de6133d685613296565b83018261337d565b50505b505050565b600082821c905092915050565b6000613404600019846008026133e6565b1980831691505092915050565b600061341d83836133f3565b9150826002028217905092915050565b6134368261243d565b67ffffffffffffffff81111561344f5761344e612813565b5b6134598254612b1a565b6134648282856133a0565b600060209050601f8311600181146134975760008415613485578287015190505b61348f8582613411565b8655506134f7565b601f1984166134a586613281565b60005b828110156134cd578489015182556001820191506020850194506020810190506134a8565b868310156134ea57848901516134e6601f8916826133f3565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b60006135158261243d565b61351f81856134ff565b935061352f818560208601612459565b80840191505092915050565b6000613547828561350a565b9150613553828461350a565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135bb602683612448565b91506135c68261355f565b604082019050919050565b600060208201905081810360008301526135ea816135ae565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061364d602583612448565b9150613658826135f1565b604082019050919050565b6000602082019050818103600083015261367c81613640565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136df602483612448565b91506136ea82613683565b604082019050919050565b6000602082019050818103600083015261370e816136d2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061374b602083612448565b915061375682613715565b602082019050919050565b6000602082019050818103600083015261377a8161373e565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006137b7601983612448565b91506137c282613781565b602082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613849603283612448565b9150613854826137ed565b604082019050919050565b600060208201905081810360008301526138788161383c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138b982612409565b91506138c483612409565b9250826138d4576138d361387f565b5b828204905092915050565b60006138ea82612409565b91506138f583612409565b9250826139055761390461387f565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b600061393782613910565b613941818561391b565b9350613951818560208601612459565b61395a81612483565b840191505092915050565b600060808201905061397a600083018761257a565b613987602083018661257a565b6139946040830185612413565b81810360608301526139a6818461392c565b905095945050505050565b6000815190506139c08161237a565b92915050565b6000602082840312156139dc576139db612344565b5b60006139ea848285016139b1565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613a29602083612448565b9150613a34826139f3565b602082019050919050565b60006020820190508181036000830152613a5881613a1c565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613a95601c83612448565b9150613aa082613a5f565b602082019050919050565b60006020820190508181036000830152613ac481613a88565b905091905056fea2646970667358221220a764984c3365284c5bbc18ac54a9a543e6cede4b1ac977372354dd0b288fa39464736f6c63430008100033