0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637c64b0f91161010f578063d547741f116100a2578063e653ae6011610071578063e653ae6014610494578063e96ede42146104bb578063f3d7d282146104ce578063fd7d7b52146104e157600080fd5b8063d547741f14610453578063d77289dc14610466578063d92fc67b14610479578063e3e8ba801461048157600080fd5b8063a2aa61eb116100de578063a2aa61eb14610405578063ae6be56714610418578063b08b58031461042d578063bf9bcb5a1461044057600080fd5b80637c64b0f9146103c457806391d14854146103d7578063999b93af146103ea578063a217fddf146103fd57600080fd5b80632e48152c116101875780634836ff10116101565780634836ff10146103595780634f6ccce71461036c578063724d9f041461039e5780637c18456a146103b157600080fd5b80632e48152c146103085780632f2ff15d1461032b578063349757481461033e57806336568abe1461034657600080fd5b80631a4999c9116101c35780631a4999c91461025a5780631a788a021461029b5780631e4e0091146102c4578063248a9ca3146102d757600080fd5b806301ffc9a7146101f55780631218a3b21461021d57806312d9a6ad14610232578063137aaeeb14610245575b600080fd5b610208610203366004612b6e565b6104f4565b60405190151581526020015b60405180910390f35b61023061022b366004612bad565b61052b565b005b610208610240366004612bca565b6106d0565b61024d6106e5565b6040516102149190612c52565b610283610268366004612cee565b6010602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610214565b6102836102a9366004612bad565b6011602052600090815260409020546001600160a01b031681565b6102306102d2366004612d07565b610838565b6102fa6102e5366004612cee565b60009081526020819052604090206001015490565b604051908152602001610214565b610208610316366004612bad565b600f6020526000908152604090205460ff1681565b610230610339366004612bca565b610862565b6102fa610887565b610230610354366004612bca565b610898565b610230610367366004612d45565b610916565b61037f61037a366004612cee565b610aa1565b604080516001600160a01b039093168352602083019190915201610214565b6102086103ac366004612bad565b610ab8565b6102306103bf366004612bca565b610ac5565b600654610283906001600160a01b031681565b6102086103e5366004612bca565b610b2a565b600754610283906001600160a01b031681565b6102fa600081565b610230610413366004612bad565b610b53565b610420610c2b565b6040516102149190612d7a565b61023061043b366004612bca565b610c37565b61020861044e366004612bad565b610d07565b610230610461366004612bca565b610d14565b610283610474366004612cee565b610d39565b6102fa610d46565b61023061048f366004612d45565b610d52565b6102fa7f000000000000000000000000000000000000000000000000000000000540ecc781565b6102306104c9366004612bad565b610ea1565b6102086104dc366004612bad565b61103f565b6102306104ef366004612dc7565b61104c565b60006001600160e01b03198216637965db0b60e01b148061052557506301ffc9a760e01b6001600160e01b03198316145b92915050565b6c474f5645524e4f525f524f4c4560981b61054581611a53565b610550600a83611a60565b6105755760405162461bcd60e51b815260040161056c90612e25565b60405180910390fd5b6001600160a01b0382166000908152600f602052604090205460ff166105d05760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481d5b9c185d5cd95960821b604482015260640161056c565b6001600160a01b0382166000818152600f6020908152604091829020805460ff19169055815163999b93af60e01b81529151610657939263999b93af9260048083019391928290030181865afa15801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190612e47565b611a85565b610698826001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062e573d6000803e3d6000fd5b6040516001600160a01b038316907f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90600090a25050565b60006106dc8383611aae565b50600192915050565b604080516101008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e08101919091526040805161010081018252600180546001600160a01b039081168352600254908116602084015260ff600160a01b8204811694840194909452600160a81b900490921660608201526003546001600160801b038082166080840152600160801b909104811660a08301526004541660c08201526005805491929160e0840191906107b190612e64565b80601f01602080910402602001604051908101604052809291908181526020018280546107dd90612e64565b801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b505050505081525050905090565b60008281526020819052604090206001015461085381611a53565b61085d8383611b07565b505050565b60008281526020819052604090206001015461087d81611a53565b61085d8383611b52565b6000610893600a611bd6565b905090565b6001600160a01b03811633146109085760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161056c565b6109128282611be0565b5050565b6c474f5645524e4f525f524f4c4560981b61093081611a53565b61093b600a84611a60565b6109575760405162461bcd60e51b815260040161056c90612e25565b6109d5826001600160801b0316846001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190612e47565b6001600160a01b031690611c45565b604051630320c4bf60e51b81526001600160801b03831660048201526001600160a01b0384169063641897e0906024016020604051808303816000875af1158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a489190612e9e565b610a5457610a54612ec0565b6040516001600160801b03831681526001600160a01b038416907f4147a66e739168c8db36637a4431ed1b7bfe65a864184b4818dbbe7ff1059395906020015b60405180910390a2505050565b600080610aaf600c84611ea7565b91509150915091565b6000610525600a83611a60565b6000610ad081611a53565b60008381526010602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051909185917f930f2bdecbc9b9eed72c3d73d67d1ce1369050b6799e60aaf0b8cdd9a55be8829190a3505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610b5e81611a53565b6007546001600160a01b031615610bab5760405162461bcd60e51b81526020600482015260116024820152701c5d5bdd1948185b1c9958591e481cd95d607a1b604482015260640161056c565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152601260248201527171756f7465207a65726f206164647265737360701b604482015260640161056c565b610c08826001600160a01b0316611ec5565b50600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606108936008612036565b6000610c4281611a53565b600083815260106020526040902054610c66906008906001600160a01b0316611a60565b15610c9157600083815260106020526040902054610c8f906008906001600160a01b0316612043565b505b6001600160a01b03821615610cad57610cab600883612058565b505b60008381526010602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051909185917f7358307481390c3a73a5c043b3af4e426b4d93ee532a66c58e43f629509978199190a3505050565b6000610525600c8361206d565b600082815260208190526040902060010154610d2f81611a53565b61085d8383611be0565b6000610525600a83612082565b6000610893600c61208e565b6c474f5645524e4f525f524f4c4560981b610d6c81611a53565b610d77600a84611a60565b610d935760405162461bcd60e51b815260040161056c90612e25565b610dde826001600160801b0316846001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b60405163288279a760e01b81526001600160801b03831660048201526001600160a01b0384169063288279a7906024016020604051808303816000875af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e519190612e9e565b610e5d57610e5d612ec0565b6040516001600160801b03831681526001600160a01b038416907fd4621719d59128d0b9914c595c832f975a58a676a284fc51e08c249424384c3e90602001610a94565b6c474f5645524e4f525f524f4c4560981b610ebb81611a53565b610ec6600a83611a60565b610ee25760405162461bcd60e51b815260040161056c90612e25565b6001600160a01b0382166000908152600f602052604090205460ff1615610f3c5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481c185d5cd95960921b604482015260640161056c565b6001600160a01b0382166000818152600f6020908152604091829020805460ff19166001179055815163999b93af60e01b81529151610fc6939263999b93af9260048083019391928290030181865afa158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc19190612e47565b612099565b611007826001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9d573d6000803e3d6000fd5b6040516001600160a01b038316907f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890600090a25050565b6000610525600883611a60565b6007546001600160a01b03166110995760405162461bcd60e51b815260206004820152601260248201527171756f7465207a65726f206164647265737360701b604482015260640161056c565b6110b26b4d414e414745525f524f4c4560a01b33610b2a565b806110d657506110d670504149525f43524541544f525f524f4c4560781b33610b2a565b61112e5760405162461bcd60e51b815260206004820152602360248201527f756e617574686f72697a6564206163636f756e7420746f20637265617465207060448201526230b4b960e91b606482015260840161056c565b6007546001600160a01b039081169086160361117d5760405162461bcd60e51b815260206004820152600e60248201526d6164647265737365732073616d6560901b604482015260640161056c565b6001600160a01b0385166111c75760405162461bcd60e51b815260206004820152601160248201527062617365207a65726f206164647265737360781b604482015260640161056c565b6001600160a01b03858116600090815260116020526040902054161561121d5760405162461bcd60e51b815260206004820152600b60248201526a706169722065786973747360a81b604482015260640161056c565b61122f856001600160a01b0316611ec5565b61124b6001600160a01b0386166001600160801b038516611c45565b60075461126a906001600160a01b03166001600160801b038416611c45565b6001600160801b0384161580159061128a57506001600160801b03848116105b6112ce5760405162461bcd60e51b81526020600482015260156024820152747072696365206973206f7574206f662072616e676560581b604482015260640161056c565b816001600160801b0316846001600160801b03161015801561130057506112f58285612eec565b6001600160801b0316155b61134c5760405162461bcd60e51b815260206004820152601860248201527f707269636520646f65736e2774206d6174636820756e69740000000000000000604482015260640161056c565b604051806101000160405280866001600160a01b03168152602001600760009054906101000a90046001600160a01b03166001600160a01b03168152602001866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ed9190612f12565b60ff1681526007546040805163313ce56760e01b815290516020938401936001600160a01b039093169263313ce56792600480820193918290030181865afa15801561143d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114619190612f12565b60ff168152602001846001600160801b03168152602001836001600160801b03168152602001856001600160801b03168152602001866001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156114d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114fc9190810190612fbf565b60405160200161150c9190613008565b60408051601f198184030181528282526007546395d89b4160e01b8452915190926001600160a01b03909216916395d89b419160048083019260009291908290030181865afa158015611563573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261158b9190810190612fbf565b60405160200161159c92919061302d565b60408051808303601f1901815291815291528151600180546001600160a01b0319166001600160a01b0392831617815560208085015160028054958701516060880151929095166001600160a81b031990961695909517600160a01b60ff958616021760ff60a81b1916600160a81b949091169390930292909217909255608083015160a08401516001600160801b03918216600160801b918316919091021760035560c0840151600480546001600160801b0319169190921617905560e0830151805161166e926005920190612a9f565b50506007546040516bffffffffffffffffffffffff19606089811b821660208401529290921b90911660348201526000915061173f90829060480160405160208183030381529060405280519060200120600660009054906101000a90046001600160a01b03166001600160a01b03166324c12bf66040518163ffffffff1660e01b8152600401600060405180830381865afa158015611712573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261173a9190810190612fbf565b6120dc565b600180546001600160a01b0319168155600280546001600160b01b031916905560006003819055600480546001600160801b031916905591925090611785600582612b23565b50506001600160a01b03868116600090815260116020526040902080546001600160a01b0319169183169190911790556117c0600a82612058565b50806001600160a01b0316638129fc1c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118259190612e9e565b6118715760405162461bcd60e51b815260206004820152601960248201527f6661696c656420746f20696e697469616c697a65207061697200000000000000604482015260640161056c565b6118b2816001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062e573d6000803e3d6000fd5b6118f3816001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062e573d6000803e3d6000fd5b68444558436f6e66696760b81b60005260106020527f28ac97386c26a1d1b15df7e489f42f28b495307c7a0f245f9e57c391ef8d7394546040516323a18eef60e21b81526001600160a01b0388811660048301526024820185905290911690638e863bbc90604401600060405180830381600087803b15801561197557600080fd5b505af1158015611989573d6000803e3d6000fd5b50506007546001600160a01b038085169350908116915088167ff23a99dde30ccf1fb835d156def4f9289806f81afcce0a093f721c905c8b184b886119ce600a611bd6565b866001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015611a0c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a349190810190612fbf565b604051611a439392919061305c565b60405180910390a4505050505050565b611a5d8133611aae565b50565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6000611a92600c836121e0565b915061085d905082611aa58360016130a3565b600c91906121f8565b611ab88282610b2a565b61091257611ac581612216565b611ad0836020612228565b604051602001611ae19291906130bb565b60408051601f198184030181529082905262461bcd60e51b825261056c91600401613130565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b611b5c8282610b2a565b610912576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611b923390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610525825490565b611bea8282610b2a565b15610912576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008111611c815760405162461bcd60e51b81526020600482015260096024820152681e995c9bc81d5b9a5d60ba1b604482015260640161056c565b8060005b8115611cab5780611c9581613143565b9150611ca49050600a8361315c565b9150611c85565b6000611cb8600183613170565b9050611cc581600a613263565b611ccf908561315c565b600114611d165760405162461bcd60e51b81526020600482015260156024820152746669727374206469676974206d757374206265203160581b604482015260640161056c565b611d2181600a613263565b611d2b908561326f565b15611d785760405162461bcd60e51b815260206004820152601e60248201527f7365636f6e64206469676974206f72206c657373206d75737420626520300000604482015260640161056c565b80856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddb9190612f12565b60ff16111580611e5b5750600c81866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4b9190612f12565b60ff16611e589190613170565b11155b611ea05760405162461bcd60e51b81526020600482015260166024820152756f766572204d41585f554e49545f444543494d414c5360501b604482015260640161056c565b5050505050565b6000808080611eb686866123c4565b909450925050505b9250929050565b6000816001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611f05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f2d9190810190612fbf565b5111611f6a5760405162461bcd60e51b815260206004820152600c60248201526b195b5c1d1e481cde5b589bdb60a21b604482015260640161056c565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fce9190612f12565b60ff161161200e5760405162461bcd60e51b815260206004820152600d60248201526c7a65726f20646563696d616c7360981b604482015260640161056c565b61201b8160ff60006123ef565b6120288160ff6000612537565b611a5d8160ff806000612567565b60606000611a7e836125a5565b6000611a7e836001600160a01b038416612601565b6000611a7e836001600160a01b0384166126f4565b6000611a7e836001600160a01b038416612743565b6000611a7e838361274f565b600061052582612779565b60006120a6600c836121e0565b915050600081116120b9576120b9612ec0565b60018111156120d15761085d82611aa5600184613170565b61085d600c83612784565b60008347101561212e5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161056c565b815160000361217f5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161056c565b8282516020840186f590506001600160a01b038116611a7e5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161056c565b6000808080611eb6866001600160a01b038716612799565b600061220e846001600160a01b038516846127db565b949350505050565b60606105256001600160a01b03831660145b60606000612237836002613283565b6122429060026130a3565b67ffffffffffffffff81111561225a5761225a612f35565b6040519080825280601f01601f191660200182016040528015612284576020820181803683370190505b509050600360fc1b8160008151811061229f5761229f6132a2565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106122ce576122ce6132a2565b60200101906001600160f81b031916908160001a90535060006122f2846002613283565b6122fd9060016130a3565b90505b6001811115612375576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612331576123316132a2565b1a60f81b828281518110612347576123476132a2565b60200101906001600160f81b031916908160001a90535060049490941c9361236e816132b8565b9050612300565b508315611a7e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161056c565b600080806123d28585612082565b600081815260029690960160205260409095205494959350505050565b8015806124695750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246791906132cf565b155b6124d45760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161056c565b6040516001600160a01b03831660248201526044810182905261085d90849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526127f8565b6040516001600160a01b03831660248201526044810182905261085d90849063a9059cbb60e01b90606401612500565b6040516001600160a01b038085166024830152831660448201526064810182905261259f9085906323b872dd60e01b90608401612500565b50505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156125f557602002820191906000526020600020905b8154815260200190600101908083116125e1575b50505050509050919050565b600081815260018301602052604081205480156126ea576000612625600183613170565b855490915060009061263990600190613170565b905081811461269e576000866000018281548110612659576126596132a2565b906000526020600020015490508087600001848154811061267c5761267c6132a2565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806126af576126af6132e8565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610525565b6000915050610525565b600081815260018301602052604081205461273b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610525565b506000610525565b6000611a7e83836128ca565b6000826000018281548110612766576127666132a2565b9060005260206000200154905092915050565b600061052582611bd6565b6000611a7e836001600160a01b0384166128e2565b60008181526002830160205260408120548190806127c8576127bb8585612743565b925060009150611ebe9050565b600192509050611ebe565b509250929050565b6000828152600284016020526040812082905561220e84846128ff565b600061284d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661290b9092919063ffffffff16565b80519091501561085d578080602001905181019061286b9190612e9e565b61085d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161056c565b60008181526001830160205260408120541515611a7e565b60008181526002830160205260408120819055611a7e838361291a565b6000611a7e83836126f4565b606061220e8484600085612926565b6000611a7e8383612601565b6060824710156129875760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161056c565b600080866001600160a01b031685876040516129a391906132fe565b60006040518083038185875af1925050503d80600081146129e0576040519150601f19603f3d011682016040523d82523d6000602084013e6129e5565b606091505b50915091506129f687838387612a01565b979650505050505050565b60608315612a70578251600003612a69576001600160a01b0385163b612a695760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161056c565b508161220e565b61220e8383815115612a855781518083602001fd5b8060405162461bcd60e51b815260040161056c9190613130565b828054612aab90612e64565b90600052602060002090601f016020900481019282612acd5760008555612b13565b82601f10612ae657805160ff1916838001178555612b13565b82800160010185558215612b13579182015b82811115612b13578251825591602001919060010190612af8565b50612b1f929150612b59565b5090565b508054612b2f90612e64565b6000825580601f10612b3f575050565b601f016020900490600052602060002090810190611a5d91905b5b80821115612b1f5760008155600101612b5a565b600060208284031215612b8057600080fd5b81356001600160e01b031981168114611a7e57600080fd5b6001600160a01b0381168114611a5d57600080fd5b600060208284031215612bbf57600080fd5b8135611a7e81612b98565b60008060408385031215612bdd57600080fd5b823591506020830135612bef81612b98565b809150509250929050565b60005b83811015612c15578181015183820152602001612bfd565b8381111561259f5750506000910152565b60008151808452612c3e816020860160208601612bfa565b601f01601f19169290920160200192915050565b602080825282516001600160a01b0390811683830152908301511660408083019190915282015160ff8116606083015260009050606083015160ff811660808401525060808301516001600160801b03811660a08401525060a08301516001600160801b03811660c08401525060c08301516001600160801b03811660e08401525060e08301516101008381015261220e610120840182612c26565b600060208284031215612d0057600080fd5b5035919050565b60008060408385031215612d1a57600080fd5b50508035926020909101359150565b80356001600160801b0381168114612d4057600080fd5b919050565b60008060408385031215612d5857600080fd5b8235612d6381612b98565b9150612d7160208401612d29565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612dbb5783516001600160a01b031683529284019291840191600101612d96565b50909695505050505050565b600080600080600060a08688031215612ddf57600080fd5b8535612dea81612b98565b9450612df860208701612d29565b9350612e0660408701612d29565b9250612e1460608701612d29565b949793965091946080013592915050565b6020808252600890820152673737ba103830b4b960c11b604082015260600190565b600060208284031215612e5957600080fd5b8151611a7e81612b98565b600181811c90821680612e7857607f821691505b602082108103612e9857634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612eb057600080fd5b81518015158114611a7e57600080fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0380841680612f0657612f06612ed6565b92169190910692915050565b600060208284031215612f2457600080fd5b815160ff81168114611a7e57600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612f6657612f66612f35565b604051601f8501601f19908116603f01168101908282118183101715612f8e57612f8e612f35565b81604052809350858152868686011115612fa757600080fd5b612fb5866020830187612bfa565b5050509392505050565b600060208284031215612fd157600080fd5b815167ffffffffffffffff811115612fe857600080fd5b8201601f81018413612ff957600080fd5b61220e84825160208401612f4b565b6000825161301a818460208701612bfa565b602f60f81b920191825250600101919050565b6000835161303f818460208801612bfa565b835190830190613053818360208801612bfa565b01949350505050565b6001600160801b03841681528260208201526060604082015260006130846060830184612c26565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156130b6576130b661308d565b500190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516130f3816017850160208801612bfa565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613124816028840160208801612bfa565b01602801949350505050565b602081526000611a7e6020830184612c26565b6000600182016131555761315561308d565b5060010190565b60008261316b5761316b612ed6565b500490565b6000828210156131825761318261308d565b500390565b600181815b808511156127d35781600019048211156131a8576131a861308d565b808516156131b557918102915b93841c939080029061318c565b6000826131d157506001610525565b816131de57506000610525565b81600181146131f457600281146131fe5761321a565b6001915050610525565b60ff84111561320f5761320f61308d565b50506001821b610525565b5060208310610133831016604e8410600b841016171561323d575081810a610525565b6132478383613187565b806000190482111561325b5761325b61308d565b029392505050565b6000611a7e83836131c2565b60008261327e5761327e612ed6565b500690565b600081600019048311821515161561329d5761329d61308d565b500290565b634e487b7160e01b600052603260045260246000fd5b6000816132c7576132c761308d565b506000190190565b6000602082840312156132e157600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fd5b60008251613310818460208701612bfa565b919091019291505056fea2646970667358221220313b05ce176c9a29212c03b27db155507c67e836ae25c7dc970d392fbb44b7cb64736f6c634300080e0033