@dolomite-exchange/dolomite-margin 0.2.0 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/build/contracts/Account.json +11 -11
  2. package/build/contracts/Actions.json +11 -11
  3. package/build/contracts/Address.json +1 -1
  4. package/build/contracts/Admin.json +23 -23
  5. package/build/contracts/AdminImpl.json +31 -322
  6. package/build/contracts/AdvancedMath.json +7 -7
  7. package/build/contracts/AmmRebalancerProxy.json +32 -77
  8. package/build/contracts/Babylonian.json +1 -1
  9. package/build/contracts/Bits.json +9 -9
  10. package/build/contracts/Cache.json +13 -13
  11. package/build/contracts/ChainlinkPriceOracleV1.json +16 -16
  12. package/build/contracts/Context.json +1 -1
  13. package/build/contracts/CustomTestToken.json +9 -9
  14. package/build/contracts/Decimal.json +9 -9
  15. package/build/contracts/DelayedMultiSig.json +9 -9
  16. package/build/contracts/DolomiteAmmERC20.json +11 -11
  17. package/build/contracts/DolomiteAmmFactory.json +14 -52
  18. package/build/contracts/DolomiteAmmLibrary.json +24 -24
  19. package/build/contracts/DolomiteAmmPair.json +27 -27
  20. package/build/contracts/DolomiteAmmRouterProxy.json +30 -363
  21. package/build/contracts/DolomiteMargin.json +22 -68
  22. package/build/contracts/DoubleExponentInterestSetter.json +15 -21
  23. package/build/contracts/EnumerableSet.json +7 -7
  24. package/build/contracts/ErroringOmiseToken.json +9 -9
  25. package/build/contracts/ErroringToken.json +10 -10
  26. package/build/contracts/Events.json +17 -17
  27. package/build/contracts/Exchange.json +15 -15
  28. package/build/contracts/Expiry.json +34 -34
  29. package/build/contracts/Getters.json +34 -34
  30. package/build/contracts/IAutoTrader.json +9 -9
  31. package/build/contracts/ICallee.json +7 -7
  32. package/build/contracts/IChainlinkAggregator.json +5 -5
  33. package/build/contracts/IDolomiteAmmERC20.json +5 -5
  34. package/build/contracts/IDolomiteAmmFactory.json +9 -9
  35. package/build/contracts/IDolomiteAmmPair.json +9 -9
  36. package/build/contracts/IDolomiteMargin.json +23 -23
  37. package/build/contracts/IERC20.json +1 -1
  38. package/build/contracts/IERC20Detailed.json +5 -5
  39. package/build/contracts/IExchangeWrapper.json +5 -5
  40. package/build/contracts/IExpiry.json +9 -9
  41. package/build/contracts/IInterestSetter.json +7 -7
  42. package/build/contracts/ILiquidationCallback.json +7 -7
  43. package/build/contracts/IMakerOracle.json +5 -5
  44. package/build/contracts/IOasisDex.json +5 -5
  45. package/build/contracts/IPriceOracle.json +7 -7
  46. package/build/contracts/IRecyclable.json +9 -9
  47. package/build/contracts/ITransferProxy.json +5 -5
  48. package/build/contracts/IUniswapV2Callee.json +5 -5
  49. package/build/contracts/IUniswapV2Factory.json +5 -5
  50. package/build/contracts/IUniswapV2Pair.json +5 -5
  51. package/build/contracts/IUniswapV2Router.json +5 -5
  52. package/build/contracts/IWETH.json +5 -5
  53. package/build/contracts/Interest.json +15 -15
  54. package/build/contracts/LiquidateOrVaporizeImpl.json +31 -82
  55. package/build/contracts/LiquidatorProxyHelper.json +23 -23
  56. package/build/contracts/LiquidatorProxyV1.json +31 -37
  57. package/build/contracts/LiquidatorProxyV1WithAmm.json +246 -363
  58. package/build/contracts/Math.json +1 -1
  59. package/build/contracts/Migrations.json +8 -14
  60. package/build/contracts/Monetary.json +7 -7
  61. package/build/contracts/MultiCall.json +8 -14
  62. package/build/contracts/MultiSig.json +7 -7
  63. package/build/contracts/OmiseToken.json +8 -8
  64. package/build/contracts/OnlyDolomiteMargin.json +11 -11
  65. package/build/contracts/Operation.json +15 -15
  66. package/build/contracts/OperationImpl.json +39 -47
  67. package/build/contracts/Ownable.json +1 -1
  68. package/build/contracts/PartiallyDelayedMultiSig.json +9 -9
  69. package/build/contracts/PayableProxy.json +16 -22
  70. package/build/contracts/Permission.json +11 -11
  71. package/build/contracts/PolynomialInterestSetter.json +13 -13
  72. package/build/contracts/RecyclableTokenProxy.json +25 -25
  73. package/build/contracts/ReentrancyGuard.json +1 -1
  74. package/build/contracts/Require.json +7 -7
  75. package/build/contracts/SafeERC20.json +1 -1
  76. package/build/contracts/SafeETH.json +7 -7
  77. package/build/contracts/SafeMath.json +1 -1
  78. package/build/contracts/SignedOperationProxy.json +21 -104
  79. package/build/contracts/SimpleFeeOwner.json +19 -64
  80. package/build/contracts/State.json +9 -9
  81. package/build/contracts/Storage.json +3222 -3222
  82. package/build/contracts/TestAmmRebalancerProxy.json +32 -58
  83. package/build/contracts/TestAutoTrader.json +22 -22
  84. package/build/contracts/TestBtcUsdChainlinkAggregator.json +11 -11
  85. package/build/contracts/TestCallee.json +18 -18
  86. package/build/contracts/TestChainlinkPriceOracleV1.json +10 -94
  87. package/build/contracts/TestCounter.json +7 -7
  88. package/build/contracts/TestDaiUsdChainlinkAggregator.json +11 -11
  89. package/build/contracts/TestDolomiteMargin.json +21 -21
  90. package/build/contracts/TestDoubleExponentInterestSetter.json +10 -10
  91. package/build/contracts/TestEthUsdChainlinkAggregator.json +11 -11
  92. package/build/contracts/TestExchangeWrapper.json +10 -10
  93. package/build/contracts/TestInterestSetter.json +13 -13
  94. package/build/contracts/TestLib.json +22 -22
  95. package/build/contracts/TestLinkUsdChainlinkAggregator.json +11 -11
  96. package/build/contracts/TestLiquidateCallback.json +15 -15
  97. package/build/contracts/TestLrcEthChainlinkAggregator.json +11 -11
  98. package/build/contracts/TestMakerOracle.json +10 -10
  99. package/build/contracts/TestMaticUsdChainlinkAggregator.json +10 -10
  100. package/build/contracts/TestOasisDex.json +12 -12
  101. package/build/contracts/TestOperationImpl.json +15 -15
  102. package/build/contracts/TestPolynomialInterestSetter.json +10 -10
  103. package/build/contracts/TestPriceAggregator.json +9 -9
  104. package/build/contracts/TestPriceOracle.json +13 -13
  105. package/build/contracts/TestRecyclableToken.json +9 -9
  106. package/build/contracts/TestSimpleCallee.json +14 -14
  107. package/build/contracts/TestToken.json +9 -9
  108. package/build/contracts/TestTrader.json +17 -17
  109. package/build/contracts/TestUniswapAmmRebalancerProxy.json +43 -16
  110. package/build/contracts/TestUsdcUsdChainlinkAggregator.json +11 -11
  111. package/build/contracts/TestWETH.json +9 -9
  112. package/build/contracts/Time.json +9 -9
  113. package/build/contracts/Token.json +9 -9
  114. package/build/contracts/TokenA.json +10 -10
  115. package/build/contracts/TokenB.json +10 -10
  116. package/build/contracts/TokenC.json +10 -10
  117. package/build/contracts/TokenD.json +10 -10
  118. package/build/contracts/TokenE.json +10 -10
  119. package/build/contracts/TokenF.json +10 -10
  120. package/build/contracts/TransferProxy.json +22 -28
  121. package/build/contracts/TypedSignature.json +9 -9
  122. package/build/contracts/Types.json +9 -9
  123. package/build/contracts/UQ112x112.json +7 -7
  124. package/build/contracts/UniswapV2ERC20.json +7 -7
  125. package/build/contracts/UniswapV2Factory.json +12 -12
  126. package/build/contracts/UniswapV2Library.json +20 -20
  127. package/build/contracts/UniswapV2Pair.json +17 -17
  128. package/build/contracts/UniswapV2Router02.json +16 -16
  129. package/build/contracts/WETH9.json +1 -1
  130. package/contracts/protocol/impl/artifacts/OperationImpl.json +80 -0
  131. package/contracts/protocol/impl/artifacts/OperationImpl_metadata.json +193 -0
  132. package/contracts/protocol/lib/Storage.sol +7 -0
  133. package/dist/build/published_contracts/AdminImpl.json +1 -1
  134. package/dist/build/published_contracts/AmmRebalancerProxy.json +1 -1
  135. package/dist/build/published_contracts/ChainlinkPriceOracleV1.json +1 -1
  136. package/dist/build/published_contracts/DolomiteAmmFactory.json +1 -1
  137. package/dist/build/published_contracts/DolomiteAmmRouterProxy.json +1 -1
  138. package/dist/build/published_contracts/DoubleExponentInterestSetter.json +2 -2
  139. package/dist/build/published_contracts/Expiry.json +1 -1
  140. package/dist/build/published_contracts/LiquidatorProxyV1.json +2 -2
  141. package/dist/build/published_contracts/LiquidatorProxyV1WithAmm.json +2 -2
  142. package/dist/build/published_contracts/MultiCall.json +1 -1
  143. package/dist/build/published_contracts/PayableProxy.json +1 -1
  144. package/dist/build/published_contracts/SignedOperationProxy.json +2 -2
  145. package/dist/build/published_contracts/SimpleFeeOwner.json +2 -2
  146. package/dist/build/published_contracts/TransferProxy.json +1 -1
  147. package/dist/build/wrappers/TestUniswapAmmRebalancerProxy.d.ts +66 -0
  148. package/dist/src/modules/MultiCall.js +2 -1
  149. package/dist/src/modules/MultiCall.js.map +1 -1
  150. package/dist/src/modules/operate/AccountOperation.d.ts +8 -2
  151. package/dist/src/modules/operate/AccountOperation.js +8 -10
  152. package/dist/src/modules/operate/AccountOperation.js.map +1 -1
  153. package/dist/src/types.d.ts +0 -1
  154. package/dist/src/types.js.map +1 -1
  155. package/package.json +4 -3
@@ -2182,15 +2182,15 @@
2182
2182
  "type": "function"
2183
2183
  }
2184
2184
  ],
2185
- "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginRatio\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"liquidationSpread\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"earningsRate\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"minBorrowedValue\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.RiskParams\",\"name\":\"rp\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"marginRatioMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationSpreadMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"earningsRateMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"marginPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spreadPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"minBorrowedValueMax\",\"type\":\"uint128\"}],\"internalType\":\"struct Storage.RiskLimits\",\"name\":\"rl\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"trusted\",\"type\":\"bool\"}],\"name\":\"LogOperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountMarketsWithNonZeroBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getAccountPar\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getAccountParNoMarketCheck\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountStatus\",\"outputs\":[{\"internalType\":\"enum Account.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountValues\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getAccountWei\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAdjustedAccountValues\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEarningsRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getIsGlobalOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getIsLocalOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLiquidationSpread\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"heldMarketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedMarketId\",\"type\":\"uint256\"}],\"name\":\"getLiquidationSpreadForPair\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMarginRatio\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarket\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRecyclable\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"borrow\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"supply\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.TotalPar\",\"name\":\"totalPar\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"index\",\"type\":\"tuple\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.Market\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketCachedIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketCurrentIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getMarketIdByTokenAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketInterestRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Interest.Rate\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketInterestSetter\",\"outputs\":[{\"internalType\":\"contract IInterestSetter\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketIsClosing\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketIsRecyclable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketMarginPremium\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketPriceOracle\",\"outputs\":[{\"internalType\":\"contract IPriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketSpreadPremium\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketTotalPar\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"borrow\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"supply\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.TotalPar\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketWithInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRecyclable\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"borrow\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"supply\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.TotalPar\",\"name\":\"totalPar\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"index\",\"type\":\"tuple\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.Market\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Price\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Interest.Rate\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMinBorrowedValue\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getNumExcessTokens\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumMarkets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getNumberOfMarketsWithBorrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"getRecyclableMarkets\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRiskLimits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"marginRatioMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationSpreadMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"earningsRateMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"marginPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spreadPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"minBorrowedValueMax\",\"type\":\"uint128\"}],\"internalType\":\"struct Storage.RiskLimits\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRiskParams\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginRatio\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"liquidationSpread\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"earningsRate\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"minBorrowedValue\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.RiskParams\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info[]\",\"name\":\"accounts\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum Actions.ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"accountId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"enum Types.AssetDenomination\",\"name\":\"denomination\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.AssetReference\",\"name\":\"ref\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.AssetAmount\",\"name\":\"amount\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"primaryMarketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryMarketId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"otherAccountId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Actions.ActionArgs[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"operate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRecyclable\",\"type\":\"bool\"}],\"name\":\"ownerAddMarket\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"marketIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"salvager\",\"type\":\"address\"}],\"name\":\"ownerRemoveMarkets\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"earningsRate\",\"type\":\"tuple\"}],\"name\":\"ownerSetEarningsRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ownerSetGlobalOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"}],\"name\":\"ownerSetInterestSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"}],\"name\":\"ownerSetIsClosing\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spread\",\"type\":\"tuple\"}],\"name\":\"ownerSetLiquidationSpread\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"}],\"name\":\"ownerSetMarginPremium\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"ratio\",\"type\":\"tuple\"}],\"name\":\"ownerSetMarginRatio\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"minBorrowedValue\",\"type\":\"tuple\"}],\"name\":\"ownerSetMinBorrowedValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"}],\"name\":\"ownerSetPriceOracle\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"}],\"name\":\"ownerSetSpreadPremium\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ownerWithdrawExcessTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ownerWithdrawUnsupportedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"market\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"newPar\",\"type\":\"tuple\"}],\"name\":\"setAccountBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"enum Account.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"setAccountStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"market\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"index\",\"type\":\"tuple\"}],\"name\":\"setMarketIndex\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"trusted\",\"type\":\"bool\"}],\"internalType\":\"struct Types.OperatorArg[]\",\"name\":\"args\",\"type\":\"tuple[]\"}],\"name\":\"setOperators\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"operate((address,uint256)[],(uint8,uint256,(bool,uint8,uint8,uint256),uint256,uint256,address,uint256,bytes)[])\":{\"params\":{\"accounts\":\"A list of all accounts that will be used in this operation. Cannot contain duplicates. In each action, the relevant account will be referred-to by its index in the list.\",\"actions\":\"An ordered list of all actions that will be taken in this operation. The actions will be processed in order.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setOperators((address,bool)[])\":{\"params\":{\"args\":\"A list of OperatorArgs which have an address and a boolean. The boolean value denotes whether to approve (true) or revoke approval (false) for that address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"operate((address,uint256)[],(uint8,uint256,(bool,uint8,uint8,uint256),uint256,uint256,address,uint256,bytes)[])\":{\"notice\":\"The main entry-point to DolomiteMargin that allows users and contracts to manage accounts. Take one or more actions on one or more accounts. The msg.sender must be the owner or operator of all accounts except for those being liquidated, vaporized, or traded with. One call to operate() is considered a singular \\\"operation\\\". Account collateralization is ensured only after the completion of the entire operation.\"},\"ownerAddMarket(address,address,address,(uint256),(uint256),bool,bool)\":{\"notice\":\"Add a new market to DolomiteMargin. Must be for a previously-unsupported ERC20 token.\"},\"ownerRemoveMarkets(uint256[],address)\":{\"notice\":\"Removes a market from DolomiteMargin, sends any remaining tokens in this contract to `salvager` and invokes the recyclable callback\"},\"ownerSetEarningsRate((uint256))\":{\"notice\":\"Set the global earnings-rate variable that determines what percentage of the interest paid by borrowers gets passed-on to suppliers.\"},\"ownerSetGlobalOperator(address,bool)\":{\"notice\":\"Approve (or disapprove) an address that is permissioned to be an operator for all accounts in DolomiteMargin. Intended only to approve smart-contracts.\"},\"ownerSetInterestSetter(uint256,address)\":{\"notice\":\"Set the interest-setter for a market.\"},\"ownerSetIsClosing(uint256,bool)\":{\"notice\":\"Set (or unset) the status of a market to \\\"closing\\\". The borrowedValue of a market cannot increase while its status is \\\"closing\\\".\"},\"ownerSetLiquidationSpread((uint256))\":{\"notice\":\"Set the global liquidation spread. This is the spread between oracle prices that incentivizes the liquidation of risky positions.\"},\"ownerSetMarginPremium(uint256,(uint256))\":{\"notice\":\"Set a premium on the minimum margin-ratio for a market. This makes it so that any positions that include this market require a higher collateralization to avoid being liquidated.\"},\"ownerSetMarginRatio((uint256))\":{\"notice\":\"Set the global minimum margin-ratio that every position must maintain to prevent being liquidated.\"},\"ownerSetMinBorrowedValue((uint256))\":{\"notice\":\"Set the global minimum-borrow value which is the minimum value of any new borrow on DolomiteMargin.\"},\"ownerSetPriceOracle(uint256,address)\":{\"notice\":\"Set the price oracle for a market.\"},\"ownerSetSpreadPremium(uint256,(uint256))\":{\"notice\":\"Set a premium on the liquidation spread for a market. This makes it so that any liquidations that include this market have a higher spread than the global default.\"},\"ownerWithdrawExcessTokens(uint256,address)\":{\"notice\":\"Withdraw an ERC20 token for which there is an associated market. Only excess tokens can be withdrawn. The number of excess tokens is calculated by taking the current number of tokens held in DolomiteMargin, adding the number of tokens owed to DolomiteMargin by borrowers, and subtracting the number of tokens owed to suppliers by DolomiteMargin.\"},\"ownerWithdrawUnsupportedTokens(address,address)\":{\"notice\":\"Withdraw an ERC20 token for which there is no associated market.\"},\"setOperators((address,bool)[])\":{\"notice\":\"Approves/disapproves any number of operators. An operator is an external address that has the same permissions to manipulate an account as the owner of the account. Operators are simply addresses and therefore may either be externally-owned Ethereum accounts OR smart contracts. * Operators are also able to act as AutoTrader contracts on behalf of the account owner if the operator is a smart contract and implements the IAutoTrader interface.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDolomiteMargin.sol\":\"TestDolomiteMargin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/Admin.sol\":{\"keccak256\":\"0x7232f01c56df1d72fc84c2a0562a2a70bd275c8ac08ce47d488ba3f693135660\",\"urls\":[\"bzz-raw://bd09ab69cbadea5ac422588f43d494b78d6feca2b57916db3947b7b66dbbf14f\",\"dweb:/ipfs/QmP4BzkibsPhf2ysPneuY1Gep8ZLMi2XoxcUVk2cxAGGtL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/DolomiteMargin.sol\":{\"keccak256\":\"0xe603b63adf6d1eb3384977729db974e246679fa10135d6bf31bd08a0e6ee407c\",\"urls\":[\"bzz-raw://0e612713abbac4a3a8439eae7498388d88dad936993ceac078de07415a4f4cad\",\"dweb:/ipfs/QmdMApfMXX2bgLC5W9agH14hs6EA5A39u6A2ofQYmwMW8s\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/Getters.sol\":{\"keccak256\":\"0xfe14f141a00334022c4b580bf708579bbf21e8342407b68b3fbbf2afa5c9ad62\",\"urls\":[\"bzz-raw://c05c3e16bae33a1d96623ce604b457e091f8cb8b59246c758b4b713b5ab69e62\",\"dweb:/ipfs/QmTg6GkcDGgmvBdAYaNGQHnvZcfbNwAzaL173YbNRPokpT\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/Operation.sol\":{\"keccak256\":\"0xaebae2196c8e39cb0965dc0d88979683d4b8d5a70a45259c5c88a2c9b21dc730\",\"urls\":[\"bzz-raw://66d81ffed219df67800129b079c3bb4b3246ff1e05f39a5157fb8a3681fe0351\",\"dweb:/ipfs/QmaBv43NeqUy5PJPYCtZuGL8H2L4P4B6zgTzZQPAADkK3D\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/Permission.sol\":{\"keccak256\":\"0x8a0f17ece121f76094335482d99a2ec6dd1728cc4b699aede024afd5d51ae660\",\"urls\":[\"bzz-raw://3ab2b049bb5686fafc6450c9796abac1c724a40ed0810685f64c4dab089faf5d\",\"dweb:/ipfs/QmV1XHkR2aS39byy4Ff6Px8JyHYjnZEugAJsBSz1gdQ47q\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/State.sol\":{\"keccak256\":\"0x4fe464f16c7f490dbe7f43e9672ddf1296852a4a652303a47a91bc7a3c72419b\",\"urls\":[\"bzz-raw://725237be55e03e728e268407c47704af1c93b1fddf277b5e6447d864b9f0bbfb\",\"dweb:/ipfs/QmNZfmH9XMXGdd21DMv2aNU4X152uDVUrpns64kZn1ryVn\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/AdminImpl.sol\":{\"keccak256\":\"0x9f5cc11d0375c7202f7dfb5079859c65c7f5cc1e816ea5090e281a6dbc01f5ce\",\"urls\":[\"bzz-raw://44bda3d421426f186cb3cc60765dfb2cf446c61e20bb039ba2bf2ee558e6d363\",\"dweb:/ipfs/QmZUrDfwsVPsMSWz45ejAXC1juwCZ7x9vQ14JHAgC2JAHJ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/LiquidateOrVaporizeImpl.sol\":{\"keccak256\":\"0xee3acbdae4220c61bfdbfb7aa90d99136c2810dcbea0198938471bdd3b0d04fa\",\"urls\":[\"bzz-raw://3de11553acfce257026f4dc3ffc651aa5a970197a12df9776e2c049a53c35a3c\",\"dweb:/ipfs/QmNUT3TtGC9z5cnCsZcTpaweDmM6pBkMUgis43AMm9TUZ8\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/OperationImpl.sol\":{\"keccak256\":\"0x4b39f8b94644ac2e2ac97bfdca1e52c8d406a9d89d11d7fa20cdbc40133b1cd0\",\"urls\":[\"bzz-raw://3439c3a4a1f689d4a130112b8dd00d3cd5a2113d0f6e90bee7023c7633207ac4\",\"dweb:/ipfs/QmWGrYTKbtAbdfuALDNVeivKcrM3Zwxjebg5Qczqac6XJu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IAutoTrader.sol\":{\"keccak256\":\"0x62cbb936c4abdfc1ab33bb3ee5505279cc7354f9404bedf74ee3d099623a6dfa\",\"urls\":[\"bzz-raw://91ab2bd45600b1d3268a5592deb8b396d0fc4bba05a00d1aa4b4b785a6ee46ad\",\"dweb:/ipfs/QmVmBdFGFuA6XzaWxVAxxFDH81mhomg6uJvnYi4NYRHfDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol\":{\"keccak256\":\"0x0b65209369307041e67c28634fc17a19e953199ac42a88198b76578f7fa9b0f8\",\"urls\":[\"bzz-raw://46618851882c2bc5a6212bb0a8ad095e0f38049f24ecf404163ad6b493c728a1\",\"dweb:/ipfs/QmRx4VabTaXTGSyMt8NCTZ7nMiWCHfrvqZjRaKNRir3zEe\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x3e95a2b461f3f0cc4000d71d5c7bb6b1222788cfac1c66faad029ccaa1859d1e\",\"urls\":[\"bzz-raw://cad9773b4a1b196ea3d71129b5bd5679df7db601555a6b29ac111d38c36b00f0\",\"dweb:/ipfs/QmThFva71eLSVmBHHxn34zP7BUCJZDD6wMJHxEkKNWkkvv\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0xfca7f5635821bbc8ff21db6982471a5f20071365496b74a8202e59494d0f327f\",\"urls\":[\"bzz-raw://eb289cb96c83a3ff7fd72d9a646694d324ee955874ef61e986850459b5841d16\",\"dweb:/ipfs/QmeeiaqShMqWpttPJ3GuDwxFzmq235HMVG7vDnLWnCupaZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/ILiquidationCallback.sol\":{\"keccak256\":\"0x371f5287f1f3de144179f485ee617460ce52559685ce8214f4ee55bc605009ed\",\"urls\":[\"bzz-raw://ecb24b11427988292a722d078ffa2f1e390214bd71b5a1772ac304ddb20b2480\",\"dweb:/ipfs/QmdX6uJLKBiNTvUWU3MS7W3juRJXgmX1J8n572mh8ZexNA\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IRecyclable.sol\":{\"keccak256\":\"0x68843eafdee387608bd2e757c91e90c5044fc3724ea3ad5042117ab4af49d639\",\"urls\":[\"bzz-raw://14b71da16f79b9b5356dfb8d9243a141bb87b209e30fc99c9278c9a01e62a1a0\",\"dweb:/ipfs/QmNhdGQbhSBSJ8dTqSuntaqA3ChhkKpwLuhDfS5UGQ461A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x0c71c063b3a1b4e653d94c05f6fc49de43ccc28838e406faccb1c93f424995a8\",\"urls\":[\"bzz-raw://73268db2286565ecc242da93930780e8e4794015c8c0e58d336981ffdc6cfd3a\",\"dweb:/ipfs/QmRYzhuRtKXnTscERvYS9XzjqdQFBoJZoHwRAekHo6w6Zy\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Exchange.sol\":{\"keccak256\":\"0x793484b5aa923b4cb7c9671914e3d9f2d19bee6ee680424adaa97e3b9de930c4\",\"urls\":[\"bzz-raw://cebf09a8d36b303b0b92ee850ea2a802946ac43cb26d1da819f5ea74d6e5110f\",\"dweb:/ipfs/QmeQJZSaHmJskcgL3spQTvn6tYqE9Yo3vfbMTuhJenzhwf\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0xbb17eb41ff805df51e8d637ef2a368782fdc5f085889c2d847713484f8f1967b\",\"urls\":[\"bzz-raw://538001d60d625695754159a8f716877f72217899fdab296d4725dc44bdbe1895\",\"dweb:/ipfs/QmbRm1WpPpaynnwTdmwB5M7H1cZQEtRAuExqtJ3g9SUiVp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xca1826cf783a2d48a5a45309ca92cbaee46d2caec7b5a7c154b2dfda06af8975\",\"urls\":[\"bzz-raw://e13679dfa92725d990e3b0656f4eca4b0d09616e5c2729a3bc0276923d6887e1\",\"dweb:/ipfs/QmVc8teCJ6rKutZLyvk568hCw1vYj2nC6DwyxRgswHu71k\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDolomiteMargin.sol\":{\"keccak256\":\"0xf70acde617765ea130b7bdf33294ada7b29eec696529003de1a6a7044d85d761\",\"urls\":[\"bzz-raw://b58125100d2446a3109cc612713bf41ac24d21deadbf14255320aa4e98c2cc22\",\"dweb:/ipfs/QmVPqZ1yGZhzp3MsU64w5SqiSfTZzkkZp85cLZq8NJfWav\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestOperationImpl.sol\":{\"keccak256\":\"0x402c23b97d383f6b01720480cad64d36dbc5da8a216eed4a5bbe6e4688e201f6\",\"urls\":[\"bzz-raw://06bd34638734f6c944de81d059876d7f79d4e78896d8bf2c0f1f3d88a26c3f85\",\"dweb:/ipfs/QmTYRMPjQfRmHqGty16YB7b5avCHye8ZupmUZEg2KCSopm\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
2186
- "bytecode": "0x6080604052664765747465727360c81b600e553480156200001f57600080fd5b5060405162005e2138038062005e21833981016040819052620000429162000329565b81816000620000596001600160e01b03620001a016565b600d80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d8054600160a01b60ff60a01b19909116179055815151600755602080830151516008556040808401515160095560609384015151600a558251600b80549385015192850151958501516001600160401b03199485166001600160401b0393841617600160401b600160801b03191668010000000000000000948416850217600160801b600160c01b031916600160801b97841697909702969096176001600160c01b0316600160c01b96831696909602959095179094556080830151600c805460a09095015194909316941693909317600160401b600160c01b0319166001600160801b0390921690920217905550620003db9050565b3390565b600060208284031215620001b757600080fd5b620001c3602062000369565b90506000620001d384846200030f565b82525092915050565b600060c08284031215620001ef57600080fd5b620001fb60c062000369565b905060006200020b84846200031c565b82525060206200021e848483016200031c565b602083015250604062000234848285016200031c565b60408301525060606200024a848285016200031c565b606083015250608062000260848285016200031c565b60808301525060a06200027684828501620002fc565b60a08301525092915050565b6000608082840312156200029557600080fd5b620002a1608062000369565b90506000620002b18484620001a4565b8252506020620002c484848301620001a4565b6020830152506040620002da84828501620001a4565b6040830152506060620002f084828501620001a4565b60608301525092915050565b80516200030981620003ab565b92915050565b80516200030981620003c5565b80516200030981620003d0565b60008061014083850312156200033e57600080fd5b60006200034c858562000282565b92505060806200035f85828601620001dc565b9150509250929050565b6040518181016001600160401b03811182821017156200038857600080fd5b604052919050565b6001600160801b031690565b90565b6001600160401b031690565b620003b68162000390565b8114620003c257600080fd5b50565b620003b6816200039c565b620003b6816200039f565b615a3680620003eb6000396000f3fe608060405234801561001057600080fd5b50600436106103995760003560e01c80638928378e116101e9578063d36cca901161010f578063eb1c6e6b116100ad578063f2fde38b1161007c578063f2fde38b14610834578063f941605214610847578063fd04b6061461085a578063fd47eda61461086d57610399565b8063eb1c6e6b146107d9578063eb44fdd3146107ee578063ef6957d01461080e578063f2901ae21461082157610399565b8063deec053d116100e9578063deec053d1461078b578063e51bfcb41461079e578063e5520228146107be578063e8e72f75146107c657610399565b8063d36cca9014610752578063d5ecf7c514610765578063d96e406d1461077857610399565b8063b42cbcd311610187578063c190c2ec11610156578063c190c2ec146106ec578063c8e188261461070c578063cb04a34c1461071f578063d24c48bc1461073f57610399565b8063b42cbcd31461069b578063b548b892146106ae578063c0bb72b7146106d1578063c1460942146106e457610399565b80638f6bc659116101c35780638f6bc6591461064f5780638fae3be11461066257806398d4611b14610675578063a67a6a451461068857610399565b80638928378e1461062c5780638da5cb5b1461063f5780638f32d59b1461064757610399565b8063387a498a116102ce5780635ac7d17c1161026c5780637e9eaf411161023b5780637e9eaf41146105eb57806383566670146105f35780638439dd921461060657806385b53fc81461061957610399565b80635ac7d17c1461059857806369794795146105ab5780636a8194e7146105c0578063715018a6146105e357610399565b80634be87414116102a85780634be874141461054a5780634f3c15421461055d57806356ea84b2146105655780635735a4301461058557610399565b8063387a498a146105045780633a031bf01461051757806347d1b53c1461052a57610399565b8063197f0f051161033b5780632a560845116103155780632a560845146104b85780632e822af3146104cb5780633063bce2146104de57806334fd45f1146104f157610399565b8063197f0f05146104705780631a7777bb14610483578063295c39a5146104a357610399565b8063062bd3e911610377578063062bd3e9146103fc578063121fb72f1461041c578063124f914c1461042f578063133683641461045057610399565b80630339a0c41461039e578063042069d6146103c7578063052f72d7146103dc575b600080fd5b6103b16103ac366004614911565b610880565b6040516103be91906153c5565b60405180910390f35b6103da6103d53660046149bb565b610955565b005b6103ef6103ea36600461461c565b610a54565b6040516103be9190615423565b61040f61040a366004614911565b610a6c565b6040516103be9190615374565b6103da61042a36600461498b565b610a88565b61044261043d366004614828565b610b37565b6040516103be92919061573d565b61046361045e366004614911565b610b5b565b6040516103be9190615431565b61046361047e366004614911565b610b92565b610496610491366004614911565b610bc9565b6040516103be91906154ae565b6104ab610c00565b6040516103be9190615759565b6104ab6104c636600461463a565b610c06565b6103da6104d936600461480a565b610d22565b6103da6104ec36600461480a565b610e15565b6104ab6104ff366004614828565b610ec2565b6103da61051236600461480a565b610ed4565b6103ef61052536600461463a565b610f81565b61053d610538366004614876565b610f9b565b6040516103be9190615512565b6103da6105583660046149bb565b610fbe565b61049661106d565b610578610573366004614911565b611089565b6040516103be91906154bc565b6103ef610593366004614911565b6110be565b6103ef6105a6366004614911565b6110f8565b6105b3611120565b6040516103be919061552e565b6105d36105ce366004614828565b61117c565b6040516103be94939291906153d6565b6103da611333565b6104966113c6565b6103da610601366004614846565b6113e2565b6103da6106143660046146a4565b611454565b6103da61062736600461479f565b611559565b61049661063a366004614911565b611640565b61040f611675565b6103ef611691565b6104ab61065d36600461494d565b6116d1565b6104ab61067036600461461c565b611782565b6103b1610683366004614828565b6117b6565b6103da610696366004614740565b6117c9565b6103da6106a93660046149eb565b611854565b6106c16106bc366004614911565b6119f9565b6040516103be94939291906154d9565b6103da6106df36600461480a565b611a55565b610496611b02565b6106ff6106fa366004614876565b611b1e565b6040516103be919061574b565b61053d61071a366004614876565b611b5e565b61073261072d366004614911565b611b66565b6040516103be919061572f565b61049661074d366004614a1b565b611b88565b6103da6107603660046147d4565b611bb4565b6106ff610773366004614911565b611c63565b6103da6107863660046148a6565b611c85565b610578610799366004614911565b611d1a565b6107b16107ac366004614828565b611d3c565b6040516103be919061543f565b610496611d4e565b6103da6107d436600461498b565b611d6a565b6107e1611e19565b6040516103be9190615520565b6108016107fc366004614911565b611ebb565b6040516103be91906154ca565b6103da61081c36600461496c565b612026565b6103da61082f366004614674565b6120d5565b6103da61084236600461461c565b612184565b610442610855366004614828565b6121b4565b610496610868366004614911565b6121cf565b61049661087b366004614911565b612206565b606060008090506060836040519080825280602002602001820160405280156108b3578160200160208202803883390190505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260036020527fb1ee3b3d0d99532dd9f14b22c0b908d4eec0e052c3827bbed2d6c3986954d08c549091505b801580159061091157508483105b1561094b578082848060010195508151811061092957fe5b6020908102919091018101919091526000918252600390526040902054610903565b509150505b919050565b61095d611691565b6109825760405162461bcd60e51b81526004016109799061548e565b60405180910390fd5b600d54600160a01b900460ff166109ab5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8854ab3e00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638854ab3e90610a0d9060009086908690600401615707565b60006040518083038186803b158015610a2557600080fd5b505af4158015610a39573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b17905550505050565b6000610a66818363ffffffff61223b16565b92915050565b6000610a778261226a565b610a6660008363ffffffff6122cb16565b610a90611691565b610aac5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610ad55760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517faa92e34800000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063aa92e34890610a0d90600090869086906004016156df565b610b3f613f4a565b610b47613f4a565b610b528360006122f7565b91509150915091565b6000610b668261226a565b5060009081526001602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b9d8261226a565b5060009081526001602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1690565b610bd1613f4a565b610bda8261226a565b506000908152600160209081526040918290208251918201909252600690910154815290565b60005490565b6000610c10611691565b610c2c5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610c555760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fdd32998a00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063dd32998a90610cb7906000908790879060040161553c565b60206040518083038186803b158015610ccf57600080fd5b505af4158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d07919081019061492f565b9050600d805460ff60a01b1916600160a01b17905592915050565b610d2a611691565b610d465760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610d6f5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517ff9cacc4c00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063f9cacc4c90610dcf906000908590600401615659565b60006040518083038186803b158015610de757600080fd5b505af4158015610dfb573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050565b610e1d611691565b610e395760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610e625760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f0f44e6bc00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90630f44e6bc90610dcf906000908590600401615659565b6000610a66818363ffffffff61239c16565b610edc611691565b610ef85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610f215760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f311401d000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063311401d090610dcf906000908590600401615659565b6000610f9481848463ffffffff6123e316565b9392505050565b610fa3613f5d565b610fac8261226a565b610f946000848463ffffffff61242016565b610fc6611691565b610fe25760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff1661100b5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f7335079b00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90637335079b90610a0d9060009086908690600401615707565b611075613f4a565b506040805160208101909152600754815290565b611091613f74565b61109a8261226a565b610a66826110af60008263ffffffff61249f16565b6000919063ffffffff61252316565b60006110c98261226a565b506000908152600160205260409020547501000000000000000000000000000000000000000000900460ff1690565b60006111038261226a565b50600090815260016020526040902054600160a01b900460ff1690565b611128613f94565b506040805160a081018252600754608082019081528152815160208181018452600854825280830191909152825180820184526009548152828401528251908101909252600a548252606081019190915290565b60608080808061119360008763ffffffff61257b16565b9050606081516040519080825280602002602001820160405280156111c2578160200160208202803883390190505b5090506060825160405190808252806020026020018201604052801561120257816020015b6111ef613f5d565b8152602001906001900390816111e75790505b5090506060835160405190808252806020026020018201604052801561124257816020015b61122f613f5d565b8152602001906001900390816112275790505b50905060005b84518110156113235761126d85828151811061126057fe5b6020026020010151610a6c565b84828151811061127957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112d08a8683815181106112c357fe5b6020026020010151610f9b565b8382815181106112dc57fe5b60200260200101819052506113048a8683815181106112f757fe5b6020026020010151611b1e565b82828151811061131057fe5b6020908102919091010152600101611248565b5092989197509550909350915050565b61133b611691565b6113575760405162461bcd60e51b81526004016109799061548e565b600d5460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6113ce613f4a565b506040805160208101909152600a54815290565b815173ffffffffffffffffffffffffffffffffffffffff166000908152600460209081526040808320828601518452909152902080548291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561144b57fe5b02179055505050565b61145c611691565b6114785760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166114a15760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f4f32fb2700000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90634f32fb279061150d906000908b908b908b908b908b908b908b9060040161558c565b60006040518083038186803b15801561152557600080fd5b505af4158015611539573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050505050505050565b60005b815181101561163c57600082828151811061157357fe5b6020026020010151600001519050600083838151811061158f57fe5b60209081029190910181015181015133600081815260058452604080822073ffffffffffffffffffffffffffffffffffffffff8816835290945283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001683151517905591519092507f4d7f317d2088d039c2a95a09fcbf9cc9191fad5905f883c937cc3d317c4a63279061162a9085908590615382565b60405180910390a2505060010161155c565b5050565b611648613f4a565b6116518261226a565b610a668261166660008263ffffffff6122cb16565b6000919063ffffffff6125c016565b600d5473ffffffffffffffffffffffffffffffffffffffff1690565b600d5460009073ffffffffffffffffffffffffffffffffffffffff166116b56126ef565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006116db611691565b6116f75760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166117205760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fb25328e000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063b25328e090610cb790600090879087906004016156a9565b600061178d826126f3565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6060610a6660008363ffffffff61257b16565b600d54600160a01b900460ff166117f25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fbd76ecfd00000000000000000000000000000000000000000000000000000000815273__OperationImpl_________________________9063bd76ecfd90610a0d90600090869086906004016155f6565b61185c613f74565b5060008281526001602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082048116938301939093527801000000000000000000000000000000000000000000000000900463ffffffff16928101929092528251166118eb5780516bffffffffffffffffffffffff1682525b60208201516bffffffffffffffffffffffff1661191b576020808201516bffffffffffffffffffffffff16908301525b5060009182526001602090815260409283902082516002909101805492840151939094015163ffffffff167801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff9485166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff959093167fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090941693909317939093161716179055565b611a01613fd3565b611a09613f74565b611a11613f4a565b611a19613f4a565b611a228561226a565b611a2b85611ebb565b611a3486611089565b611a3d87611640565b611a4688612206565b93509350935093509193509193565b611a5d611691565b611a795760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611aa25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f54dd351600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906354dd351690610dcf906000908590600401615659565b611b0a613f4a565b506040805160208101909152600854815290565b611b26613f5d565b611b2f8261226a565b610f94611b446000858563ffffffff61242016565b611b59846110af60008263ffffffff61249f16565b61275c565b610fac613f5d565b611b6e613f5d565b611b778261226a565b610a6660008363ffffffff61280d16565b611b90613f4a565b611b998361226a565b611ba28261226a565b610f946000848463ffffffff61286d16565b611bbc611691565b611bd85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611c015760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fd963729100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063d963729190610a0d906000908690869060040161562a565b611c6b613f5d565b611c748261226a565b610a6660008363ffffffff61290416565b611c8e8261226a565b6040517f81379a5e00000000000000000000000000000000000000000000000000000000815273__TestOperationImpl_____________________906381379a5e90611ce590600090879087908790600401615674565b60006040518083038186803b158015611cfd57600080fd5b505af4158015611d11573d6000803e3d6000fd5b50505050505050565b611d22613f74565b611d2b8261226a565b610a6660008363ffffffff61249f16565b6000610a66818363ffffffff612a5f16565b611d56613f4a565b506040805160208101909152600954815290565b611d72611691565b611d8e5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611db75760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8c5dabd100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638c5dabd190610a0d90600090869086906004016156df565b611e21614025565b506040805160c081018252600b5467ffffffffffffffff808216835268010000000000000000808304821660208501527001000000000000000000000000000000008304821694840194909452780100000000000000000000000000000000000000000000000090910481166060830152600c549081166080830152919091046fffffffffffffffffffffffffffffffff1660a082015290565b611ec3613fd3565b611ecc8261226a565b50600090815260016020818152604092839020835161012081018552815473ffffffffffffffffffffffffffffffffffffffff8082168352600160a01b820460ff908116151584870152750100000000000000000000000000000000000000000090920490911615158287015285518087018752948301546fffffffffffffffffffffffffffffffff808216875270010000000000000000000000000000000090910416858501526060808301959095528551948501865260028301546bffffffffffffffffffffffff80821687526c01000000000000000000000000820416868601527801000000000000000000000000000000000000000000000000900463ffffffff168587015260808201949094526003820154841660a0820152600482015490931660c0840152835180830185526005820154815260e08401528351918201909352600690920154825261010081019190915290565b61202e611691565b61204a5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166120735760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f10c87b0600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906310c87b0690610a0d90600090869086906004016156c4565b6120dd611691565b6120f95760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166121225760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fe80f802400000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063e80f802490610a0d9060009086908690600401615564565b61218c611691565b6121a85760405162461bcd60e51b81526004016109799061548e565b6121b181612a9e565b50565b6121bc613f4a565b6121c4613f4a565b610b528360016122f7565b6121d7613f4a565b6121e08261226a565b506000908152600160209081526040918290208251918201909252600590910154815290565b61220e613f4a565b6122178261226a565b610a668261222c60008263ffffffff61249f16565b6000919063ffffffff612b5f16565b73ffffffffffffffffffffffffffffffffffffffff166000908152600691909101602052604090205460ff1690565b6000546121b190821080156122a2575060008281526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b600e547f496e76616c6964206d61726b6574000000000000000000000000000000000000612c6a565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6122ff613f4a565b612307613f4a565b606061231a60008663ffffffff61257b16565b905061232461405a565b61232e8251612cfd565b905060005b825181101561236a5761236283828151811061234b57fe5b602002602001015183612d5c90919063ffffffff16565b600101612333565b5061237c60008263ffffffff612dc616565b61238f600087838863ffffffff61301516565b9350935050509250929050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260049290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600593909301602090815260408085209290931684525290205460ff1690565b612428613f5d565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526004840160209081526040808320828601518452825280832084845260030182529182902082518084019093525460ff8116151583526fffffffffffffffffffffffffffffffff61010090910416908201529392505050565b6124a7613f74565b506000908152600191909101602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041692820192909252780100000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b61252b613f74565b612533613f4a565b61254485858563ffffffff612b5f16565b9050612572838261255b888863ffffffff61280d16565b604080516020810190915260098a01548152613178565b95945050505050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260048301602090815260408083208285015184529091529020606090610f94906001016132e3565b6125c8613f4a565b600083815260018501602052604090206003015473ffffffffffffffffffffffffffffffffffffffff166125fa613f4a565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906341976e099061264c908790600401615374565b60206040518083038186803b15801561266457600080fd5b505afa158015612678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061269c91908101906148f3565b80519091506125729015157f53746f72616765000000000000000000000000000000000000000000000000007f50726963652063616e6e6f74206265207a65726f0000000000000000000000008861333f565b3390565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002602090815260408083205483526001909152902054600e546121b19391909116909114907f496e76616c696420746f6b656e00000000000000000000000000000000000000612c6a565b612764613f5d565b602083015183516fffffffffffffffffffffffffffffffff90911690156127d0576040805180820190915260018152602084810151908201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b815250915050610a66565b6040805180820190915260008152835160208201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b612815613f5d565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b612875613f4a565b60088401546000848152600186016020908152604091829020825191820190925260069091015481526128b29082906128ad90613471565b6134a8565b90506128ed816128ad876001016000878152602001908152602001600020600601604051806020016040529081600082015481525050613471565b604080516020810190915290815295945050505050565b61290c613f5d565b612914613f74565b612924848463ffffffff61249f16565b905061292e613f5d565b61293e858563ffffffff61280d16565b90506000612952868663ffffffff6122cb16565b905061295c613f5d565b6040805180820182526001815290517f70a08231000000000000000000000000000000000000000000000000000000008152602082019073ffffffffffffffffffffffffffffffffffffffff8516906370a08231906129bf903090600401615374565b60206040518083038186803b1580156129d757600080fd5b505afa1580156129eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a0f919081019061492f565b90529050612a1b613f5d565b612a23613f5d565b612a2d85876134c1565b9092509050612a5282612a46858463ffffffff61356916565b9063ffffffff61356916565b9998505050505050505050565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526004929092016020908152604080842092820151845291905290205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8116612ad15760405162461bcd60e51b81526004016109799061545e565b600d5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612b67613f4a565b612b6f613f5d565b612b7f858563ffffffff61280d16565b9050612b89613f5d565b612b91613f5d565b612b9b83866134c1565b91509150612ba7613f4a565b600087815260018901602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1663e8177dcf612be68a8a63ffffffff6122cb16565b846020015186602001516040518463ffffffff1660e01b8152600401612c0e9392919061539d565b60206040518083038186803b158015612c2657600080fd5b505afa158015612c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c5e91908101906148f3565b98975050505050505050565b82612cf857612c7882613583565b7f3a20000000000000000000000000000000000000000000000000000000000000612ca283613583565b604051602001612cb493929190615272565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b82526109799160040161544d565b505050565b612d0561405a565b604080516000606082018181526080830190935290918291612d3d565b612d2a61407b565b815260200190600190039081612d225790505b508152602001612d4c84613657565b8152600060209091015292915050565b815151612dab90157f43616368650000000000000000000000000000000000000000000000000000007f616c726561647920696e697469616c697a656400000000000000000000000000612c6a565b612db9826020015182613691565b5060400180516001019052565b8060400151604051908082528060200260200182016040528015612e0457816020015b612df161407b565b815260200190600190039081612de95790505b5081526000805b826020015151811015612fbb57600083602001518281518110612e2a57fe5b602002602001015190505b8015612fa0576000612e46826136c7565b90506000612e54848361389e565b90506000612e68888363ffffffff6122cb16565b600083815260018a016020526040902054909150600160a01b900460ff1615612f1e576040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff8316602082015260019181019190915260608101612ed18a8563ffffffff61280d16565b516fffffffffffffffffffffffffffffffff168152602001612efa8a858563ffffffff6125c016565b9052875180516001890198908110612f0e57fe5b6020026020010181905250612f8c565b6040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff831660208201526000918101829052606081019190915260808101612f6c8a858563ffffffff6125c016565b9052875180516001890198908110612f8057fe5b60200260200101819052505b612f9684846138a9565b9350505050612e35565b8360400151831415612fb25750612fbb565b50600101612e0b565b506040820151825151612cf891808414917f53746f7261676500000000000000000000000000000000000000000000000000917f636163686520696e697469616c697a656420696d70726f7065726c7900000000916138b2565b61301d613f4a565b613025613f4a565b61302d613f4a565b613035613f4a565b60006130408761397d565b905060005b8181101561316957613055613f5d565b6130788a6130698b8563ffffffff61398216565b518d919063ffffffff6139fe16565b905061308381613a6d565b1561308e5750613161565b60006130b96130a38b8563ffffffff61398216565b608001515160208401519063ffffffff613a7516565b90506130c3613f4a565b6130cb613aaf565b905089156131165761311360018e0160006130ec8e8863ffffffff61398216565b51815260208082019290925260409081016000208151928301909152600501548152613471565b90505b82511561313f5761313861312a8383613ad1565b88519063ffffffff613aea16565b875261315d565b61315a61314c83836134a8565b87519063ffffffff613aea16565b86525b5050505b600101613045565b50919890975095505050505050565b613180613f74565b613188613f5d565b613190613f5d565b61319a85886134c1565b9150915060006131a8613b0f565b905060006131e06131d28a6040015163ffffffff168463ffffffff16613b1f90919063ffffffff16565b89519063ffffffff613a7516565b905060006131ed85613a6d565b156131fa5750600061322c565b61320482886134a8565b905084602001518460200151101561322c576132298185602001518760200151613b61565b90505b8181111561323657fe5b60408051606081019091528a51819061327f9061327a906bffffffffffffffffffffffff1661326e8188670de0b6b3a7640000613b61565b9063ffffffff613aea16565b613b77565b6bffffffffffffffffffffffff908116825260208d8101519201916132b69161327a911661326e8187670de0b6b3a7640000613b61565b6bffffffffffffffffffffffff1681526020018463ffffffff16815250955050505050505b949350505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561333357602002820191906000526020600020905b81548152602001906001019080831161331f575b50505050509050919050565b836133d75761334d83613583565b7f3a2000000000000000000000000000000000000000000000000000000000000061337784613583565b7f203c0000000000000000000000000000000000000000000000000000000000006133a185613bd6565b604051612cb49594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161529a565b50505050565b60008315806133ea575082155b15613401576133fa600083613ce5565b9050610f94565b6000613413858563ffffffff613a7516565b905061257261343e600161326e6002613432888463ffffffff613b1f16565b9063ffffffff613ce516565b61344e838663ffffffff613d2716565b101561345b57600061345e565b60015b60ff1661326e838663ffffffff613ce516565b613479613f4a565b6040805160208101909152825181906134a090670de0b6b3a764000063ffffffff613aea16565b905292915050565b6000610f94838360000151670de0b6b3a7640000613b61565b6134c9613f5d565b6134d1613f5d565b6134d9613f5d565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff169082015261350c613f5d565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff16602082015261353c613f5d565b613546838761275c565b9050613550613f5d565b61355a838861275c565b91989197509095505050505050565b613571613f5d565b610f948361357e84613d69565b613d90565b60608082604051602001613597919061525d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156136405781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061360357fe5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561363b5760010181529050610950565b6135ca565b505060408051600081526020810190915292915050565b6060600161010083040160405190808252806020026020018201604052801561368a578160200160208202803883390190505b5092915050565b815161010082049060ff8316906001821b908590849081106136af57fe5b60200260200101818151179150818152505050505050565b600060ff6fffffffffffffffffffffffffffffffff83161561370a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613712565b608083901c92505b67ffffffffffffffff831615613749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613751565b604083901c92505b63ffffffff831615613784577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00161378c565b602083901c92505b61ffff8316156137bd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016137c5565b601083901c92505b60ff8316156137f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016137fd565b600883901c92505b600f83161561382d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01613835565b600483901c92505b6003831615613865577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161386d565b600283901c92505b6001831615610a66577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b84613976576138c084613583565b7f3a200000000000000000000000000000000000000000000000000000000000006138ea85613583565b7f203c00000000000000000000000000000000000000000000000000000000000061391486613bd6565b7f2c2000000000000000000000000000000000000000000000000000000000000061393e87613bd6565b604051612cb497969594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016152f8565b5050505050565b515190565b61398a61407b565b8251516139e090808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e646578000000000000000000000000000000000000009086906138b2565b82518051839081106139ee57fe5b6020026020010151905092915050565b613a06613f5d565b613a0e613f5d565b613a1f85858563ffffffff61242016565b9050613a2a81613e22565b15613a3f57613a37613e3c565b915050610f94565b613a47613f74565b613a57868563ffffffff61249f16565b9050613a63828261275c565b9695505050505050565b602001511590565b600082613a8457506000610a66565b82820282848281613a9157fe5b0414610f945760405162461bcd60e51b81526004016109799061547e565b613ab7613f4a565b506040805160208101909152670de0b6b3a7640000815290565b6000610f9483670de0b6b3a76400008460000151613b61565b600082820183811015610f945760405162461bcd60e51b81526004016109799061546e565b6000613b1a42613e5c565b905090565b6000610f9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613eb3565b60006132db82613432868663ffffffff613a7516565b600081610a666bffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74393600000000000000000000008461333f565b606081613c17575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610950565b8160005b8115613c2f57600101600a82049150613c1b565b6060816040519080825280601f01601f191660200182016040528015613c5c576020820181803883390190505b508593509050815b8015613cdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b828281518110613ca257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350613c64565b50949350505050565b6000610f9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613edf565b6000610f9483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613f16565b613d71613f5d565b5060408051808201909152815115815260208083015190820152919050565b613d98613f5d565b613da0613f5d565b8251845115159015151415613dd35783511515815260208085015190840151613dc99190613aea565b6020820152610f94565b8260200151846020015110613dfc5783511515815260208085015190840151613dc99190613b1f565b82511515815260208084015190850151613e169190613b1f565b60208201529392505050565b602001516fffffffffffffffffffffffffffffffff161590565b613e44613f5d565b50604080518082019091526000808252602082015290565b600081610a6663ffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74333200000000000000000000008461333f565b60008184841115613ed75760405162461bcd60e51b8152600401610979919061544d565b505050900390565b60008183613f005760405162461bcd60e51b8152600401610979919061544d565b506000838581613f0c57fe5b0495945050505050565b60008183613f375760405162461bcd60e51b8152600401610979919061544d565b50828481613f4157fe5b06949350505050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280613fa7613f4a565b8152602001613fb4613f4a565b8152602001613fc1613f4a565b8152602001613fce613f4a565b905290565b60408051610120810182526000808252602082018190529181019190915260608101613ffd613f5d565b815260200161400a613f74565b81526000602082018190526040820152606001613fc1613f4a565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180606001604052806060815260200160608152602001600081525090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160006fffffffffffffffffffffffffffffffff168152602001613fce613f4a565b8035610a6681615982565b600082601f8301126140f057600080fd5b81356141036140fe8261578e565b615767565b81815260209384019390925082018360005b83811015614141578135860161412b8882614325565b8452506020928301929190910190600101614115565b5050505092915050565b600082601f83011261415c57600080fd5b813561416a6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561418f57600080fd5b60005b8381101561414157816141a588826144fe565b84525060209092019160409190910190600101614192565b600082601f8301126141ce57600080fd5b81356141dc6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561420157600080fd5b60005b8381101561414157816142178882614545565b84525060209092019160409190910190600101614204565b600082601f83011261424057600080fd5b813561424e6140fe8261578e565b9150818183526020840193506020810190508385602084028201111561427357600080fd5b60005b83811015614141578161428988826145f0565b8452506020928301929190910190600101614276565b8035610a6681615996565b600082601f8301126142bb57600080fd5b81356142c96140fe826157af565b915080825260208301602083018583830111156142e557600080fd5b6142f0838284615904565b50505092915050565b8035610a668161599f565b8035610a66816159a8565b8035610a66816159b5565b8035610a66816159c2565b6000610160828403121561433857600080fd5b614343610100615767565b905060006143518484614304565b8252506020614362848483016145f0565b602083015250604061437684828501614401565b60408301525060c061438a848285016145f0565b60608301525060e061439e848285016145f0565b6080830152506101006143b3848285016140d4565b60a0830152506101206143c8848285016145f0565b60c08301525061014082013567ffffffffffffffff8111156143e957600080fd5b6143f5848285016142aa565b60e08301525092915050565b60006080828403121561441357600080fd5b61441d6080615767565b9050600061442b848461429f565b825250602061443c8484830161430f565b60208301525060406144508482850161430f565b6040830152506060614464848285016145f0565b60608301525092915050565b60006020828403121561448257600080fd5b61448c6020615767565b9050600061449a84846145f0565b82525092915050565b6000606082840312156144b557600080fd5b6144bf6060615767565b905060006144cd8484614611565b82525060206144de84848301614611565b60208301525060406144f284828501614606565b60408301525092915050565b60006040828403121561451057600080fd5b61451a6040615767565b9050600061452884846140d4565b8252506020614539848483016145f0565b60208301525092915050565b60006040828403121561455757600080fd5b6145616040615767565b9050600061456f84846140d4565b82525060206145398484830161429f565b60006040828403121561459257600080fd5b61459c6040615767565b905060006145aa848461429f565b8252506020614539848483016145e5565b6000602082840312156145cd57600080fd5b6145d76020615767565b9050600061449a84846145fb565b8035610a66816159cf565b8035610a66816159d8565b8051610a66816159d8565b8035610a66816159e1565b8035610a66816159ea565b60006020828403121561462e57600080fd5b60006132db84846140d4565b6000806040838503121561464d57600080fd5b600061465985856140d4565b925050602061466a858286016140d4565b9150509250929050565b6000806040838503121561468757600080fd5b600061469385856140d4565b925050602061466a8582860161429f565b600080600080600080600060e0888a0312156146bf57600080fd5b60006146cb8a8a6140d4565b97505060206146dc8a828b016142f9565b96505060406146ed8a828b016142f9565b95505060606146fe8a828b01614470565b945050608061470f8a828b01614470565b93505060a06147208a828b0161429f565b92505060c06147318a828b0161429f565b91505092959891949750929550565b6000806040838503121561475357600080fd5b823567ffffffffffffffff81111561476a57600080fd5b6147768582860161414b565b925050602083013567ffffffffffffffff81111561479357600080fd5b61466a858286016140df565b6000602082840312156147b157600080fd5b813567ffffffffffffffff8111156147c857600080fd5b6132db848285016141bd565b600080604083850312156147e757600080fd5b823567ffffffffffffffff8111156147fe57600080fd5b6146598582860161422f565b60006020828403121561481c57600080fd5b60006132db8484614470565b60006040828403121561483a57600080fd5b60006132db84846144fe565b6000806060838503121561485957600080fd5b600061486585856144fe565b925050604061466a8582860161431a565b6000806060838503121561488957600080fd5b600061489585856144fe565b925050604061466a858286016145f0565b600080600060a084860312156148bb57600080fd5b60006148c786866144fe565b93505060406148d8868287016145f0565b92505060606148e986828701614580565b9150509250925092565b60006020828403121561490557600080fd5b60006132db84846145bb565b60006020828403121561492357600080fd5b60006132db84846145f0565b60006020828403121561494157600080fd5b60006132db84846145fb565b6000806040838503121561496057600080fd5b600061465985856145f0565b6000806040838503121561497f57600080fd5b600061469385856145f0565b6000806040838503121561499e57600080fd5b60006149aa85856145f0565b925050602061466a858286016142f9565b600080604083850312156149ce57600080fd5b60006149da85856145f0565b925050602061466a85828601614470565b600080608083850312156149fe57600080fd5b6000614a0a85856145f0565b925050602061466a858286016144a3565b60008060408385031215614a2e57600080fd5b6000614a3a85856145f0565b925050602061466a858286016145f0565b6000614a578383614aa3565b505060200190565b6000610f948383614f25565b6000614a778383615059565b505060400190565b6000614a77838361512c565b6000614a77838361521f565b6000614a578383615239565b614aac81615808565b82525050565b6000614abd826157fb565b614ac781856157ff565b9350614ad2836157f5565b8060005b83811015614b00578151614aea8882614a4b565b9750614af5836157f5565b925050600101614ad6565b509495945050505050565b6000614b16826157fb565b614b2081856157ff565b935083602082028501614b32856157f5565b8060005b85811015614b6c5784840389528151614b4f8582614a5f565b9450614b5a836157f5565b60209a909a0199925050600101614b36565b5091979650505050505050565b6000614b84826157fb565b614b8e81856157ff565b9350614b99836157f5565b8060005b83811015614b00578151614bb18882614a6b565b9750614bbc836157f5565b925050600101614b9d565b6000614bd2826157fb565b614bdc81856157ff565b9350614be7836157f5565b8060005b83811015614b00578151614bff8882614a7f565b9750614c0a836157f5565b925050600101614beb565b6000614c20826157fb565b614c2a81856157ff565b9350614c35836157f5565b8060005b83811015614b00578151614c4d8882614a8b565b9750614c58836157f5565b925050600101614c39565b6000614c6e826157fb565b614c7881856157ff565b9350614c83836157f5565b8060005b83811015614b00578151614c9b8882614a97565b9750614ca6836157f5565b925050600101614c87565b6000614cbc826157fb565b614cc681856157ff565b9350614cd1836157f5565b8060005b83811015614b00578151614ce98882614a97565b9750614cf4836157f5565b925050600101614cd5565b614aac81615813565b614aac614d1482615818565b615862565b614aac614d148261583d565b614aac614d1482615862565b6000614d3c826157fb565b614d468185610950565b9350614d56818560208601615910565b9290920192915050565b6000614d6b826157fb565b614d7581856157ff565b9350614d85818560208601615910565b614d8e8161593c565b9093019392505050565b614aac81615865565b614aac816158e3565b614aac816158ee565b614aac816158f9565b6000614dc96026836157ff565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614e28601b836157ff565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614e616021836157ff565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614ec06020836157ff565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000614ef9601f836157ff565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b8051600090610160840190614f3a8582614da1565b506020830151614f4d6020860182615239565b506040830151614f606040860182614fc7565b506060830151614f7360c0860182615239565b506080830151614f8660e0860182615239565b5060a0830151614f9a610100860182614aa3565b5060c0830151614fae610120860182615239565b5060e08301518482036101408601526125728282614d60565b80516080830190614fd88482614cff565b506020820151614feb6020850182614daa565b506040820151614ffe6040850182614daa565b5060608201516133d76060850182615239565b805160208301906133d78482615239565b805160608301906150338482615254565b5060208201516150466020850182615254565b5060408201516133d76040850182615242565b8051604083019061506a8482614aa3565b5060208201516133d76020850182615239565b805161018083019061508f8482614aa3565b5060208201516150a26020850182614cff565b5060408201516150b56040850182614cff565b5060608201516150c8606085018261520e565b5060808201516150db60a0850182615022565b5060a08201516150ef610100850182614d98565b5060c0820151615103610120850182614d98565b5060e0820151615117610140850182615011565b506101008201516133d7610160850182615011565b8051604083019061513d8482614cff565b5060208201516133d76020850182615230565b805160c0830190615161848261524b565b506020820151615174602085018261524b565b506040820151615187604085018261524b565b50606082015161519a606085018261524b565b5060808201516151ad608085018261524b565b5060a08201516133d760a0850182615230565b805160808301906151d18482615011565b5060208201516151e46020850182615011565b5060408201516151f76040850182615011565b5060608201516133d76060850182615011565b9052565b8051604083019061513d8482615230565b8051604083019061506a8482614cff565b614aac8161588e565b614aac81615862565b614aac816158bc565b614aac816158c5565b614aac816158d2565b60006152698284614d25565b50602001919050565b600061527e8286614d31565b915061528a8285614d19565b6002820191506125728284614d31565b60006152a68289614d31565b91506152b28288614d19565b6002820191506152c28287614d31565b91506152ce8286614d19565b6002820191506152de8285614d31565b91506152ea8284614d08565b506001019695505050505050565b6000615304828b614d31565b9150615310828a614d19565b6002820191506153208289614d31565b915061532c8288614d19565b60028201915061533c8287614d31565b91506153488286614d19565b6002820191506153588285614d31565b91506153648284614d08565b5060010198975050505050505050565b60208101610a668284614aa3565b604081016153908285614aa3565b610f946020830184614cff565b606081016153ab8286614aa3565b6153b86020830185615239565b6132db6040830184615239565b60208082528101610f948184614c63565b608080825281016153e78187614c63565b905081810360208301526153fb8186614ab2565b9050818103604083015261540f8185614bc7565b90508181036060830152613a638184614c15565b60208101610a668284614cff565b60208101610a668284614d98565b60208101610a668284614db3565b60208082528101610f948184614d60565b60208082528101610a6681614dbc565b60208082528101610a6681614e1b565b60208082528101610a6681614e54565b60208082528101610a6681614eb3565b60208082528101610a6681614eec565b60208101610a668284615011565b60608101610a668284615022565b6101808101610a66828461507d565b61022081016154e8828761507d565b6154f6610180830186615022565b6155046101e0830185615011565b612572610200830184615011565b60408101610a66828461512c565b60c08101610a668284615150565b60808101610a6682846151c0565b6060810161554a828661520a565b6155576020830185614aa3565b6132db6040830184614aa3565b60608101615572828661520a565b61557f6020830185614aa3565b6132db6040830184614cff565b610100810161559b828b61520a565b6155a8602083018a614aa3565b6155b56040830189614d98565b6155c26060830188614d98565b6155cf6080830187615011565b6155dc60a0830186615011565b6155e960c0830185614cff565b612a5260e0830184614cff565b60608101615604828661520a565b81810360208301526156168185614b79565b905081810360408301526125728184614b0b565b60608101615638828661520a565b818103602083015261564a8185614cb1565b90506132db6040830184614aa3565b60408101615667828561520a565b610f946020830184615011565b60c08101615682828761520a565b61568f6020830186615059565b61569c6060830185615239565b612572608083018461512c565b606081016156b7828661520a565b6155576020830185615239565b606081016156d2828661520a565b61557f6020830185615239565b606081016156ed828661520a565b6156fa6020830185615239565b6132db6040830184614d98565b60608101615715828661520a565b6157226020830185615239565b6132db6040830184615011565b60408101610a66828461520e565b604081016156678285615011565b60408101610a66828461521f565b60208101610a668284615239565b60405181810167ffffffffffffffff8111828210171561578657600080fd5b604052919050565b600067ffffffffffffffff8211156157a557600080fd5b5060209081020190565b600067ffffffffffffffff8211156157c657600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b6000610a66826158a3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6000610a6682615808565b8061095081615964565b806109508161596e565b8061095081615978565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b67ffffffffffffffff1690565b6bffffffffffffffffffffffff1690565b6000610a6682615870565b6000610a668261587a565b6000610a6682615884565b82818337506000910152565b60005b8381101561592b578181015183820152602001615913565b838111156133d75750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600981106121b157fe5b600281106121b157fe5b600381106121b157fe5b61598b81615808565b81146121b157600080fd5b61598b81615813565b61598b81615865565b600981106121b157600080fd5b600281106121b157600080fd5b600381106121b157600080fd5b61598b8161588e565b61598b81615862565b61598b816158bc565b61598b816158d256fea365627a7a72315820343fdfa6654ed1e5690aa03df5ed10fd32d7e2126201bc93903474003a5a26be6c6578706572696d656e74616cf564736f6c63430005100040",
2187
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103995760003560e01c80638928378e116101e9578063d36cca901161010f578063eb1c6e6b116100ad578063f2fde38b1161007c578063f2fde38b14610834578063f941605214610847578063fd04b6061461085a578063fd47eda61461086d57610399565b8063eb1c6e6b146107d9578063eb44fdd3146107ee578063ef6957d01461080e578063f2901ae21461082157610399565b8063deec053d116100e9578063deec053d1461078b578063e51bfcb41461079e578063e5520228146107be578063e8e72f75146107c657610399565b8063d36cca9014610752578063d5ecf7c514610765578063d96e406d1461077857610399565b8063b42cbcd311610187578063c190c2ec11610156578063c190c2ec146106ec578063c8e188261461070c578063cb04a34c1461071f578063d24c48bc1461073f57610399565b8063b42cbcd31461069b578063b548b892146106ae578063c0bb72b7146106d1578063c1460942146106e457610399565b80638f6bc659116101c35780638f6bc6591461064f5780638fae3be11461066257806398d4611b14610675578063a67a6a451461068857610399565b80638928378e1461062c5780638da5cb5b1461063f5780638f32d59b1461064757610399565b8063387a498a116102ce5780635ac7d17c1161026c5780637e9eaf411161023b5780637e9eaf41146105eb57806383566670146105f35780638439dd921461060657806385b53fc81461061957610399565b80635ac7d17c1461059857806369794795146105ab5780636a8194e7146105c0578063715018a6146105e357610399565b80634be87414116102a85780634be874141461054a5780634f3c15421461055d57806356ea84b2146105655780635735a4301461058557610399565b8063387a498a146105045780633a031bf01461051757806347d1b53c1461052a57610399565b8063197f0f051161033b5780632a560845116103155780632a560845146104b85780632e822af3146104cb5780633063bce2146104de57806334fd45f1146104f157610399565b8063197f0f05146104705780631a7777bb14610483578063295c39a5146104a357610399565b8063062bd3e911610377578063062bd3e9146103fc578063121fb72f1461041c578063124f914c1461042f578063133683641461045057610399565b80630339a0c41461039e578063042069d6146103c7578063052f72d7146103dc575b600080fd5b6103b16103ac366004614911565b610880565b6040516103be91906153c5565b60405180910390f35b6103da6103d53660046149bb565b610955565b005b6103ef6103ea36600461461c565b610a54565b6040516103be9190615423565b61040f61040a366004614911565b610a6c565b6040516103be9190615374565b6103da61042a36600461498b565b610a88565b61044261043d366004614828565b610b37565b6040516103be92919061573d565b61046361045e366004614911565b610b5b565b6040516103be9190615431565b61046361047e366004614911565b610b92565b610496610491366004614911565b610bc9565b6040516103be91906154ae565b6104ab610c00565b6040516103be9190615759565b6104ab6104c636600461463a565b610c06565b6103da6104d936600461480a565b610d22565b6103da6104ec36600461480a565b610e15565b6104ab6104ff366004614828565b610ec2565b6103da61051236600461480a565b610ed4565b6103ef61052536600461463a565b610f81565b61053d610538366004614876565b610f9b565b6040516103be9190615512565b6103da6105583660046149bb565b610fbe565b61049661106d565b610578610573366004614911565b611089565b6040516103be91906154bc565b6103ef610593366004614911565b6110be565b6103ef6105a6366004614911565b6110f8565b6105b3611120565b6040516103be919061552e565b6105d36105ce366004614828565b61117c565b6040516103be94939291906153d6565b6103da611333565b6104966113c6565b6103da610601366004614846565b6113e2565b6103da6106143660046146a4565b611454565b6103da61062736600461479f565b611559565b61049661063a366004614911565b611640565b61040f611675565b6103ef611691565b6104ab61065d36600461494d565b6116d1565b6104ab61067036600461461c565b611782565b6103b1610683366004614828565b6117b6565b6103da610696366004614740565b6117c9565b6103da6106a93660046149eb565b611854565b6106c16106bc366004614911565b6119f9565b6040516103be94939291906154d9565b6103da6106df36600461480a565b611a55565b610496611b02565b6106ff6106fa366004614876565b611b1e565b6040516103be919061574b565b61053d61071a366004614876565b611b5e565b61073261072d366004614911565b611b66565b6040516103be919061572f565b61049661074d366004614a1b565b611b88565b6103da6107603660046147d4565b611bb4565b6106ff610773366004614911565b611c63565b6103da6107863660046148a6565b611c85565b610578610799366004614911565b611d1a565b6107b16107ac366004614828565b611d3c565b6040516103be919061543f565b610496611d4e565b6103da6107d436600461498b565b611d6a565b6107e1611e19565b6040516103be9190615520565b6108016107fc366004614911565b611ebb565b6040516103be91906154ca565b6103da61081c36600461496c565b612026565b6103da61082f366004614674565b6120d5565b6103da61084236600461461c565b612184565b610442610855366004614828565b6121b4565b610496610868366004614911565b6121cf565b61049661087b366004614911565b612206565b606060008090506060836040519080825280602002602001820160405280156108b3578160200160208202803883390190505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260036020527fb1ee3b3d0d99532dd9f14b22c0b908d4eec0e052c3827bbed2d6c3986954d08c549091505b801580159061091157508483105b1561094b578082848060010195508151811061092957fe5b6020908102919091018101919091526000918252600390526040902054610903565b509150505b919050565b61095d611691565b6109825760405162461bcd60e51b81526004016109799061548e565b60405180910390fd5b600d54600160a01b900460ff166109ab5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8854ab3e00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638854ab3e90610a0d9060009086908690600401615707565b60006040518083038186803b158015610a2557600080fd5b505af4158015610a39573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b17905550505050565b6000610a66818363ffffffff61223b16565b92915050565b6000610a778261226a565b610a6660008363ffffffff6122cb16565b610a90611691565b610aac5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610ad55760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517faa92e34800000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063aa92e34890610a0d90600090869086906004016156df565b610b3f613f4a565b610b47613f4a565b610b528360006122f7565b91509150915091565b6000610b668261226a565b5060009081526001602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b9d8261226a565b5060009081526001602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1690565b610bd1613f4a565b610bda8261226a565b506000908152600160209081526040918290208251918201909252600690910154815290565b60005490565b6000610c10611691565b610c2c5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610c555760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fdd32998a00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063dd32998a90610cb7906000908790879060040161553c565b60206040518083038186803b158015610ccf57600080fd5b505af4158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d07919081019061492f565b9050600d805460ff60a01b1916600160a01b17905592915050565b610d2a611691565b610d465760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610d6f5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517ff9cacc4c00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063f9cacc4c90610dcf906000908590600401615659565b60006040518083038186803b158015610de757600080fd5b505af4158015610dfb573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050565b610e1d611691565b610e395760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610e625760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f0f44e6bc00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90630f44e6bc90610dcf906000908590600401615659565b6000610a66818363ffffffff61239c16565b610edc611691565b610ef85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610f215760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f311401d000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063311401d090610dcf906000908590600401615659565b6000610f9481848463ffffffff6123e316565b9392505050565b610fa3613f5d565b610fac8261226a565b610f946000848463ffffffff61242016565b610fc6611691565b610fe25760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff1661100b5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f7335079b00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90637335079b90610a0d9060009086908690600401615707565b611075613f4a565b506040805160208101909152600754815290565b611091613f74565b61109a8261226a565b610a66826110af60008263ffffffff61249f16565b6000919063ffffffff61252316565b60006110c98261226a565b506000908152600160205260409020547501000000000000000000000000000000000000000000900460ff1690565b60006111038261226a565b50600090815260016020526040902054600160a01b900460ff1690565b611128613f94565b506040805160a081018252600754608082019081528152815160208181018452600854825280830191909152825180820184526009548152828401528251908101909252600a548252606081019190915290565b60608080808061119360008763ffffffff61257b16565b9050606081516040519080825280602002602001820160405280156111c2578160200160208202803883390190505b5090506060825160405190808252806020026020018201604052801561120257816020015b6111ef613f5d565b8152602001906001900390816111e75790505b5090506060835160405190808252806020026020018201604052801561124257816020015b61122f613f5d565b8152602001906001900390816112275790505b50905060005b84518110156113235761126d85828151811061126057fe5b6020026020010151610a6c565b84828151811061127957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112d08a8683815181106112c357fe5b6020026020010151610f9b565b8382815181106112dc57fe5b60200260200101819052506113048a8683815181106112f757fe5b6020026020010151611b1e565b82828151811061131057fe5b6020908102919091010152600101611248565b5092989197509550909350915050565b61133b611691565b6113575760405162461bcd60e51b81526004016109799061548e565b600d5460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6113ce613f4a565b506040805160208101909152600a54815290565b815173ffffffffffffffffffffffffffffffffffffffff166000908152600460209081526040808320828601518452909152902080548291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561144b57fe5b02179055505050565b61145c611691565b6114785760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166114a15760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f4f32fb2700000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90634f32fb279061150d906000908b908b908b908b908b908b908b9060040161558c565b60006040518083038186803b15801561152557600080fd5b505af4158015611539573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050505050505050565b60005b815181101561163c57600082828151811061157357fe5b6020026020010151600001519050600083838151811061158f57fe5b60209081029190910181015181015133600081815260058452604080822073ffffffffffffffffffffffffffffffffffffffff8816835290945283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001683151517905591519092507f4d7f317d2088d039c2a95a09fcbf9cc9191fad5905f883c937cc3d317c4a63279061162a9085908590615382565b60405180910390a2505060010161155c565b5050565b611648613f4a565b6116518261226a565b610a668261166660008263ffffffff6122cb16565b6000919063ffffffff6125c016565b600d5473ffffffffffffffffffffffffffffffffffffffff1690565b600d5460009073ffffffffffffffffffffffffffffffffffffffff166116b56126ef565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006116db611691565b6116f75760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166117205760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fb25328e000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063b25328e090610cb790600090879087906004016156a9565b600061178d826126f3565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6060610a6660008363ffffffff61257b16565b600d54600160a01b900460ff166117f25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fbd76ecfd00000000000000000000000000000000000000000000000000000000815273__OperationImpl_________________________9063bd76ecfd90610a0d90600090869086906004016155f6565b61185c613f74565b5060008281526001602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082048116938301939093527801000000000000000000000000000000000000000000000000900463ffffffff16928101929092528251166118eb5780516bffffffffffffffffffffffff1682525b60208201516bffffffffffffffffffffffff1661191b576020808201516bffffffffffffffffffffffff16908301525b5060009182526001602090815260409283902082516002909101805492840151939094015163ffffffff167801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff9485166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff959093167fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090941693909317939093161716179055565b611a01613fd3565b611a09613f74565b611a11613f4a565b611a19613f4a565b611a228561226a565b611a2b85611ebb565b611a3486611089565b611a3d87611640565b611a4688612206565b93509350935093509193509193565b611a5d611691565b611a795760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611aa25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f54dd351600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906354dd351690610dcf906000908590600401615659565b611b0a613f4a565b506040805160208101909152600854815290565b611b26613f5d565b611b2f8261226a565b610f94611b446000858563ffffffff61242016565b611b59846110af60008263ffffffff61249f16565b61275c565b610fac613f5d565b611b6e613f5d565b611b778261226a565b610a6660008363ffffffff61280d16565b611b90613f4a565b611b998361226a565b611ba28261226a565b610f946000848463ffffffff61286d16565b611bbc611691565b611bd85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611c015760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fd963729100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063d963729190610a0d906000908690869060040161562a565b611c6b613f5d565b611c748261226a565b610a6660008363ffffffff61290416565b611c8e8261226a565b6040517f81379a5e00000000000000000000000000000000000000000000000000000000815273__TestOperationImpl_____________________906381379a5e90611ce590600090879087908790600401615674565b60006040518083038186803b158015611cfd57600080fd5b505af4158015611d11573d6000803e3d6000fd5b50505050505050565b611d22613f74565b611d2b8261226a565b610a6660008363ffffffff61249f16565b6000610a66818363ffffffff612a5f16565b611d56613f4a565b506040805160208101909152600954815290565b611d72611691565b611d8e5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611db75760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8c5dabd100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638c5dabd190610a0d90600090869086906004016156df565b611e21614025565b506040805160c081018252600b5467ffffffffffffffff808216835268010000000000000000808304821660208501527001000000000000000000000000000000008304821694840194909452780100000000000000000000000000000000000000000000000090910481166060830152600c549081166080830152919091046fffffffffffffffffffffffffffffffff1660a082015290565b611ec3613fd3565b611ecc8261226a565b50600090815260016020818152604092839020835161012081018552815473ffffffffffffffffffffffffffffffffffffffff8082168352600160a01b820460ff908116151584870152750100000000000000000000000000000000000000000090920490911615158287015285518087018752948301546fffffffffffffffffffffffffffffffff808216875270010000000000000000000000000000000090910416858501526060808301959095528551948501865260028301546bffffffffffffffffffffffff80821687526c01000000000000000000000000820416868601527801000000000000000000000000000000000000000000000000900463ffffffff168587015260808201949094526003820154841660a0820152600482015490931660c0840152835180830185526005820154815260e08401528351918201909352600690920154825261010081019190915290565b61202e611691565b61204a5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166120735760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f10c87b0600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906310c87b0690610a0d90600090869086906004016156c4565b6120dd611691565b6120f95760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166121225760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fe80f802400000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063e80f802490610a0d9060009086908690600401615564565b61218c611691565b6121a85760405162461bcd60e51b81526004016109799061548e565b6121b181612a9e565b50565b6121bc613f4a565b6121c4613f4a565b610b528360016122f7565b6121d7613f4a565b6121e08261226a565b506000908152600160209081526040918290208251918201909252600590910154815290565b61220e613f4a565b6122178261226a565b610a668261222c60008263ffffffff61249f16565b6000919063ffffffff612b5f16565b73ffffffffffffffffffffffffffffffffffffffff166000908152600691909101602052604090205460ff1690565b6000546121b190821080156122a2575060008281526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b600e547f496e76616c6964206d61726b6574000000000000000000000000000000000000612c6a565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6122ff613f4a565b612307613f4a565b606061231a60008663ffffffff61257b16565b905061232461405a565b61232e8251612cfd565b905060005b825181101561236a5761236283828151811061234b57fe5b602002602001015183612d5c90919063ffffffff16565b600101612333565b5061237c60008263ffffffff612dc616565b61238f600087838863ffffffff61301516565b9350935050509250929050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260049290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600593909301602090815260408085209290931684525290205460ff1690565b612428613f5d565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526004840160209081526040808320828601518452825280832084845260030182529182902082518084019093525460ff8116151583526fffffffffffffffffffffffffffffffff61010090910416908201529392505050565b6124a7613f74565b506000908152600191909101602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041692820192909252780100000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b61252b613f74565b612533613f4a565b61254485858563ffffffff612b5f16565b9050612572838261255b888863ffffffff61280d16565b604080516020810190915260098a01548152613178565b95945050505050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260048301602090815260408083208285015184529091529020606090610f94906001016132e3565b6125c8613f4a565b600083815260018501602052604090206003015473ffffffffffffffffffffffffffffffffffffffff166125fa613f4a565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906341976e099061264c908790600401615374565b60206040518083038186803b15801561266457600080fd5b505afa158015612678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061269c91908101906148f3565b80519091506125729015157f53746f72616765000000000000000000000000000000000000000000000000007f50726963652063616e6e6f74206265207a65726f0000000000000000000000008861333f565b3390565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002602090815260408083205483526001909152902054600e546121b19391909116909114907f496e76616c696420746f6b656e00000000000000000000000000000000000000612c6a565b612764613f5d565b602083015183516fffffffffffffffffffffffffffffffff90911690156127d0576040805180820190915260018152602084810151908201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b815250915050610a66565b6040805180820190915260008152835160208201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b612815613f5d565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b612875613f4a565b60088401546000848152600186016020908152604091829020825191820190925260069091015481526128b29082906128ad90613471565b6134a8565b90506128ed816128ad876001016000878152602001908152602001600020600601604051806020016040529081600082015481525050613471565b604080516020810190915290815295945050505050565b61290c613f5d565b612914613f74565b612924848463ffffffff61249f16565b905061292e613f5d565b61293e858563ffffffff61280d16565b90506000612952868663ffffffff6122cb16565b905061295c613f5d565b6040805180820182526001815290517f70a08231000000000000000000000000000000000000000000000000000000008152602082019073ffffffffffffffffffffffffffffffffffffffff8516906370a08231906129bf903090600401615374565b60206040518083038186803b1580156129d757600080fd5b505afa1580156129eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a0f919081019061492f565b90529050612a1b613f5d565b612a23613f5d565b612a2d85876134c1565b9092509050612a5282612a46858463ffffffff61356916565b9063ffffffff61356916565b9998505050505050505050565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526004929092016020908152604080842092820151845291905290205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8116612ad15760405162461bcd60e51b81526004016109799061545e565b600d5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612b67613f4a565b612b6f613f5d565b612b7f858563ffffffff61280d16565b9050612b89613f5d565b612b91613f5d565b612b9b83866134c1565b91509150612ba7613f4a565b600087815260018901602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1663e8177dcf612be68a8a63ffffffff6122cb16565b846020015186602001516040518463ffffffff1660e01b8152600401612c0e9392919061539d565b60206040518083038186803b158015612c2657600080fd5b505afa158015612c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c5e91908101906148f3565b98975050505050505050565b82612cf857612c7882613583565b7f3a20000000000000000000000000000000000000000000000000000000000000612ca283613583565b604051602001612cb493929190615272565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b82526109799160040161544d565b505050565b612d0561405a565b604080516000606082018181526080830190935290918291612d3d565b612d2a61407b565b815260200190600190039081612d225790505b508152602001612d4c84613657565b8152600060209091015292915050565b815151612dab90157f43616368650000000000000000000000000000000000000000000000000000007f616c726561647920696e697469616c697a656400000000000000000000000000612c6a565b612db9826020015182613691565b5060400180516001019052565b8060400151604051908082528060200260200182016040528015612e0457816020015b612df161407b565b815260200190600190039081612de95790505b5081526000805b826020015151811015612fbb57600083602001518281518110612e2a57fe5b602002602001015190505b8015612fa0576000612e46826136c7565b90506000612e54848361389e565b90506000612e68888363ffffffff6122cb16565b600083815260018a016020526040902054909150600160a01b900460ff1615612f1e576040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff8316602082015260019181019190915260608101612ed18a8563ffffffff61280d16565b516fffffffffffffffffffffffffffffffff168152602001612efa8a858563ffffffff6125c016565b9052875180516001890198908110612f0e57fe5b6020026020010181905250612f8c565b6040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff831660208201526000918101829052606081019190915260808101612f6c8a858563ffffffff6125c016565b9052875180516001890198908110612f8057fe5b60200260200101819052505b612f9684846138a9565b9350505050612e35565b8360400151831415612fb25750612fbb565b50600101612e0b565b506040820151825151612cf891808414917f53746f7261676500000000000000000000000000000000000000000000000000917f636163686520696e697469616c697a656420696d70726f7065726c7900000000916138b2565b61301d613f4a565b613025613f4a565b61302d613f4a565b613035613f4a565b60006130408761397d565b905060005b8181101561316957613055613f5d565b6130788a6130698b8563ffffffff61398216565b518d919063ffffffff6139fe16565b905061308381613a6d565b1561308e5750613161565b60006130b96130a38b8563ffffffff61398216565b608001515160208401519063ffffffff613a7516565b90506130c3613f4a565b6130cb613aaf565b905089156131165761311360018e0160006130ec8e8863ffffffff61398216565b51815260208082019290925260409081016000208151928301909152600501548152613471565b90505b82511561313f5761313861312a8383613ad1565b88519063ffffffff613aea16565b875261315d565b61315a61314c83836134a8565b87519063ffffffff613aea16565b86525b5050505b600101613045565b50919890975095505050505050565b613180613f74565b613188613f5d565b613190613f5d565b61319a85886134c1565b9150915060006131a8613b0f565b905060006131e06131d28a6040015163ffffffff168463ffffffff16613b1f90919063ffffffff16565b89519063ffffffff613a7516565b905060006131ed85613a6d565b156131fa5750600061322c565b61320482886134a8565b905084602001518460200151101561322c576132298185602001518760200151613b61565b90505b8181111561323657fe5b60408051606081019091528a51819061327f9061327a906bffffffffffffffffffffffff1661326e8188670de0b6b3a7640000613b61565b9063ffffffff613aea16565b613b77565b6bffffffffffffffffffffffff908116825260208d8101519201916132b69161327a911661326e8187670de0b6b3a7640000613b61565b6bffffffffffffffffffffffff1681526020018463ffffffff16815250955050505050505b949350505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561333357602002820191906000526020600020905b81548152602001906001019080831161331f575b50505050509050919050565b836133d75761334d83613583565b7f3a2000000000000000000000000000000000000000000000000000000000000061337784613583565b7f203c0000000000000000000000000000000000000000000000000000000000006133a185613bd6565b604051612cb49594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161529a565b50505050565b60008315806133ea575082155b15613401576133fa600083613ce5565b9050610f94565b6000613413858563ffffffff613a7516565b905061257261343e600161326e6002613432888463ffffffff613b1f16565b9063ffffffff613ce516565b61344e838663ffffffff613d2716565b101561345b57600061345e565b60015b60ff1661326e838663ffffffff613ce516565b613479613f4a565b6040805160208101909152825181906134a090670de0b6b3a764000063ffffffff613aea16565b905292915050565b6000610f94838360000151670de0b6b3a7640000613b61565b6134c9613f5d565b6134d1613f5d565b6134d9613f5d565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff169082015261350c613f5d565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff16602082015261353c613f5d565b613546838761275c565b9050613550613f5d565b61355a838861275c565b91989197509095505050505050565b613571613f5d565b610f948361357e84613d69565b613d90565b60608082604051602001613597919061525d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156136405781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061360357fe5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561363b5760010181529050610950565b6135ca565b505060408051600081526020810190915292915050565b6060600161010083040160405190808252806020026020018201604052801561368a578160200160208202803883390190505b5092915050565b815161010082049060ff8316906001821b908590849081106136af57fe5b60200260200101818151179150818152505050505050565b600060ff6fffffffffffffffffffffffffffffffff83161561370a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613712565b608083901c92505b67ffffffffffffffff831615613749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613751565b604083901c92505b63ffffffff831615613784577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00161378c565b602083901c92505b61ffff8316156137bd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016137c5565b601083901c92505b60ff8316156137f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016137fd565b600883901c92505b600f83161561382d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01613835565b600483901c92505b6003831615613865577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161386d565b600283901c92505b6001831615610a66577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b84613976576138c084613583565b7f3a200000000000000000000000000000000000000000000000000000000000006138ea85613583565b7f203c00000000000000000000000000000000000000000000000000000000000061391486613bd6565b7f2c2000000000000000000000000000000000000000000000000000000000000061393e87613bd6565b604051612cb497969594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016152f8565b5050505050565b515190565b61398a61407b565b8251516139e090808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e646578000000000000000000000000000000000000009086906138b2565b82518051839081106139ee57fe5b6020026020010151905092915050565b613a06613f5d565b613a0e613f5d565b613a1f85858563ffffffff61242016565b9050613a2a81613e22565b15613a3f57613a37613e3c565b915050610f94565b613a47613f74565b613a57868563ffffffff61249f16565b9050613a63828261275c565b9695505050505050565b602001511590565b600082613a8457506000610a66565b82820282848281613a9157fe5b0414610f945760405162461bcd60e51b81526004016109799061547e565b613ab7613f4a565b506040805160208101909152670de0b6b3a7640000815290565b6000610f9483670de0b6b3a76400008460000151613b61565b600082820183811015610f945760405162461bcd60e51b81526004016109799061546e565b6000613b1a42613e5c565b905090565b6000610f9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613eb3565b60006132db82613432868663ffffffff613a7516565b600081610a666bffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74393600000000000000000000008461333f565b606081613c17575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610950565b8160005b8115613c2f57600101600a82049150613c1b565b6060816040519080825280601f01601f191660200182016040528015613c5c576020820181803883390190505b508593509050815b8015613cdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b828281518110613ca257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350613c64565b50949350505050565b6000610f9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613edf565b6000610f9483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613f16565b613d71613f5d565b5060408051808201909152815115815260208083015190820152919050565b613d98613f5d565b613da0613f5d565b8251845115159015151415613dd35783511515815260208085015190840151613dc99190613aea565b6020820152610f94565b8260200151846020015110613dfc5783511515815260208085015190840151613dc99190613b1f565b82511515815260208084015190850151613e169190613b1f565b60208201529392505050565b602001516fffffffffffffffffffffffffffffffff161590565b613e44613f5d565b50604080518082019091526000808252602082015290565b600081610a6663ffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74333200000000000000000000008461333f565b60008184841115613ed75760405162461bcd60e51b8152600401610979919061544d565b505050900390565b60008183613f005760405162461bcd60e51b8152600401610979919061544d565b506000838581613f0c57fe5b0495945050505050565b60008183613f375760405162461bcd60e51b8152600401610979919061544d565b50828481613f4157fe5b06949350505050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280613fa7613f4a565b8152602001613fb4613f4a565b8152602001613fc1613f4a565b8152602001613fce613f4a565b905290565b60408051610120810182526000808252602082018190529181019190915260608101613ffd613f5d565b815260200161400a613f74565b81526000602082018190526040820152606001613fc1613f4a565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180606001604052806060815260200160608152602001600081525090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160006fffffffffffffffffffffffffffffffff168152602001613fce613f4a565b8035610a6681615982565b600082601f8301126140f057600080fd5b81356141036140fe8261578e565b615767565b81815260209384019390925082018360005b83811015614141578135860161412b8882614325565b8452506020928301929190910190600101614115565b5050505092915050565b600082601f83011261415c57600080fd5b813561416a6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561418f57600080fd5b60005b8381101561414157816141a588826144fe565b84525060209092019160409190910190600101614192565b600082601f8301126141ce57600080fd5b81356141dc6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561420157600080fd5b60005b8381101561414157816142178882614545565b84525060209092019160409190910190600101614204565b600082601f83011261424057600080fd5b813561424e6140fe8261578e565b9150818183526020840193506020810190508385602084028201111561427357600080fd5b60005b83811015614141578161428988826145f0565b8452506020928301929190910190600101614276565b8035610a6681615996565b600082601f8301126142bb57600080fd5b81356142c96140fe826157af565b915080825260208301602083018583830111156142e557600080fd5b6142f0838284615904565b50505092915050565b8035610a668161599f565b8035610a66816159a8565b8035610a66816159b5565b8035610a66816159c2565b6000610160828403121561433857600080fd5b614343610100615767565b905060006143518484614304565b8252506020614362848483016145f0565b602083015250604061437684828501614401565b60408301525060c061438a848285016145f0565b60608301525060e061439e848285016145f0565b6080830152506101006143b3848285016140d4565b60a0830152506101206143c8848285016145f0565b60c08301525061014082013567ffffffffffffffff8111156143e957600080fd5b6143f5848285016142aa565b60e08301525092915050565b60006080828403121561441357600080fd5b61441d6080615767565b9050600061442b848461429f565b825250602061443c8484830161430f565b60208301525060406144508482850161430f565b6040830152506060614464848285016145f0565b60608301525092915050565b60006020828403121561448257600080fd5b61448c6020615767565b9050600061449a84846145f0565b82525092915050565b6000606082840312156144b557600080fd5b6144bf6060615767565b905060006144cd8484614611565b82525060206144de84848301614611565b60208301525060406144f284828501614606565b60408301525092915050565b60006040828403121561451057600080fd5b61451a6040615767565b9050600061452884846140d4565b8252506020614539848483016145f0565b60208301525092915050565b60006040828403121561455757600080fd5b6145616040615767565b9050600061456f84846140d4565b82525060206145398484830161429f565b60006040828403121561459257600080fd5b61459c6040615767565b905060006145aa848461429f565b8252506020614539848483016145e5565b6000602082840312156145cd57600080fd5b6145d76020615767565b9050600061449a84846145fb565b8035610a66816159cf565b8035610a66816159d8565b8051610a66816159d8565b8035610a66816159e1565b8035610a66816159ea565b60006020828403121561462e57600080fd5b60006132db84846140d4565b6000806040838503121561464d57600080fd5b600061465985856140d4565b925050602061466a858286016140d4565b9150509250929050565b6000806040838503121561468757600080fd5b600061469385856140d4565b925050602061466a8582860161429f565b600080600080600080600060e0888a0312156146bf57600080fd5b60006146cb8a8a6140d4565b97505060206146dc8a828b016142f9565b96505060406146ed8a828b016142f9565b95505060606146fe8a828b01614470565b945050608061470f8a828b01614470565b93505060a06147208a828b0161429f565b92505060c06147318a828b0161429f565b91505092959891949750929550565b6000806040838503121561475357600080fd5b823567ffffffffffffffff81111561476a57600080fd5b6147768582860161414b565b925050602083013567ffffffffffffffff81111561479357600080fd5b61466a858286016140df565b6000602082840312156147b157600080fd5b813567ffffffffffffffff8111156147c857600080fd5b6132db848285016141bd565b600080604083850312156147e757600080fd5b823567ffffffffffffffff8111156147fe57600080fd5b6146598582860161422f565b60006020828403121561481c57600080fd5b60006132db8484614470565b60006040828403121561483a57600080fd5b60006132db84846144fe565b6000806060838503121561485957600080fd5b600061486585856144fe565b925050604061466a8582860161431a565b6000806060838503121561488957600080fd5b600061489585856144fe565b925050604061466a858286016145f0565b600080600060a084860312156148bb57600080fd5b60006148c786866144fe565b93505060406148d8868287016145f0565b92505060606148e986828701614580565b9150509250925092565b60006020828403121561490557600080fd5b60006132db84846145bb565b60006020828403121561492357600080fd5b60006132db84846145f0565b60006020828403121561494157600080fd5b60006132db84846145fb565b6000806040838503121561496057600080fd5b600061465985856145f0565b6000806040838503121561497f57600080fd5b600061469385856145f0565b6000806040838503121561499e57600080fd5b60006149aa85856145f0565b925050602061466a858286016142f9565b600080604083850312156149ce57600080fd5b60006149da85856145f0565b925050602061466a85828601614470565b600080608083850312156149fe57600080fd5b6000614a0a85856145f0565b925050602061466a858286016144a3565b60008060408385031215614a2e57600080fd5b6000614a3a85856145f0565b925050602061466a858286016145f0565b6000614a578383614aa3565b505060200190565b6000610f948383614f25565b6000614a778383615059565b505060400190565b6000614a77838361512c565b6000614a77838361521f565b6000614a578383615239565b614aac81615808565b82525050565b6000614abd826157fb565b614ac781856157ff565b9350614ad2836157f5565b8060005b83811015614b00578151614aea8882614a4b565b9750614af5836157f5565b925050600101614ad6565b509495945050505050565b6000614b16826157fb565b614b2081856157ff565b935083602082028501614b32856157f5565b8060005b85811015614b6c5784840389528151614b4f8582614a5f565b9450614b5a836157f5565b60209a909a0199925050600101614b36565b5091979650505050505050565b6000614b84826157fb565b614b8e81856157ff565b9350614b99836157f5565b8060005b83811015614b00578151614bb18882614a6b565b9750614bbc836157f5565b925050600101614b9d565b6000614bd2826157fb565b614bdc81856157ff565b9350614be7836157f5565b8060005b83811015614b00578151614bff8882614a7f565b9750614c0a836157f5565b925050600101614beb565b6000614c20826157fb565b614c2a81856157ff565b9350614c35836157f5565b8060005b83811015614b00578151614c4d8882614a8b565b9750614c58836157f5565b925050600101614c39565b6000614c6e826157fb565b614c7881856157ff565b9350614c83836157f5565b8060005b83811015614b00578151614c9b8882614a97565b9750614ca6836157f5565b925050600101614c87565b6000614cbc826157fb565b614cc681856157ff565b9350614cd1836157f5565b8060005b83811015614b00578151614ce98882614a97565b9750614cf4836157f5565b925050600101614cd5565b614aac81615813565b614aac614d1482615818565b615862565b614aac614d148261583d565b614aac614d1482615862565b6000614d3c826157fb565b614d468185610950565b9350614d56818560208601615910565b9290920192915050565b6000614d6b826157fb565b614d7581856157ff565b9350614d85818560208601615910565b614d8e8161593c565b9093019392505050565b614aac81615865565b614aac816158e3565b614aac816158ee565b614aac816158f9565b6000614dc96026836157ff565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614e28601b836157ff565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614e616021836157ff565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614ec06020836157ff565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000614ef9601f836157ff565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b8051600090610160840190614f3a8582614da1565b506020830151614f4d6020860182615239565b506040830151614f606040860182614fc7565b506060830151614f7360c0860182615239565b506080830151614f8660e0860182615239565b5060a0830151614f9a610100860182614aa3565b5060c0830151614fae610120860182615239565b5060e08301518482036101408601526125728282614d60565b80516080830190614fd88482614cff565b506020820151614feb6020850182614daa565b506040820151614ffe6040850182614daa565b5060608201516133d76060850182615239565b805160208301906133d78482615239565b805160608301906150338482615254565b5060208201516150466020850182615254565b5060408201516133d76040850182615242565b8051604083019061506a8482614aa3565b5060208201516133d76020850182615239565b805161018083019061508f8482614aa3565b5060208201516150a26020850182614cff565b5060408201516150b56040850182614cff565b5060608201516150c8606085018261520e565b5060808201516150db60a0850182615022565b5060a08201516150ef610100850182614d98565b5060c0820151615103610120850182614d98565b5060e0820151615117610140850182615011565b506101008201516133d7610160850182615011565b8051604083019061513d8482614cff565b5060208201516133d76020850182615230565b805160c0830190615161848261524b565b506020820151615174602085018261524b565b506040820151615187604085018261524b565b50606082015161519a606085018261524b565b5060808201516151ad608085018261524b565b5060a08201516133d760a0850182615230565b805160808301906151d18482615011565b5060208201516151e46020850182615011565b5060408201516151f76040850182615011565b5060608201516133d76060850182615011565b9052565b8051604083019061513d8482615230565b8051604083019061506a8482614cff565b614aac8161588e565b614aac81615862565b614aac816158bc565b614aac816158c5565b614aac816158d2565b60006152698284614d25565b50602001919050565b600061527e8286614d31565b915061528a8285614d19565b6002820191506125728284614d31565b60006152a68289614d31565b91506152b28288614d19565b6002820191506152c28287614d31565b91506152ce8286614d19565b6002820191506152de8285614d31565b91506152ea8284614d08565b506001019695505050505050565b6000615304828b614d31565b9150615310828a614d19565b6002820191506153208289614d31565b915061532c8288614d19565b60028201915061533c8287614d31565b91506153488286614d19565b6002820191506153588285614d31565b91506153648284614d08565b5060010198975050505050505050565b60208101610a668284614aa3565b604081016153908285614aa3565b610f946020830184614cff565b606081016153ab8286614aa3565b6153b86020830185615239565b6132db6040830184615239565b60208082528101610f948184614c63565b608080825281016153e78187614c63565b905081810360208301526153fb8186614ab2565b9050818103604083015261540f8185614bc7565b90508181036060830152613a638184614c15565b60208101610a668284614cff565b60208101610a668284614d98565b60208101610a668284614db3565b60208082528101610f948184614d60565b60208082528101610a6681614dbc565b60208082528101610a6681614e1b565b60208082528101610a6681614e54565b60208082528101610a6681614eb3565b60208082528101610a6681614eec565b60208101610a668284615011565b60608101610a668284615022565b6101808101610a66828461507d565b61022081016154e8828761507d565b6154f6610180830186615022565b6155046101e0830185615011565b612572610200830184615011565b60408101610a66828461512c565b60c08101610a668284615150565b60808101610a6682846151c0565b6060810161554a828661520a565b6155576020830185614aa3565b6132db6040830184614aa3565b60608101615572828661520a565b61557f6020830185614aa3565b6132db6040830184614cff565b610100810161559b828b61520a565b6155a8602083018a614aa3565b6155b56040830189614d98565b6155c26060830188614d98565b6155cf6080830187615011565b6155dc60a0830186615011565b6155e960c0830185614cff565b612a5260e0830184614cff565b60608101615604828661520a565b81810360208301526156168185614b79565b905081810360408301526125728184614b0b565b60608101615638828661520a565b818103602083015261564a8185614cb1565b90506132db6040830184614aa3565b60408101615667828561520a565b610f946020830184615011565b60c08101615682828761520a565b61568f6020830186615059565b61569c6060830185615239565b612572608083018461512c565b606081016156b7828661520a565b6155576020830185615239565b606081016156d2828661520a565b61557f6020830185615239565b606081016156ed828661520a565b6156fa6020830185615239565b6132db6040830184614d98565b60608101615715828661520a565b6157226020830185615239565b6132db6040830184615011565b60408101610a66828461520e565b604081016156678285615011565b60408101610a66828461521f565b60208101610a668284615239565b60405181810167ffffffffffffffff8111828210171561578657600080fd5b604052919050565b600067ffffffffffffffff8211156157a557600080fd5b5060209081020190565b600067ffffffffffffffff8211156157c657600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b6000610a66826158a3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6000610a6682615808565b8061095081615964565b806109508161596e565b8061095081615978565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b67ffffffffffffffff1690565b6bffffffffffffffffffffffff1690565b6000610a6682615870565b6000610a668261587a565b6000610a6682615884565b82818337506000910152565b60005b8381101561592b578181015183820152602001615913565b838111156133d75750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600981106121b157fe5b600281106121b157fe5b600381106121b157fe5b61598b81615808565b81146121b157600080fd5b61598b81615813565b61598b81615865565b600981106121b157600080fd5b600281106121b157600080fd5b600381106121b157600080fd5b61598b8161588e565b61598b81615862565b61598b816158bc565b61598b816158d256fea365627a7a72315820343fdfa6654ed1e5690aa03df5ed10fd32d7e2126201bc93903474003a5a26be6c6578706572696d656e74616cf564736f6c63430005100040",
2185
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginRatio\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"liquidationSpread\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"earningsRate\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"minBorrowedValue\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.RiskParams\",\"name\":\"rp\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"marginRatioMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationSpreadMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"earningsRateMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"marginPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spreadPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"minBorrowedValueMax\",\"type\":\"uint128\"}],\"internalType\":\"struct Storage.RiskLimits\",\"name\":\"rl\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"trusted\",\"type\":\"bool\"}],\"name\":\"LogOperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountMarketsWithNonZeroBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getAccountPar\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getAccountParNoMarketCheck\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountStatus\",\"outputs\":[{\"internalType\":\"enum Account.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAccountValues\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getAccountWei\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getAdjustedAccountValues\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEarningsRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getIsGlobalOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getIsLocalOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLiquidationSpread\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"heldMarketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedMarketId\",\"type\":\"uint256\"}],\"name\":\"getLiquidationSpreadForPair\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMarginRatio\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarket\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRecyclable\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"borrow\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"supply\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.TotalPar\",\"name\":\"totalPar\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"index\",\"type\":\"tuple\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.Market\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketCachedIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketCurrentIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getMarketIdByTokenAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketInterestRate\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Interest.Rate\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketInterestSetter\",\"outputs\":[{\"internalType\":\"contract IInterestSetter\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketIsClosing\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketIsRecyclable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketMarginPremium\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketPriceOracle\",\"outputs\":[{\"internalType\":\"contract IPriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketSpreadPremium\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketTotalPar\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"borrow\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"supply\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.TotalPar\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getMarketWithInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRecyclable\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"borrow\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"supply\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.TotalPar\",\"name\":\"totalPar\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"index\",\"type\":\"tuple\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.Market\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Price\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Interest.Rate\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMinBorrowedValue\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"}],\"name\":\"getNumExcessTokens\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.Wei\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumMarkets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"}],\"name\":\"getNumberOfMarketsWithBorrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"}],\"name\":\"getRecyclableMarkets\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRiskLimits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"marginRatioMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationSpreadMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"earningsRateMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"marginPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spreadPremiumMax\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"minBorrowedValueMax\",\"type\":\"uint128\"}],\"internalType\":\"struct Storage.RiskLimits\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRiskParams\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginRatio\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"liquidationSpread\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"earningsRate\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"minBorrowedValue\",\"type\":\"tuple\"}],\"internalType\":\"struct Storage.RiskParams\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info[]\",\"name\":\"accounts\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum Actions.ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"accountId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"enum Types.AssetDenomination\",\"name\":\"denomination\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.AssetReference\",\"name\":\"ref\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.AssetAmount\",\"name\":\"amount\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"primaryMarketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryMarketId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"otherAccountId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Actions.ActionArgs[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"name\":\"operate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isRecyclable\",\"type\":\"bool\"}],\"name\":\"ownerAddMarket\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"marketIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"salvager\",\"type\":\"address\"}],\"name\":\"ownerRemoveMarkets\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"earningsRate\",\"type\":\"tuple\"}],\"name\":\"ownerSetEarningsRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ownerSetGlobalOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"contract IInterestSetter\",\"name\":\"interestSetter\",\"type\":\"address\"}],\"name\":\"ownerSetInterestSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isClosing\",\"type\":\"bool\"}],\"name\":\"ownerSetIsClosing\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spread\",\"type\":\"tuple\"}],\"name\":\"ownerSetLiquidationSpread\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"marginPremium\",\"type\":\"tuple\"}],\"name\":\"ownerSetMarginPremium\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"ratio\",\"type\":\"tuple\"}],\"name\":\"ownerSetMarginRatio\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Monetary.Value\",\"name\":\"minBorrowedValue\",\"type\":\"tuple\"}],\"name\":\"ownerSetMinBorrowedValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"contract IPriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"}],\"name\":\"ownerSetPriceOracle\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"spreadPremium\",\"type\":\"tuple\"}],\"name\":\"ownerSetSpreadPremium\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"marketId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ownerWithdrawExcessTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ownerWithdrawUnsupportedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"market\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Types.Par\",\"name\":\"newPar\",\"type\":\"tuple\"}],\"name\":\"setAccountBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"account\",\"type\":\"tuple\"},{\"internalType\":\"enum Account.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"setAccountStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"market\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint96\",\"name\":\"borrow\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"supply\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdate\",\"type\":\"uint32\"}],\"internalType\":\"struct Interest.Index\",\"name\":\"index\",\"type\":\"tuple\"}],\"name\":\"setMarketIndex\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"trusted\",\"type\":\"bool\"}],\"internalType\":\"struct Types.OperatorArg[]\",\"name\":\"args\",\"type\":\"tuple[]\"}],\"name\":\"setOperators\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"operate((address,uint256)[],(uint8,uint256,(bool,uint8,uint8,uint256),uint256,uint256,address,uint256,bytes)[])\":{\"params\":{\"accounts\":\"A list of all accounts that will be used in this operation. Cannot contain duplicates. In each action, the relevant account will be referred-to by its index in the list.\",\"actions\":\"An ordered list of all actions that will be taken in this operation. The actions will be processed in order.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setOperators((address,bool)[])\":{\"params\":{\"args\":\"A list of OperatorArgs which have an address and a boolean. The boolean value denotes whether to approve (true) or revoke approval (false) for that address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"operate((address,uint256)[],(uint8,uint256,(bool,uint8,uint8,uint256),uint256,uint256,address,uint256,bytes)[])\":{\"notice\":\"The main entry-point to DolomiteMargin that allows users and contracts to manage accounts. Take one or more actions on one or more accounts. The msg.sender must be the owner or operator of all accounts except for those being liquidated, vaporized, or traded with. One call to operate() is considered a singular \\\"operation\\\". Account collateralization is ensured only after the completion of the entire operation.\"},\"ownerAddMarket(address,address,address,(uint256),(uint256),bool,bool)\":{\"notice\":\"Add a new market to DolomiteMargin. Must be for a previously-unsupported ERC20 token.\"},\"ownerRemoveMarkets(uint256[],address)\":{\"notice\":\"Removes a market from DolomiteMargin, sends any remaining tokens in this contract to `salvager` and invokes the recyclable callback\"},\"ownerSetEarningsRate((uint256))\":{\"notice\":\"Set the global earnings-rate variable that determines what percentage of the interest paid by borrowers gets passed-on to suppliers.\"},\"ownerSetGlobalOperator(address,bool)\":{\"notice\":\"Approve (or disapprove) an address that is permissioned to be an operator for all accounts in DolomiteMargin. Intended only to approve smart-contracts.\"},\"ownerSetInterestSetter(uint256,address)\":{\"notice\":\"Set the interest-setter for a market.\"},\"ownerSetIsClosing(uint256,bool)\":{\"notice\":\"Set (or unset) the status of a market to \\\"closing\\\". The borrowedValue of a market cannot increase while its status is \\\"closing\\\".\"},\"ownerSetLiquidationSpread((uint256))\":{\"notice\":\"Set the global liquidation spread. This is the spread between oracle prices that incentivizes the liquidation of risky positions.\"},\"ownerSetMarginPremium(uint256,(uint256))\":{\"notice\":\"Set a premium on the minimum margin-ratio for a market. This makes it so that any positions that include this market require a higher collateralization to avoid being liquidated.\"},\"ownerSetMarginRatio((uint256))\":{\"notice\":\"Set the global minimum margin-ratio that every position must maintain to prevent being liquidated.\"},\"ownerSetMinBorrowedValue((uint256))\":{\"notice\":\"Set the global minimum-borrow value which is the minimum value of any new borrow on DolomiteMargin.\"},\"ownerSetPriceOracle(uint256,address)\":{\"notice\":\"Set the price oracle for a market.\"},\"ownerSetSpreadPremium(uint256,(uint256))\":{\"notice\":\"Set a premium on the liquidation spread for a market. This makes it so that any liquidations that include this market have a higher spread than the global default.\"},\"ownerWithdrawExcessTokens(uint256,address)\":{\"notice\":\"Withdraw an ERC20 token for which there is an associated market. Only excess tokens can be withdrawn. The number of excess tokens is calculated by taking the current number of tokens held in DolomiteMargin, adding the number of tokens owed to DolomiteMargin by borrowers, and subtracting the number of tokens owed to suppliers by DolomiteMargin.\"},\"ownerWithdrawUnsupportedTokens(address,address)\":{\"notice\":\"Withdraw an ERC20 token for which there is no associated market.\"},\"setOperators((address,bool)[])\":{\"notice\":\"Approves/disapproves any number of operators. An operator is an external address that has the same permissions to manipulate an account as the owner of the account. Operators are simply addresses and therefore may either be externally-owned Ethereum accounts OR smart contracts. * Operators are also able to act as AutoTrader contracts on behalf of the account owner if the operator is a smart contract and implements the IAutoTrader interface.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestDolomiteMargin.sol\":\"TestDolomiteMargin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/Admin.sol\":{\"keccak256\":\"0x7232f01c56df1d72fc84c2a0562a2a70bd275c8ac08ce47d488ba3f693135660\",\"urls\":[\"bzz-raw://bd09ab69cbadea5ac422588f43d494b78d6feca2b57916db3947b7b66dbbf14f\",\"dweb:/ipfs/QmP4BzkibsPhf2ysPneuY1Gep8ZLMi2XoxcUVk2cxAGGtL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/DolomiteMargin.sol\":{\"keccak256\":\"0xe603b63adf6d1eb3384977729db974e246679fa10135d6bf31bd08a0e6ee407c\",\"urls\":[\"bzz-raw://0e612713abbac4a3a8439eae7498388d88dad936993ceac078de07415a4f4cad\",\"dweb:/ipfs/QmdMApfMXX2bgLC5W9agH14hs6EA5A39u6A2ofQYmwMW8s\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/Getters.sol\":{\"keccak256\":\"0xfe14f141a00334022c4b580bf708579bbf21e8342407b68b3fbbf2afa5c9ad62\",\"urls\":[\"bzz-raw://c05c3e16bae33a1d96623ce604b457e091f8cb8b59246c758b4b713b5ab69e62\",\"dweb:/ipfs/QmTg6GkcDGgmvBdAYaNGQHnvZcfbNwAzaL173YbNRPokpT\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/Operation.sol\":{\"keccak256\":\"0xaebae2196c8e39cb0965dc0d88979683d4b8d5a70a45259c5c88a2c9b21dc730\",\"urls\":[\"bzz-raw://66d81ffed219df67800129b079c3bb4b3246ff1e05f39a5157fb8a3681fe0351\",\"dweb:/ipfs/QmaBv43NeqUy5PJPYCtZuGL8H2L4P4B6zgTzZQPAADkK3D\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/Permission.sol\":{\"keccak256\":\"0x8a0f17ece121f76094335482d99a2ec6dd1728cc4b699aede024afd5d51ae660\",\"urls\":[\"bzz-raw://3ab2b049bb5686fafc6450c9796abac1c724a40ed0810685f64c4dab089faf5d\",\"dweb:/ipfs/QmV1XHkR2aS39byy4Ff6Px8JyHYjnZEugAJsBSz1gdQ47q\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/State.sol\":{\"keccak256\":\"0x4fe464f16c7f490dbe7f43e9672ddf1296852a4a652303a47a91bc7a3c72419b\",\"urls\":[\"bzz-raw://725237be55e03e728e268407c47704af1c93b1fddf277b5e6447d864b9f0bbfb\",\"dweb:/ipfs/QmNZfmH9XMXGdd21DMv2aNU4X152uDVUrpns64kZn1ryVn\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/impl/AdminImpl.sol\":{\"keccak256\":\"0x9f5cc11d0375c7202f7dfb5079859c65c7f5cc1e816ea5090e281a6dbc01f5ce\",\"urls\":[\"bzz-raw://44bda3d421426f186cb3cc60765dfb2cf446c61e20bb039ba2bf2ee558e6d363\",\"dweb:/ipfs/QmZUrDfwsVPsMSWz45ejAXC1juwCZ7x9vQ14JHAgC2JAHJ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/impl/LiquidateOrVaporizeImpl.sol\":{\"keccak256\":\"0xee3acbdae4220c61bfdbfb7aa90d99136c2810dcbea0198938471bdd3b0d04fa\",\"urls\":[\"bzz-raw://3de11553acfce257026f4dc3ffc651aa5a970197a12df9776e2c049a53c35a3c\",\"dweb:/ipfs/QmNUT3TtGC9z5cnCsZcTpaweDmM6pBkMUgis43AMm9TUZ8\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/impl/OperationImpl.sol\":{\"keccak256\":\"0x4b39f8b94644ac2e2ac97bfdca1e52c8d406a9d89d11d7fa20cdbc40133b1cd0\",\"urls\":[\"bzz-raw://3439c3a4a1f689d4a130112b8dd00d3cd5a2113d0f6e90bee7023c7633207ac4\",\"dweb:/ipfs/QmWGrYTKbtAbdfuALDNVeivKcrM3Zwxjebg5Qczqac6XJu\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IAutoTrader.sol\":{\"keccak256\":\"0x62cbb936c4abdfc1ab33bb3ee5505279cc7354f9404bedf74ee3d099623a6dfa\",\"urls\":[\"bzz-raw://91ab2bd45600b1d3268a5592deb8b396d0fc4bba05a00d1aa4b4b785a6ee46ad\",\"dweb:/ipfs/QmVmBdFGFuA6XzaWxVAxxFDH81mhomg6uJvnYi4NYRHfDk\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/ICallee.sol\":{\"keccak256\":\"0x0b65209369307041e67c28634fc17a19e953199ac42a88198b76578f7fa9b0f8\",\"urls\":[\"bzz-raw://46618851882c2bc5a6212bb0a8ad095e0f38049f24ecf404163ad6b493c728a1\",\"dweb:/ipfs/QmRx4VabTaXTGSyMt8NCTZ7nMiWCHfrvqZjRaKNRir3zEe\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x3e95a2b461f3f0cc4000d71d5c7bb6b1222788cfac1c66faad029ccaa1859d1e\",\"urls\":[\"bzz-raw://cad9773b4a1b196ea3d71129b5bd5679df7db601555a6b29ac111d38c36b00f0\",\"dweb:/ipfs/QmThFva71eLSVmBHHxn34zP7BUCJZDD6wMJHxEkKNWkkvv\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0xfca7f5635821bbc8ff21db6982471a5f20071365496b74a8202e59494d0f327f\",\"urls\":[\"bzz-raw://eb289cb96c83a3ff7fd72d9a646694d324ee955874ef61e986850459b5841d16\",\"dweb:/ipfs/QmeeiaqShMqWpttPJ3GuDwxFzmq235HMVG7vDnLWnCupaZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/ILiquidationCallback.sol\":{\"keccak256\":\"0x371f5287f1f3de144179f485ee617460ce52559685ce8214f4ee55bc605009ed\",\"urls\":[\"bzz-raw://ecb24b11427988292a722d078ffa2f1e390214bd71b5a1772ac304ddb20b2480\",\"dweb:/ipfs/QmdX6uJLKBiNTvUWU3MS7W3juRJXgmX1J8n572mh8ZexNA\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IRecyclable.sol\":{\"keccak256\":\"0x68843eafdee387608bd2e757c91e90c5044fc3724ea3ad5042117ab4af49d639\",\"urls\":[\"bzz-raw://14b71da16f79b9b5356dfb8d9243a141bb87b209e30fc99c9278c9a01e62a1a0\",\"dweb:/ipfs/QmNhdGQbhSBSJ8dTqSuntaqA3ChhkKpwLuhDfS5UGQ461A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x0c71c063b3a1b4e653d94c05f6fc49de43ccc28838e406faccb1c93f424995a8\",\"urls\":[\"bzz-raw://73268db2286565ecc242da93930780e8e4794015c8c0e58d336981ffdc6cfd3a\",\"dweb:/ipfs/QmRYzhuRtKXnTscERvYS9XzjqdQFBoJZoHwRAekHo6w6Zy\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Exchange.sol\":{\"keccak256\":\"0x793484b5aa923b4cb7c9671914e3d9f2d19bee6ee680424adaa97e3b9de930c4\",\"urls\":[\"bzz-raw://cebf09a8d36b303b0b92ee850ea2a802946ac43cb26d1da819f5ea74d6e5110f\",\"dweb:/ipfs/QmeQJZSaHmJskcgL3spQTvn6tYqE9Yo3vfbMTuhJenzhwf\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0xbb17eb41ff805df51e8d637ef2a368782fdc5f085889c2d847713484f8f1967b\",\"urls\":[\"bzz-raw://538001d60d625695754159a8f716877f72217899fdab296d4725dc44bdbe1895\",\"dweb:/ipfs/QmbRm1WpPpaynnwTdmwB5M7H1cZQEtRAuExqtJ3g9SUiVp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9f8e80613b7dcefc4719e57a4a3f7c9bf2cadeb1d2c205c0b667fd5c5538648d\",\"urls\":[\"bzz-raw://ad5d2626e00154cdd4651c718824108220405b75e9196f0744874527d239246b\",\"dweb:/ipfs/QmW7VgfjXDURsTLBayTL6XBkvEX7BGsT9SYCVLpYVMAJtC\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestDolomiteMargin.sol\":{\"keccak256\":\"0xf70acde617765ea130b7bdf33294ada7b29eec696529003de1a6a7044d85d761\",\"urls\":[\"bzz-raw://b58125100d2446a3109cc612713bf41ac24d21deadbf14255320aa4e98c2cc22\",\"dweb:/ipfs/QmVPqZ1yGZhzp3MsU64w5SqiSfTZzkkZp85cLZq8NJfWav\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestOperationImpl.sol\":{\"keccak256\":\"0x402c23b97d383f6b01720480cad64d36dbc5da8a216eed4a5bbe6e4688e201f6\",\"urls\":[\"bzz-raw://06bd34638734f6c944de81d059876d7f79d4e78896d8bf2c0f1f3d88a26c3f85\",\"dweb:/ipfs/QmTYRMPjQfRmHqGty16YB7b5avCHye8ZupmUZEg2KCSopm\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
2186
+ "bytecode": "0x6080604052664765747465727360c81b600e553480156200001f57600080fd5b5060405162005e2138038062005e21833981016040819052620000429162000329565b81816000620000596001600160e01b03620001a016565b600d80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d8054600160a01b60ff60a01b19909116179055815151600755602080830151516008556040808401515160095560609384015151600a558251600b80549385015192850151958501516001600160401b03199485166001600160401b0393841617600160401b600160801b03191668010000000000000000948416850217600160801b600160c01b031916600160801b97841697909702969096176001600160c01b0316600160c01b96831696909602959095179094556080830151600c805460a09095015194909316941693909317600160401b600160c01b0319166001600160801b0390921690920217905550620003db9050565b3390565b600060208284031215620001b757600080fd5b620001c3602062000369565b90506000620001d384846200030f565b82525092915050565b600060c08284031215620001ef57600080fd5b620001fb60c062000369565b905060006200020b84846200031c565b82525060206200021e848483016200031c565b602083015250604062000234848285016200031c565b60408301525060606200024a848285016200031c565b606083015250608062000260848285016200031c565b60808301525060a06200027684828501620002fc565b60a08301525092915050565b6000608082840312156200029557600080fd5b620002a1608062000369565b90506000620002b18484620001a4565b8252506020620002c484848301620001a4565b6020830152506040620002da84828501620001a4565b6040830152506060620002f084828501620001a4565b60608301525092915050565b80516200030981620003ab565b92915050565b80516200030981620003c5565b80516200030981620003d0565b60008061014083850312156200033e57600080fd5b60006200034c858562000282565b92505060806200035f85828601620001dc565b9150509250929050565b6040518181016001600160401b03811182821017156200038857600080fd5b604052919050565b6001600160801b031690565b90565b6001600160401b031690565b620003b68162000390565b8114620003c257600080fd5b50565b620003b6816200039c565b620003b6816200039f565b615a3680620003eb6000396000f3fe608060405234801561001057600080fd5b50600436106103995760003560e01c80638928378e116101e9578063d36cca901161010f578063eb1c6e6b116100ad578063f2fde38b1161007c578063f2fde38b14610834578063f941605214610847578063fd04b6061461085a578063fd47eda61461086d57610399565b8063eb1c6e6b146107d9578063eb44fdd3146107ee578063ef6957d01461080e578063f2901ae21461082157610399565b8063deec053d116100e9578063deec053d1461078b578063e51bfcb41461079e578063e5520228146107be578063e8e72f75146107c657610399565b8063d36cca9014610752578063d5ecf7c514610765578063d96e406d1461077857610399565b8063b42cbcd311610187578063c190c2ec11610156578063c190c2ec146106ec578063c8e188261461070c578063cb04a34c1461071f578063d24c48bc1461073f57610399565b8063b42cbcd31461069b578063b548b892146106ae578063c0bb72b7146106d1578063c1460942146106e457610399565b80638f6bc659116101c35780638f6bc6591461064f5780638fae3be11461066257806398d4611b14610675578063a67a6a451461068857610399565b80638928378e1461062c5780638da5cb5b1461063f5780638f32d59b1461064757610399565b8063387a498a116102ce5780635ac7d17c1161026c5780637e9eaf411161023b5780637e9eaf41146105eb57806383566670146105f35780638439dd921461060657806385b53fc81461061957610399565b80635ac7d17c1461059857806369794795146105ab5780636a8194e7146105c0578063715018a6146105e357610399565b80634be87414116102a85780634be874141461054a5780634f3c15421461055d57806356ea84b2146105655780635735a4301461058557610399565b8063387a498a146105045780633a031bf01461051757806347d1b53c1461052a57610399565b8063197f0f051161033b5780632a560845116103155780632a560845146104b85780632e822af3146104cb5780633063bce2146104de57806334fd45f1146104f157610399565b8063197f0f05146104705780631a7777bb14610483578063295c39a5146104a357610399565b8063062bd3e911610377578063062bd3e9146103fc578063121fb72f1461041c578063124f914c1461042f578063133683641461045057610399565b80630339a0c41461039e578063042069d6146103c7578063052f72d7146103dc575b600080fd5b6103b16103ac366004614911565b610880565b6040516103be91906153c5565b60405180910390f35b6103da6103d53660046149bb565b610955565b005b6103ef6103ea36600461461c565b610a54565b6040516103be9190615423565b61040f61040a366004614911565b610a6c565b6040516103be9190615374565b6103da61042a36600461498b565b610a88565b61044261043d366004614828565b610b37565b6040516103be92919061573d565b61046361045e366004614911565b610b5b565b6040516103be9190615431565b61046361047e366004614911565b610b92565b610496610491366004614911565b610bc9565b6040516103be91906154ae565b6104ab610c00565b6040516103be9190615759565b6104ab6104c636600461463a565b610c06565b6103da6104d936600461480a565b610d22565b6103da6104ec36600461480a565b610e15565b6104ab6104ff366004614828565b610ec2565b6103da61051236600461480a565b610ed4565b6103ef61052536600461463a565b610f81565b61053d610538366004614876565b610f9b565b6040516103be9190615512565b6103da6105583660046149bb565b610fbe565b61049661106d565b610578610573366004614911565b611089565b6040516103be91906154bc565b6103ef610593366004614911565b6110be565b6103ef6105a6366004614911565b6110f8565b6105b3611120565b6040516103be919061552e565b6105d36105ce366004614828565b61117c565b6040516103be94939291906153d6565b6103da611333565b6104966113c6565b6103da610601366004614846565b6113e2565b6103da6106143660046146a4565b611454565b6103da61062736600461479f565b611559565b61049661063a366004614911565b611640565b61040f611675565b6103ef611691565b6104ab61065d36600461494d565b6116d1565b6104ab61067036600461461c565b611782565b6103b1610683366004614828565b6117b6565b6103da610696366004614740565b6117c9565b6103da6106a93660046149eb565b611854565b6106c16106bc366004614911565b6119f9565b6040516103be94939291906154d9565b6103da6106df36600461480a565b611a55565b610496611b02565b6106ff6106fa366004614876565b611b1e565b6040516103be919061574b565b61053d61071a366004614876565b611b5e565b61073261072d366004614911565b611b66565b6040516103be919061572f565b61049661074d366004614a1b565b611b88565b6103da6107603660046147d4565b611bb4565b6106ff610773366004614911565b611c63565b6103da6107863660046148a6565b611c85565b610578610799366004614911565b611d1a565b6107b16107ac366004614828565b611d3c565b6040516103be919061543f565b610496611d4e565b6103da6107d436600461498b565b611d6a565b6107e1611e19565b6040516103be9190615520565b6108016107fc366004614911565b611ebb565b6040516103be91906154ca565b6103da61081c36600461496c565b612026565b6103da61082f366004614674565b6120d5565b6103da61084236600461461c565b612184565b610442610855366004614828565b6121b4565b610496610868366004614911565b6121cf565b61049661087b366004614911565b612206565b606060008090506060836040519080825280602002602001820160405280156108b3578160200160208202803883390190505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260036020527fb1ee3b3d0d99532dd9f14b22c0b908d4eec0e052c3827bbed2d6c3986954d08c549091505b801580159061091157508483105b1561094b578082848060010195508151811061092957fe5b6020908102919091018101919091526000918252600390526040902054610903565b509150505b919050565b61095d611691565b6109825760405162461bcd60e51b81526004016109799061548e565b60405180910390fd5b600d54600160a01b900460ff166109ab5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8854ab3e00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638854ab3e90610a0d9060009086908690600401615707565b60006040518083038186803b158015610a2557600080fd5b505af4158015610a39573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b17905550505050565b6000610a66818363ffffffff61223b16565b92915050565b6000610a778261226a565b610a6660008363ffffffff6122cb16565b610a90611691565b610aac5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610ad55760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517faa92e34800000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063aa92e34890610a0d90600090869086906004016156df565b610b3f613f4a565b610b47613f4a565b610b528360006122f7565b91509150915091565b6000610b668261226a565b5060009081526001602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b9d8261226a565b5060009081526001602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1690565b610bd1613f4a565b610bda8261226a565b506000908152600160209081526040918290208251918201909252600690910154815290565b60005490565b6000610c10611691565b610c2c5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610c555760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fdd32998a00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063dd32998a90610cb7906000908790879060040161553c565b60206040518083038186803b158015610ccf57600080fd5b505af4158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d07919081019061492f565b9050600d805460ff60a01b1916600160a01b17905592915050565b610d2a611691565b610d465760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610d6f5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517ff9cacc4c00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063f9cacc4c90610dcf906000908590600401615659565b60006040518083038186803b158015610de757600080fd5b505af4158015610dfb573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050565b610e1d611691565b610e395760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610e625760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f0f44e6bc00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90630f44e6bc90610dcf906000908590600401615659565b6000610a66818363ffffffff61239c16565b610edc611691565b610ef85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610f215760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f311401d000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063311401d090610dcf906000908590600401615659565b6000610f9481848463ffffffff6123e316565b9392505050565b610fa3613f5d565b610fac8261226a565b610f946000848463ffffffff61242016565b610fc6611691565b610fe25760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff1661100b5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f7335079b00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90637335079b90610a0d9060009086908690600401615707565b611075613f4a565b506040805160208101909152600754815290565b611091613f74565b61109a8261226a565b610a66826110af60008263ffffffff61249f16565b6000919063ffffffff61252316565b60006110c98261226a565b506000908152600160205260409020547501000000000000000000000000000000000000000000900460ff1690565b60006111038261226a565b50600090815260016020526040902054600160a01b900460ff1690565b611128613f94565b506040805160a081018252600754608082019081528152815160208181018452600854825280830191909152825180820184526009548152828401528251908101909252600a548252606081019190915290565b60608080808061119360008763ffffffff61257b16565b9050606081516040519080825280602002602001820160405280156111c2578160200160208202803883390190505b5090506060825160405190808252806020026020018201604052801561120257816020015b6111ef613f5d565b8152602001906001900390816111e75790505b5090506060835160405190808252806020026020018201604052801561124257816020015b61122f613f5d565b8152602001906001900390816112275790505b50905060005b84518110156113235761126d85828151811061126057fe5b6020026020010151610a6c565b84828151811061127957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112d08a8683815181106112c357fe5b6020026020010151610f9b565b8382815181106112dc57fe5b60200260200101819052506113048a8683815181106112f757fe5b6020026020010151611b1e565b82828151811061131057fe5b6020908102919091010152600101611248565b5092989197509550909350915050565b61133b611691565b6113575760405162461bcd60e51b81526004016109799061548e565b600d5460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6113ce613f4a565b506040805160208101909152600a54815290565b815173ffffffffffffffffffffffffffffffffffffffff166000908152600460209081526040808320828601518452909152902080548291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561144b57fe5b02179055505050565b61145c611691565b6114785760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166114a15760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f4f32fb2700000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90634f32fb279061150d906000908b908b908b908b908b908b908b9060040161558c565b60006040518083038186803b15801561152557600080fd5b505af4158015611539573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050505050505050565b60005b815181101561163c57600082828151811061157357fe5b6020026020010151600001519050600083838151811061158f57fe5b60209081029190910181015181015133600081815260058452604080822073ffffffffffffffffffffffffffffffffffffffff8816835290945283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001683151517905591519092507f4d7f317d2088d039c2a95a09fcbf9cc9191fad5905f883c937cc3d317c4a63279061162a9085908590615382565b60405180910390a2505060010161155c565b5050565b611648613f4a565b6116518261226a565b610a668261166660008263ffffffff6122cb16565b6000919063ffffffff6125c016565b600d5473ffffffffffffffffffffffffffffffffffffffff1690565b600d5460009073ffffffffffffffffffffffffffffffffffffffff166116b56126ef565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006116db611691565b6116f75760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166117205760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fb25328e000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063b25328e090610cb790600090879087906004016156a9565b600061178d826126f3565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6060610a6660008363ffffffff61257b16565b600d54600160a01b900460ff166117f25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fbd76ecfd00000000000000000000000000000000000000000000000000000000815273__OperationImpl_________________________9063bd76ecfd90610a0d90600090869086906004016155f6565b61185c613f74565b5060008281526001602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082048116938301939093527801000000000000000000000000000000000000000000000000900463ffffffff16928101929092528251166118eb5780516bffffffffffffffffffffffff1682525b60208201516bffffffffffffffffffffffff1661191b576020808201516bffffffffffffffffffffffff16908301525b5060009182526001602090815260409283902082516002909101805492840151939094015163ffffffff167801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff9485166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff959093167fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090941693909317939093161716179055565b611a01613fd3565b611a09613f74565b611a11613f4a565b611a19613f4a565b611a228561226a565b611a2b85611ebb565b611a3486611089565b611a3d87611640565b611a4688612206565b93509350935093509193509193565b611a5d611691565b611a795760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611aa25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f54dd351600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906354dd351690610dcf906000908590600401615659565b611b0a613f4a565b506040805160208101909152600854815290565b611b26613f5d565b611b2f8261226a565b610f94611b446000858563ffffffff61242016565b611b59846110af60008263ffffffff61249f16565b61275c565b610fac613f5d565b611b6e613f5d565b611b778261226a565b610a6660008363ffffffff61280d16565b611b90613f4a565b611b998361226a565b611ba28261226a565b610f946000848463ffffffff61286d16565b611bbc611691565b611bd85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611c015760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fd963729100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063d963729190610a0d906000908690869060040161562a565b611c6b613f5d565b611c748261226a565b610a6660008363ffffffff61290416565b611c8e8261226a565b6040517f81379a5e00000000000000000000000000000000000000000000000000000000815273__TestOperationImpl_____________________906381379a5e90611ce590600090879087908790600401615674565b60006040518083038186803b158015611cfd57600080fd5b505af4158015611d11573d6000803e3d6000fd5b50505050505050565b611d22613f74565b611d2b8261226a565b610a6660008363ffffffff61249f16565b6000610a66818363ffffffff612a5f16565b611d56613f4a565b506040805160208101909152600954815290565b611d72611691565b611d8e5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611db75760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8c5dabd100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638c5dabd190610a0d90600090869086906004016156df565b611e21614025565b506040805160c081018252600b5467ffffffffffffffff808216835268010000000000000000808304821660208501527001000000000000000000000000000000008304821694840194909452780100000000000000000000000000000000000000000000000090910481166060830152600c549081166080830152919091046fffffffffffffffffffffffffffffffff1660a082015290565b611ec3613fd3565b611ecc8261226a565b50600090815260016020818152604092839020835161012081018552815473ffffffffffffffffffffffffffffffffffffffff8082168352600160a01b820460ff908116151584870152750100000000000000000000000000000000000000000090920490911615158287015285518087018752948301546fffffffffffffffffffffffffffffffff808216875270010000000000000000000000000000000090910416858501526060808301959095528551948501865260028301546bffffffffffffffffffffffff80821687526c01000000000000000000000000820416868601527801000000000000000000000000000000000000000000000000900463ffffffff168587015260808201949094526003820154841660a0820152600482015490931660c0840152835180830185526005820154815260e08401528351918201909352600690920154825261010081019190915290565b61202e611691565b61204a5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166120735760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f10c87b0600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906310c87b0690610a0d90600090869086906004016156c4565b6120dd611691565b6120f95760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166121225760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fe80f802400000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063e80f802490610a0d9060009086908690600401615564565b61218c611691565b6121a85760405162461bcd60e51b81526004016109799061548e565b6121b181612a9e565b50565b6121bc613f4a565b6121c4613f4a565b610b528360016122f7565b6121d7613f4a565b6121e08261226a565b506000908152600160209081526040918290208251918201909252600590910154815290565b61220e613f4a565b6122178261226a565b610a668261222c60008263ffffffff61249f16565b6000919063ffffffff612b5f16565b73ffffffffffffffffffffffffffffffffffffffff166000908152600691909101602052604090205460ff1690565b6000546121b190821080156122a2575060008281526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b600e547f496e76616c6964206d61726b6574000000000000000000000000000000000000612c6a565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6122ff613f4a565b612307613f4a565b606061231a60008663ffffffff61257b16565b905061232461405a565b61232e8251612cfd565b905060005b825181101561236a5761236283828151811061234b57fe5b602002602001015183612d5c90919063ffffffff16565b600101612333565b5061237c60008263ffffffff612dc616565b61238f600087838863ffffffff61301516565b9350935050509250929050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260049290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600593909301602090815260408085209290931684525290205460ff1690565b612428613f5d565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526004840160209081526040808320828601518452825280832084845260030182529182902082518084019093525460ff8116151583526fffffffffffffffffffffffffffffffff61010090910416908201529392505050565b6124a7613f74565b506000908152600191909101602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041692820192909252780100000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b61252b613f74565b612533613f4a565b61254485858563ffffffff612b5f16565b9050612572838261255b888863ffffffff61280d16565b604080516020810190915260098a01548152613178565b95945050505050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260048301602090815260408083208285015184529091529020606090610f94906001016132e3565b6125c8613f4a565b600083815260018501602052604090206003015473ffffffffffffffffffffffffffffffffffffffff166125fa613f4a565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906341976e099061264c908790600401615374565b60206040518083038186803b15801561266457600080fd5b505afa158015612678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061269c91908101906148f3565b80519091506125729015157f53746f72616765000000000000000000000000000000000000000000000000007f50726963652063616e6e6f74206265207a65726f0000000000000000000000008861333f565b3390565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002602090815260408083205483526001909152902054600e546121b19391909116909114907f496e76616c696420746f6b656e00000000000000000000000000000000000000612c6a565b612764613f5d565b602083015183516fffffffffffffffffffffffffffffffff90911690156127d0576040805180820190915260018152602084810151908201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b815250915050610a66565b6040805180820190915260008152835160208201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b612815613f5d565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b612875613f4a565b60088401546000848152600186016020908152604091829020825191820190925260069091015481526128b29082906128ad90613471565b6134a8565b90506128ed816128ad876001016000878152602001908152602001600020600601604051806020016040529081600082015481525050613471565b604080516020810190915290815295945050505050565b61290c613f5d565b612914613f74565b612924848463ffffffff61249f16565b905061292e613f5d565b61293e858563ffffffff61280d16565b90506000612952868663ffffffff6122cb16565b905061295c613f5d565b6040805180820182526001815290517f70a08231000000000000000000000000000000000000000000000000000000008152602082019073ffffffffffffffffffffffffffffffffffffffff8516906370a08231906129bf903090600401615374565b60206040518083038186803b1580156129d757600080fd5b505afa1580156129eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a0f919081019061492f565b90529050612a1b613f5d565b612a23613f5d565b612a2d85876134c1565b9092509050612a5282612a46858463ffffffff61356916565b9063ffffffff61356916565b9998505050505050505050565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526004929092016020908152604080842092820151845291905290205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8116612ad15760405162461bcd60e51b81526004016109799061545e565b600d5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612b67613f4a565b612b6f613f5d565b612b7f858563ffffffff61280d16565b9050612b89613f5d565b612b91613f5d565b612b9b83866134c1565b91509150612ba7613f4a565b600087815260018901602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1663e8177dcf612be68a8a63ffffffff6122cb16565b846020015186602001516040518463ffffffff1660e01b8152600401612c0e9392919061539d565b60206040518083038186803b158015612c2657600080fd5b505afa158015612c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c5e91908101906148f3565b98975050505050505050565b82612cf857612c7882613583565b7f3a20000000000000000000000000000000000000000000000000000000000000612ca283613583565b604051602001612cb493929190615272565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b82526109799160040161544d565b505050565b612d0561405a565b604080516000606082018181526080830190935290918291612d3d565b612d2a61407b565b815260200190600190039081612d225790505b508152602001612d4c84613657565b8152600060209091015292915050565b815151612dab90157f43616368650000000000000000000000000000000000000000000000000000007f616c726561647920696e697469616c697a656400000000000000000000000000612c6a565b612db9826020015182613691565b5060400180516001019052565b8060400151604051908082528060200260200182016040528015612e0457816020015b612df161407b565b815260200190600190039081612de95790505b5081526000805b826020015151811015612fbb57600083602001518281518110612e2a57fe5b602002602001015190505b8015612fa0576000612e46826136c7565b90506000612e54848361389e565b90506000612e68888363ffffffff6122cb16565b600083815260018a016020526040902054909150600160a01b900460ff1615612f1e576040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff8316602082015260019181019190915260608101612ed18a8563ffffffff61280d16565b516fffffffffffffffffffffffffffffffff168152602001612efa8a858563ffffffff6125c016565b9052875180516001890198908110612f0e57fe5b6020026020010181905250612f8c565b6040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff831660208201526000918101829052606081019190915260808101612f6c8a858563ffffffff6125c016565b9052875180516001890198908110612f8057fe5b60200260200101819052505b612f9684846138a9565b9350505050612e35565b8360400151831415612fb25750612fbb565b50600101612e0b565b506040820151825151612cf891808414917f53746f7261676500000000000000000000000000000000000000000000000000917f636163686520696e697469616c697a656420696d70726f7065726c7900000000916138b2565b61301d613f4a565b613025613f4a565b61302d613f4a565b613035613f4a565b60006130408761397d565b905060005b8181101561316957613055613f5d565b6130788a6130698b8563ffffffff61398216565b518d919063ffffffff6139fe16565b905061308381613a6d565b1561308e5750613161565b60006130b96130a38b8563ffffffff61398216565b608001515160208401519063ffffffff613a7516565b90506130c3613f4a565b6130cb613aaf565b905089156131165761311360018e0160006130ec8e8863ffffffff61398216565b51815260208082019290925260409081016000208151928301909152600501548152613471565b90505b82511561313f5761313861312a8383613ad1565b88519063ffffffff613aea16565b875261315d565b61315a61314c83836134a8565b87519063ffffffff613aea16565b86525b5050505b600101613045565b50919890975095505050505050565b613180613f74565b613188613f5d565b613190613f5d565b61319a85886134c1565b9150915060006131a8613b0f565b905060006131e06131d28a6040015163ffffffff168463ffffffff16613b1f90919063ffffffff16565b89519063ffffffff613a7516565b905060006131ed85613a6d565b156131fa5750600061322c565b61320482886134a8565b905084602001518460200151101561322c576132298185602001518760200151613b61565b90505b8181111561323657fe5b60408051606081019091528a51819061327f9061327a906bffffffffffffffffffffffff1661326e8188670de0b6b3a7640000613b61565b9063ffffffff613aea16565b613b77565b6bffffffffffffffffffffffff908116825260208d8101519201916132b69161327a911661326e8187670de0b6b3a7640000613b61565b6bffffffffffffffffffffffff1681526020018463ffffffff16815250955050505050505b949350505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561333357602002820191906000526020600020905b81548152602001906001019080831161331f575b50505050509050919050565b836133d75761334d83613583565b7f3a2000000000000000000000000000000000000000000000000000000000000061337784613583565b7f203c0000000000000000000000000000000000000000000000000000000000006133a185613bd6565b604051612cb49594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161529a565b50505050565b60008315806133ea575082155b15613401576133fa600083613ce5565b9050610f94565b6000613413858563ffffffff613a7516565b905061257261343e600161326e6002613432888463ffffffff613b1f16565b9063ffffffff613ce516565b61344e838663ffffffff613d2716565b101561345b57600061345e565b60015b60ff1661326e838663ffffffff613ce516565b613479613f4a565b6040805160208101909152825181906134a090670de0b6b3a764000063ffffffff613aea16565b905292915050565b6000610f94838360000151670de0b6b3a7640000613b61565b6134c9613f5d565b6134d1613f5d565b6134d9613f5d565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff169082015261350c613f5d565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff16602082015261353c613f5d565b613546838761275c565b9050613550613f5d565b61355a838861275c565b91989197509095505050505050565b613571613f5d565b610f948361357e84613d69565b613d90565b60608082604051602001613597919061525d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156136405781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061360357fe5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561363b5760010181529050610950565b6135ca565b505060408051600081526020810190915292915050565b6060600161010083040160405190808252806020026020018201604052801561368a578160200160208202803883390190505b5092915050565b815161010082049060ff8316906001821b908590849081106136af57fe5b60200260200101818151179150818152505050505050565b600060ff6fffffffffffffffffffffffffffffffff83161561370a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613712565b608083901c92505b67ffffffffffffffff831615613749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613751565b604083901c92505b63ffffffff831615613784577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00161378c565b602083901c92505b61ffff8316156137bd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016137c5565b601083901c92505b60ff8316156137f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016137fd565b600883901c92505b600f83161561382d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01613835565b600483901c92505b6003831615613865577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161386d565b600283901c92505b6001831615610a66577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b84613976576138c084613583565b7f3a200000000000000000000000000000000000000000000000000000000000006138ea85613583565b7f203c00000000000000000000000000000000000000000000000000000000000061391486613bd6565b7f2c2000000000000000000000000000000000000000000000000000000000000061393e87613bd6565b604051612cb497969594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016152f8565b5050505050565b515190565b61398a61407b565b8251516139e090808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e646578000000000000000000000000000000000000009086906138b2565b82518051839081106139ee57fe5b6020026020010151905092915050565b613a06613f5d565b613a0e613f5d565b613a1f85858563ffffffff61242016565b9050613a2a81613e22565b15613a3f57613a37613e3c565b915050610f94565b613a47613f74565b613a57868563ffffffff61249f16565b9050613a63828261275c565b9695505050505050565b602001511590565b600082613a8457506000610a66565b82820282848281613a9157fe5b0414610f945760405162461bcd60e51b81526004016109799061547e565b613ab7613f4a565b506040805160208101909152670de0b6b3a7640000815290565b6000610f9483670de0b6b3a76400008460000151613b61565b600082820183811015610f945760405162461bcd60e51b81526004016109799061546e565b6000613b1a42613e5c565b905090565b6000610f9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613eb3565b60006132db82613432868663ffffffff613a7516565b600081610a666bffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74393600000000000000000000008461333f565b606081613c17575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610950565b8160005b8115613c2f57600101600a82049150613c1b565b6060816040519080825280601f01601f191660200182016040528015613c5c576020820181803883390190505b508593509050815b8015613cdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b828281518110613ca257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350613c64565b50949350505050565b6000610f9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613edf565b6000610f9483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613f16565b613d71613f5d565b5060408051808201909152815115815260208083015190820152919050565b613d98613f5d565b613da0613f5d565b8251845115159015151415613dd35783511515815260208085015190840151613dc99190613aea565b6020820152610f94565b8260200151846020015110613dfc5783511515815260208085015190840151613dc99190613b1f565b82511515815260208084015190850151613e169190613b1f565b60208201529392505050565b602001516fffffffffffffffffffffffffffffffff161590565b613e44613f5d565b50604080518082019091526000808252602082015290565b600081610a6663ffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74333200000000000000000000008461333f565b60008184841115613ed75760405162461bcd60e51b8152600401610979919061544d565b505050900390565b60008183613f005760405162461bcd60e51b8152600401610979919061544d565b506000838581613f0c57fe5b0495945050505050565b60008183613f375760405162461bcd60e51b8152600401610979919061544d565b50828481613f4157fe5b06949350505050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280613fa7613f4a565b8152602001613fb4613f4a565b8152602001613fc1613f4a565b8152602001613fce613f4a565b905290565b60408051610120810182526000808252602082018190529181019190915260608101613ffd613f5d565b815260200161400a613f74565b81526000602082018190526040820152606001613fc1613f4a565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180606001604052806060815260200160608152602001600081525090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160006fffffffffffffffffffffffffffffffff168152602001613fce613f4a565b8035610a6681615982565b600082601f8301126140f057600080fd5b81356141036140fe8261578e565b615767565b81815260209384019390925082018360005b83811015614141578135860161412b8882614325565b8452506020928301929190910190600101614115565b5050505092915050565b600082601f83011261415c57600080fd5b813561416a6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561418f57600080fd5b60005b8381101561414157816141a588826144fe565b84525060209092019160409190910190600101614192565b600082601f8301126141ce57600080fd5b81356141dc6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561420157600080fd5b60005b8381101561414157816142178882614545565b84525060209092019160409190910190600101614204565b600082601f83011261424057600080fd5b813561424e6140fe8261578e565b9150818183526020840193506020810190508385602084028201111561427357600080fd5b60005b83811015614141578161428988826145f0565b8452506020928301929190910190600101614276565b8035610a6681615996565b600082601f8301126142bb57600080fd5b81356142c96140fe826157af565b915080825260208301602083018583830111156142e557600080fd5b6142f0838284615904565b50505092915050565b8035610a668161599f565b8035610a66816159a8565b8035610a66816159b5565b8035610a66816159c2565b6000610160828403121561433857600080fd5b614343610100615767565b905060006143518484614304565b8252506020614362848483016145f0565b602083015250604061437684828501614401565b60408301525060c061438a848285016145f0565b60608301525060e061439e848285016145f0565b6080830152506101006143b3848285016140d4565b60a0830152506101206143c8848285016145f0565b60c08301525061014082013567ffffffffffffffff8111156143e957600080fd5b6143f5848285016142aa565b60e08301525092915050565b60006080828403121561441357600080fd5b61441d6080615767565b9050600061442b848461429f565b825250602061443c8484830161430f565b60208301525060406144508482850161430f565b6040830152506060614464848285016145f0565b60608301525092915050565b60006020828403121561448257600080fd5b61448c6020615767565b9050600061449a84846145f0565b82525092915050565b6000606082840312156144b557600080fd5b6144bf6060615767565b905060006144cd8484614611565b82525060206144de84848301614611565b60208301525060406144f284828501614606565b60408301525092915050565b60006040828403121561451057600080fd5b61451a6040615767565b9050600061452884846140d4565b8252506020614539848483016145f0565b60208301525092915050565b60006040828403121561455757600080fd5b6145616040615767565b9050600061456f84846140d4565b82525060206145398484830161429f565b60006040828403121561459257600080fd5b61459c6040615767565b905060006145aa848461429f565b8252506020614539848483016145e5565b6000602082840312156145cd57600080fd5b6145d76020615767565b9050600061449a84846145fb565b8035610a66816159cf565b8035610a66816159d8565b8051610a66816159d8565b8035610a66816159e1565b8035610a66816159ea565b60006020828403121561462e57600080fd5b60006132db84846140d4565b6000806040838503121561464d57600080fd5b600061465985856140d4565b925050602061466a858286016140d4565b9150509250929050565b6000806040838503121561468757600080fd5b600061469385856140d4565b925050602061466a8582860161429f565b600080600080600080600060e0888a0312156146bf57600080fd5b60006146cb8a8a6140d4565b97505060206146dc8a828b016142f9565b96505060406146ed8a828b016142f9565b95505060606146fe8a828b01614470565b945050608061470f8a828b01614470565b93505060a06147208a828b0161429f565b92505060c06147318a828b0161429f565b91505092959891949750929550565b6000806040838503121561475357600080fd5b823567ffffffffffffffff81111561476a57600080fd5b6147768582860161414b565b925050602083013567ffffffffffffffff81111561479357600080fd5b61466a858286016140df565b6000602082840312156147b157600080fd5b813567ffffffffffffffff8111156147c857600080fd5b6132db848285016141bd565b600080604083850312156147e757600080fd5b823567ffffffffffffffff8111156147fe57600080fd5b6146598582860161422f565b60006020828403121561481c57600080fd5b60006132db8484614470565b60006040828403121561483a57600080fd5b60006132db84846144fe565b6000806060838503121561485957600080fd5b600061486585856144fe565b925050604061466a8582860161431a565b6000806060838503121561488957600080fd5b600061489585856144fe565b925050604061466a858286016145f0565b600080600060a084860312156148bb57600080fd5b60006148c786866144fe565b93505060406148d8868287016145f0565b92505060606148e986828701614580565b9150509250925092565b60006020828403121561490557600080fd5b60006132db84846145bb565b60006020828403121561492357600080fd5b60006132db84846145f0565b60006020828403121561494157600080fd5b60006132db84846145fb565b6000806040838503121561496057600080fd5b600061465985856145f0565b6000806040838503121561497f57600080fd5b600061469385856145f0565b6000806040838503121561499e57600080fd5b60006149aa85856145f0565b925050602061466a858286016142f9565b600080604083850312156149ce57600080fd5b60006149da85856145f0565b925050602061466a85828601614470565b600080608083850312156149fe57600080fd5b6000614a0a85856145f0565b925050602061466a858286016144a3565b60008060408385031215614a2e57600080fd5b6000614a3a85856145f0565b925050602061466a858286016145f0565b6000614a578383614aa3565b505060200190565b6000610f948383614f25565b6000614a778383615059565b505060400190565b6000614a77838361512c565b6000614a77838361521f565b6000614a578383615239565b614aac81615808565b82525050565b6000614abd826157fb565b614ac781856157ff565b9350614ad2836157f5565b8060005b83811015614b00578151614aea8882614a4b565b9750614af5836157f5565b925050600101614ad6565b509495945050505050565b6000614b16826157fb565b614b2081856157ff565b935083602082028501614b32856157f5565b8060005b85811015614b6c5784840389528151614b4f8582614a5f565b9450614b5a836157f5565b60209a909a0199925050600101614b36565b5091979650505050505050565b6000614b84826157fb565b614b8e81856157ff565b9350614b99836157f5565b8060005b83811015614b00578151614bb18882614a6b565b9750614bbc836157f5565b925050600101614b9d565b6000614bd2826157fb565b614bdc81856157ff565b9350614be7836157f5565b8060005b83811015614b00578151614bff8882614a7f565b9750614c0a836157f5565b925050600101614beb565b6000614c20826157fb565b614c2a81856157ff565b9350614c35836157f5565b8060005b83811015614b00578151614c4d8882614a8b565b9750614c58836157f5565b925050600101614c39565b6000614c6e826157fb565b614c7881856157ff565b9350614c83836157f5565b8060005b83811015614b00578151614c9b8882614a97565b9750614ca6836157f5565b925050600101614c87565b6000614cbc826157fb565b614cc681856157ff565b9350614cd1836157f5565b8060005b83811015614b00578151614ce98882614a97565b9750614cf4836157f5565b925050600101614cd5565b614aac81615813565b614aac614d1482615818565b615862565b614aac614d148261583d565b614aac614d1482615862565b6000614d3c826157fb565b614d468185610950565b9350614d56818560208601615910565b9290920192915050565b6000614d6b826157fb565b614d7581856157ff565b9350614d85818560208601615910565b614d8e8161593c565b9093019392505050565b614aac81615865565b614aac816158e3565b614aac816158ee565b614aac816158f9565b6000614dc96026836157ff565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614e28601b836157ff565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614e616021836157ff565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614ec06020836157ff565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000614ef9601f836157ff565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b8051600090610160840190614f3a8582614da1565b506020830151614f4d6020860182615239565b506040830151614f606040860182614fc7565b506060830151614f7360c0860182615239565b506080830151614f8660e0860182615239565b5060a0830151614f9a610100860182614aa3565b5060c0830151614fae610120860182615239565b5060e08301518482036101408601526125728282614d60565b80516080830190614fd88482614cff565b506020820151614feb6020850182614daa565b506040820151614ffe6040850182614daa565b5060608201516133d76060850182615239565b805160208301906133d78482615239565b805160608301906150338482615254565b5060208201516150466020850182615254565b5060408201516133d76040850182615242565b8051604083019061506a8482614aa3565b5060208201516133d76020850182615239565b805161018083019061508f8482614aa3565b5060208201516150a26020850182614cff565b5060408201516150b56040850182614cff565b5060608201516150c8606085018261520e565b5060808201516150db60a0850182615022565b5060a08201516150ef610100850182614d98565b5060c0820151615103610120850182614d98565b5060e0820151615117610140850182615011565b506101008201516133d7610160850182615011565b8051604083019061513d8482614cff565b5060208201516133d76020850182615230565b805160c0830190615161848261524b565b506020820151615174602085018261524b565b506040820151615187604085018261524b565b50606082015161519a606085018261524b565b5060808201516151ad608085018261524b565b5060a08201516133d760a0850182615230565b805160808301906151d18482615011565b5060208201516151e46020850182615011565b5060408201516151f76040850182615011565b5060608201516133d76060850182615011565b9052565b8051604083019061513d8482615230565b8051604083019061506a8482614cff565b614aac8161588e565b614aac81615862565b614aac816158bc565b614aac816158c5565b614aac816158d2565b60006152698284614d25565b50602001919050565b600061527e8286614d31565b915061528a8285614d19565b6002820191506125728284614d31565b60006152a68289614d31565b91506152b28288614d19565b6002820191506152c28287614d31565b91506152ce8286614d19565b6002820191506152de8285614d31565b91506152ea8284614d08565b506001019695505050505050565b6000615304828b614d31565b9150615310828a614d19565b6002820191506153208289614d31565b915061532c8288614d19565b60028201915061533c8287614d31565b91506153488286614d19565b6002820191506153588285614d31565b91506153648284614d08565b5060010198975050505050505050565b60208101610a668284614aa3565b604081016153908285614aa3565b610f946020830184614cff565b606081016153ab8286614aa3565b6153b86020830185615239565b6132db6040830184615239565b60208082528101610f948184614c63565b608080825281016153e78187614c63565b905081810360208301526153fb8186614ab2565b9050818103604083015261540f8185614bc7565b90508181036060830152613a638184614c15565b60208101610a668284614cff565b60208101610a668284614d98565b60208101610a668284614db3565b60208082528101610f948184614d60565b60208082528101610a6681614dbc565b60208082528101610a6681614e1b565b60208082528101610a6681614e54565b60208082528101610a6681614eb3565b60208082528101610a6681614eec565b60208101610a668284615011565b60608101610a668284615022565b6101808101610a66828461507d565b61022081016154e8828761507d565b6154f6610180830186615022565b6155046101e0830185615011565b612572610200830184615011565b60408101610a66828461512c565b60c08101610a668284615150565b60808101610a6682846151c0565b6060810161554a828661520a565b6155576020830185614aa3565b6132db6040830184614aa3565b60608101615572828661520a565b61557f6020830185614aa3565b6132db6040830184614cff565b610100810161559b828b61520a565b6155a8602083018a614aa3565b6155b56040830189614d98565b6155c26060830188614d98565b6155cf6080830187615011565b6155dc60a0830186615011565b6155e960c0830185614cff565b612a5260e0830184614cff565b60608101615604828661520a565b81810360208301526156168185614b79565b905081810360408301526125728184614b0b565b60608101615638828661520a565b818103602083015261564a8185614cb1565b90506132db6040830184614aa3565b60408101615667828561520a565b610f946020830184615011565b60c08101615682828761520a565b61568f6020830186615059565b61569c6060830185615239565b612572608083018461512c565b606081016156b7828661520a565b6155576020830185615239565b606081016156d2828661520a565b61557f6020830185615239565b606081016156ed828661520a565b6156fa6020830185615239565b6132db6040830184614d98565b60608101615715828661520a565b6157226020830185615239565b6132db6040830184615011565b60408101610a66828461520e565b604081016156678285615011565b60408101610a66828461521f565b60208101610a668284615239565b60405181810167ffffffffffffffff8111828210171561578657600080fd5b604052919050565b600067ffffffffffffffff8211156157a557600080fd5b5060209081020190565b600067ffffffffffffffff8211156157c657600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b6000610a66826158a3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6000610a6682615808565b8061095081615964565b806109508161596e565b8061095081615978565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b67ffffffffffffffff1690565b6bffffffffffffffffffffffff1690565b6000610a6682615870565b6000610a668261587a565b6000610a6682615884565b82818337506000910152565b60005b8381101561592b578181015183820152602001615913565b838111156133d75750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600981106121b157fe5b600281106121b157fe5b600381106121b157fe5b61598b81615808565b81146121b157600080fd5b61598b81615813565b61598b81615865565b600981106121b157600080fd5b600281106121b157600080fd5b600381106121b157600080fd5b61598b8161588e565b61598b81615862565b61598b816158bc565b61598b816158d256fea365627a7a72315820702e3a489732a4232d77c703672137ffc29bafa0f467a147c8080b13c7ac81216c6578706572696d656e74616cf564736f6c63430005100040",
2187
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103995760003560e01c80638928378e116101e9578063d36cca901161010f578063eb1c6e6b116100ad578063f2fde38b1161007c578063f2fde38b14610834578063f941605214610847578063fd04b6061461085a578063fd47eda61461086d57610399565b8063eb1c6e6b146107d9578063eb44fdd3146107ee578063ef6957d01461080e578063f2901ae21461082157610399565b8063deec053d116100e9578063deec053d1461078b578063e51bfcb41461079e578063e5520228146107be578063e8e72f75146107c657610399565b8063d36cca9014610752578063d5ecf7c514610765578063d96e406d1461077857610399565b8063b42cbcd311610187578063c190c2ec11610156578063c190c2ec146106ec578063c8e188261461070c578063cb04a34c1461071f578063d24c48bc1461073f57610399565b8063b42cbcd31461069b578063b548b892146106ae578063c0bb72b7146106d1578063c1460942146106e457610399565b80638f6bc659116101c35780638f6bc6591461064f5780638fae3be11461066257806398d4611b14610675578063a67a6a451461068857610399565b80638928378e1461062c5780638da5cb5b1461063f5780638f32d59b1461064757610399565b8063387a498a116102ce5780635ac7d17c1161026c5780637e9eaf411161023b5780637e9eaf41146105eb57806383566670146105f35780638439dd921461060657806385b53fc81461061957610399565b80635ac7d17c1461059857806369794795146105ab5780636a8194e7146105c0578063715018a6146105e357610399565b80634be87414116102a85780634be874141461054a5780634f3c15421461055d57806356ea84b2146105655780635735a4301461058557610399565b8063387a498a146105045780633a031bf01461051757806347d1b53c1461052a57610399565b8063197f0f051161033b5780632a560845116103155780632a560845146104b85780632e822af3146104cb5780633063bce2146104de57806334fd45f1146104f157610399565b8063197f0f05146104705780631a7777bb14610483578063295c39a5146104a357610399565b8063062bd3e911610377578063062bd3e9146103fc578063121fb72f1461041c578063124f914c1461042f578063133683641461045057610399565b80630339a0c41461039e578063042069d6146103c7578063052f72d7146103dc575b600080fd5b6103b16103ac366004614911565b610880565b6040516103be91906153c5565b60405180910390f35b6103da6103d53660046149bb565b610955565b005b6103ef6103ea36600461461c565b610a54565b6040516103be9190615423565b61040f61040a366004614911565b610a6c565b6040516103be9190615374565b6103da61042a36600461498b565b610a88565b61044261043d366004614828565b610b37565b6040516103be92919061573d565b61046361045e366004614911565b610b5b565b6040516103be9190615431565b61046361047e366004614911565b610b92565b610496610491366004614911565b610bc9565b6040516103be91906154ae565b6104ab610c00565b6040516103be9190615759565b6104ab6104c636600461463a565b610c06565b6103da6104d936600461480a565b610d22565b6103da6104ec36600461480a565b610e15565b6104ab6104ff366004614828565b610ec2565b6103da61051236600461480a565b610ed4565b6103ef61052536600461463a565b610f81565b61053d610538366004614876565b610f9b565b6040516103be9190615512565b6103da6105583660046149bb565b610fbe565b61049661106d565b610578610573366004614911565b611089565b6040516103be91906154bc565b6103ef610593366004614911565b6110be565b6103ef6105a6366004614911565b6110f8565b6105b3611120565b6040516103be919061552e565b6105d36105ce366004614828565b61117c565b6040516103be94939291906153d6565b6103da611333565b6104966113c6565b6103da610601366004614846565b6113e2565b6103da6106143660046146a4565b611454565b6103da61062736600461479f565b611559565b61049661063a366004614911565b611640565b61040f611675565b6103ef611691565b6104ab61065d36600461494d565b6116d1565b6104ab61067036600461461c565b611782565b6103b1610683366004614828565b6117b6565b6103da610696366004614740565b6117c9565b6103da6106a93660046149eb565b611854565b6106c16106bc366004614911565b6119f9565b6040516103be94939291906154d9565b6103da6106df36600461480a565b611a55565b610496611b02565b6106ff6106fa366004614876565b611b1e565b6040516103be919061574b565b61053d61071a366004614876565b611b5e565b61073261072d366004614911565b611b66565b6040516103be919061572f565b61049661074d366004614a1b565b611b88565b6103da6107603660046147d4565b611bb4565b6106ff610773366004614911565b611c63565b6103da6107863660046148a6565b611c85565b610578610799366004614911565b611d1a565b6107b16107ac366004614828565b611d3c565b6040516103be919061543f565b610496611d4e565b6103da6107d436600461498b565b611d6a565b6107e1611e19565b6040516103be9190615520565b6108016107fc366004614911565b611ebb565b6040516103be91906154ca565b6103da61081c36600461496c565b612026565b6103da61082f366004614674565b6120d5565b6103da61084236600461461c565b612184565b610442610855366004614828565b6121b4565b610496610868366004614911565b6121cf565b61049661087b366004614911565b612206565b606060008090506060836040519080825280602002602001820160405280156108b3578160200160208202803883390190505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260036020527fb1ee3b3d0d99532dd9f14b22c0b908d4eec0e052c3827bbed2d6c3986954d08c549091505b801580159061091157508483105b1561094b578082848060010195508151811061092957fe5b6020908102919091018101919091526000918252600390526040902054610903565b509150505b919050565b61095d611691565b6109825760405162461bcd60e51b81526004016109799061548e565b60405180910390fd5b600d54600160a01b900460ff166109ab5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8854ab3e00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638854ab3e90610a0d9060009086908690600401615707565b60006040518083038186803b158015610a2557600080fd5b505af4158015610a39573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b17905550505050565b6000610a66818363ffffffff61223b16565b92915050565b6000610a778261226a565b610a6660008363ffffffff6122cb16565b610a90611691565b610aac5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610ad55760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517faa92e34800000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063aa92e34890610a0d90600090869086906004016156df565b610b3f613f4a565b610b47613f4a565b610b528360006122f7565b91509150915091565b6000610b668261226a565b5060009081526001602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b9d8261226a565b5060009081526001602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1690565b610bd1613f4a565b610bda8261226a565b506000908152600160209081526040918290208251918201909252600690910154815290565b60005490565b6000610c10611691565b610c2c5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610c555760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fdd32998a00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063dd32998a90610cb7906000908790879060040161553c565b60206040518083038186803b158015610ccf57600080fd5b505af4158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d07919081019061492f565b9050600d805460ff60a01b1916600160a01b17905592915050565b610d2a611691565b610d465760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610d6f5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517ff9cacc4c00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063f9cacc4c90610dcf906000908590600401615659565b60006040518083038186803b158015610de757600080fd5b505af4158015610dfb573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050565b610e1d611691565b610e395760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610e625760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f0f44e6bc00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90630f44e6bc90610dcf906000908590600401615659565b6000610a66818363ffffffff61239c16565b610edc611691565b610ef85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16610f215760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f311401d000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063311401d090610dcf906000908590600401615659565b6000610f9481848463ffffffff6123e316565b9392505050565b610fa3613f5d565b610fac8261226a565b610f946000848463ffffffff61242016565b610fc6611691565b610fe25760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff1661100b5760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f7335079b00000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90637335079b90610a0d9060009086908690600401615707565b611075613f4a565b506040805160208101909152600754815290565b611091613f74565b61109a8261226a565b610a66826110af60008263ffffffff61249f16565b6000919063ffffffff61252316565b60006110c98261226a565b506000908152600160205260409020547501000000000000000000000000000000000000000000900460ff1690565b60006111038261226a565b50600090815260016020526040902054600160a01b900460ff1690565b611128613f94565b506040805160a081018252600754608082019081528152815160208181018452600854825280830191909152825180820184526009548152828401528251908101909252600a548252606081019190915290565b60608080808061119360008763ffffffff61257b16565b9050606081516040519080825280602002602001820160405280156111c2578160200160208202803883390190505b5090506060825160405190808252806020026020018201604052801561120257816020015b6111ef613f5d565b8152602001906001900390816111e75790505b5090506060835160405190808252806020026020018201604052801561124257816020015b61122f613f5d565b8152602001906001900390816112275790505b50905060005b84518110156113235761126d85828151811061126057fe5b6020026020010151610a6c565b84828151811061127957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506112d08a8683815181106112c357fe5b6020026020010151610f9b565b8382815181106112dc57fe5b60200260200101819052506113048a8683815181106112f757fe5b6020026020010151611b1e565b82828151811061131057fe5b6020908102919091010152600101611248565b5092989197509550909350915050565b61133b611691565b6113575760405162461bcd60e51b81526004016109799061548e565b600d5460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6113ce613f4a565b506040805160208101909152600a54815290565b815173ffffffffffffffffffffffffffffffffffffffff166000908152600460209081526040808320828601518452909152902080548291907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600281111561144b57fe5b02179055505050565b61145c611691565b6114785760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166114a15760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f4f32fb2700000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90634f32fb279061150d906000908b908b908b908b908b908b908b9060040161558c565b60006040518083038186803b15801561152557600080fd5b505af4158015611539573d6000803e3d6000fd5b5050600d805460ff60a01b1916600160a01b179055505050505050505050565b60005b815181101561163c57600082828151811061157357fe5b6020026020010151600001519050600083838151811061158f57fe5b60209081029190910181015181015133600081815260058452604080822073ffffffffffffffffffffffffffffffffffffffff8816835290945283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001683151517905591519092507f4d7f317d2088d039c2a95a09fcbf9cc9191fad5905f883c937cc3d317c4a63279061162a9085908590615382565b60405180910390a2505060010161155c565b5050565b611648613f4a565b6116518261226a565b610a668261166660008263ffffffff6122cb16565b6000919063ffffffff6125c016565b600d5473ffffffffffffffffffffffffffffffffffffffff1690565b600d5460009073ffffffffffffffffffffffffffffffffffffffff166116b56126ef565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006116db611691565b6116f75760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166117205760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fb25328e000000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063b25328e090610cb790600090879087906004016156a9565b600061178d826126f3565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6060610a6660008363ffffffff61257b16565b600d54600160a01b900460ff166117f25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fbd76ecfd00000000000000000000000000000000000000000000000000000000815273__OperationImpl_________________________9063bd76ecfd90610a0d90600090869086906004016155f6565b61185c613f74565b5060008281526001602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082048116938301939093527801000000000000000000000000000000000000000000000000900463ffffffff16928101929092528251166118eb5780516bffffffffffffffffffffffff1682525b60208201516bffffffffffffffffffffffff1661191b576020808201516bffffffffffffffffffffffff16908301525b5060009182526001602090815260409283902082516002909101805492840151939094015163ffffffff167801000000000000000000000000000000000000000000000000027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff9485166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff959093167fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090941693909317939093161716179055565b611a01613fd3565b611a09613f74565b611a11613f4a565b611a19613f4a565b611a228561226a565b611a2b85611ebb565b611a3486611089565b611a3d87611640565b611a4688612206565b93509350935093509193509193565b611a5d611691565b611a795760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611aa25760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f54dd351600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906354dd351690610dcf906000908590600401615659565b611b0a613f4a565b506040805160208101909152600854815290565b611b26613f5d565b611b2f8261226a565b610f94611b446000858563ffffffff61242016565b611b59846110af60008263ffffffff61249f16565b61275c565b610fac613f5d565b611b6e613f5d565b611b778261226a565b610a6660008363ffffffff61280d16565b611b90613f4a565b611b998361226a565b611ba28261226a565b610f946000848463ffffffff61286d16565b611bbc611691565b611bd85760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611c015760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fd963729100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063d963729190610a0d906000908690869060040161562a565b611c6b613f5d565b611c748261226a565b610a6660008363ffffffff61290416565b611c8e8261226a565b6040517f81379a5e00000000000000000000000000000000000000000000000000000000815273__TestOperationImpl_____________________906381379a5e90611ce590600090879087908790600401615674565b60006040518083038186803b158015611cfd57600080fd5b505af4158015611d11573d6000803e3d6000fd5b50505050505050565b611d22613f74565b611d2b8261226a565b610a6660008363ffffffff61249f16565b6000610a66818363ffffffff612a5f16565b611d56613f4a565b506040805160208101909152600954815290565b611d72611691565b611d8e5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff16611db75760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f8c5dabd100000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________90638c5dabd190610a0d90600090869086906004016156df565b611e21614025565b506040805160c081018252600b5467ffffffffffffffff808216835268010000000000000000808304821660208501527001000000000000000000000000000000008304821694840194909452780100000000000000000000000000000000000000000000000090910481166060830152600c549081166080830152919091046fffffffffffffffffffffffffffffffff1660a082015290565b611ec3613fd3565b611ecc8261226a565b50600090815260016020818152604092839020835161012081018552815473ffffffffffffffffffffffffffffffffffffffff8082168352600160a01b820460ff908116151584870152750100000000000000000000000000000000000000000090920490911615158287015285518087018752948301546fffffffffffffffffffffffffffffffff808216875270010000000000000000000000000000000090910416858501526060808301959095528551948501865260028301546bffffffffffffffffffffffff80821687526c01000000000000000000000000820416868601527801000000000000000000000000000000000000000000000000900463ffffffff168587015260808201949094526003820154841660a0820152600482015490931660c0840152835180830185526005820154815260e08401528351918201909352600690920154825261010081019190915290565b61202e611691565b61204a5760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166120735760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517f10c87b0600000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________906310c87b0690610a0d90600090869086906004016156c4565b6120dd611691565b6120f95760405162461bcd60e51b81526004016109799061548e565b600d54600160a01b900460ff166121225760405162461bcd60e51b81526004016109799061549e565b600d805460ff60a01b191690556040517fe80f802400000000000000000000000000000000000000000000000000000000815273__AdminImpl_____________________________9063e80f802490610a0d9060009086908690600401615564565b61218c611691565b6121a85760405162461bcd60e51b81526004016109799061548e565b6121b181612a9e565b50565b6121bc613f4a565b6121c4613f4a565b610b528360016122f7565b6121d7613f4a565b6121e08261226a565b506000908152600160209081526040918290208251918201909252600590910154815290565b61220e613f4a565b6122178261226a565b610a668261222c60008263ffffffff61249f16565b6000919063ffffffff612b5f16565b73ffffffffffffffffffffffffffffffffffffffff166000908152600691909101602052604090205460ff1690565b6000546121b190821080156122a2575060008281526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b600e547f496e76616c6964206d61726b6574000000000000000000000000000000000000612c6a565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6122ff613f4a565b612307613f4a565b606061231a60008663ffffffff61257b16565b905061232461405a565b61232e8251612cfd565b905060005b825181101561236a5761236283828151811061234b57fe5b602002602001015183612d5c90919063ffffffff16565b600101612333565b5061237c60008263ffffffff612dc616565b61238f600087838863ffffffff61301516565b9350935050509250929050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260049290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600593909301602090815260408085209290931684525290205460ff1690565b612428613f5d565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526004840160209081526040808320828601518452825280832084845260030182529182902082518084019093525460ff8116151583526fffffffffffffffffffffffffffffffff61010090910416908201529392505050565b6124a7613f74565b506000908152600191909101602090815260409182902082516060810184526002909101546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041692820192909252780100000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b61252b613f74565b612533613f4a565b61254485858563ffffffff612b5f16565b9050612572838261255b888863ffffffff61280d16565b604080516020810190915260098a01548152613178565b95945050505050565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260048301602090815260408083208285015184529091529020606090610f94906001016132e3565b6125c8613f4a565b600083815260018501602052604090206003015473ffffffffffffffffffffffffffffffffffffffff166125fa613f4a565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906341976e099061264c908790600401615374565b60206040518083038186803b15801561266457600080fd5b505afa158015612678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061269c91908101906148f3565b80519091506125729015157f53746f72616765000000000000000000000000000000000000000000000000007f50726963652063616e6e6f74206265207a65726f0000000000000000000000008861333f565b3390565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002602090815260408083205483526001909152902054600e546121b19391909116909114907f496e76616c696420746f6b656e00000000000000000000000000000000000000612c6a565b612764613f5d565b602083015183516fffffffffffffffffffffffffffffffff90911690156127d0576040805180820190915260018152602084810151908201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b815250915050610a66565b6040805180820190915260008152835160208201906127c59084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6133dd16565b612815613f5d565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b612875613f4a565b60088401546000848152600186016020908152604091829020825191820190925260069091015481526128b29082906128ad90613471565b6134a8565b90506128ed816128ad876001016000878152602001908152602001600020600601604051806020016040529081600082015481525050613471565b604080516020810190915290815295945050505050565b61290c613f5d565b612914613f74565b612924848463ffffffff61249f16565b905061292e613f5d565b61293e858563ffffffff61280d16565b90506000612952868663ffffffff6122cb16565b905061295c613f5d565b6040805180820182526001815290517f70a08231000000000000000000000000000000000000000000000000000000008152602082019073ffffffffffffffffffffffffffffffffffffffff8516906370a08231906129bf903090600401615374565b60206040518083038186803b1580156129d757600080fd5b505afa1580156129eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a0f919081019061492f565b90529050612a1b613f5d565b612a23613f5d565b612a2d85876134c1565b9092509050612a5282612a46858463ffffffff61356916565b9063ffffffff61356916565b9998505050505050505050565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526004929092016020908152604080842092820151845291905290205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff8116612ad15760405162461bcd60e51b81526004016109799061545e565b600d5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612b67613f4a565b612b6f613f5d565b612b7f858563ffffffff61280d16565b9050612b89613f5d565b612b91613f5d565b612b9b83866134c1565b91509150612ba7613f4a565b600087815260018901602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1663e8177dcf612be68a8a63ffffffff6122cb16565b846020015186602001516040518463ffffffff1660e01b8152600401612c0e9392919061539d565b60206040518083038186803b158015612c2657600080fd5b505afa158015612c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c5e91908101906148f3565b98975050505050505050565b82612cf857612c7882613583565b7f3a20000000000000000000000000000000000000000000000000000000000000612ca283613583565b604051602001612cb493929190615272565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b82526109799160040161544d565b505050565b612d0561405a565b604080516000606082018181526080830190935290918291612d3d565b612d2a61407b565b815260200190600190039081612d225790505b508152602001612d4c84613657565b8152600060209091015292915050565b815151612dab90157f43616368650000000000000000000000000000000000000000000000000000007f616c726561647920696e697469616c697a656400000000000000000000000000612c6a565b612db9826020015182613691565b5060400180516001019052565b8060400151604051908082528060200260200182016040528015612e0457816020015b612df161407b565b815260200190600190039081612de95790505b5081526000805b826020015151811015612fbb57600083602001518281518110612e2a57fe5b602002602001015190505b8015612fa0576000612e46826136c7565b90506000612e54848361389e565b90506000612e68888363ffffffff6122cb16565b600083815260018a016020526040902054909150600160a01b900460ff1615612f1e576040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff8316602082015260019181019190915260608101612ed18a8563ffffffff61280d16565b516fffffffffffffffffffffffffffffffff168152602001612efa8a858563ffffffff6125c016565b9052875180516001890198908110612f0e57fe5b6020026020010181905250612f8c565b6040805160a08101825283815273ffffffffffffffffffffffffffffffffffffffff831660208201526000918101829052606081019190915260808101612f6c8a858563ffffffff6125c016565b9052875180516001890198908110612f8057fe5b60200260200101819052505b612f9684846138a9565b9350505050612e35565b8360400151831415612fb25750612fbb565b50600101612e0b565b506040820151825151612cf891808414917f53746f7261676500000000000000000000000000000000000000000000000000917f636163686520696e697469616c697a656420696d70726f7065726c7900000000916138b2565b61301d613f4a565b613025613f4a565b61302d613f4a565b613035613f4a565b60006130408761397d565b905060005b8181101561316957613055613f5d565b6130788a6130698b8563ffffffff61398216565b518d919063ffffffff6139fe16565b905061308381613a6d565b1561308e5750613161565b60006130b96130a38b8563ffffffff61398216565b608001515160208401519063ffffffff613a7516565b90506130c3613f4a565b6130cb613aaf565b905089156131165761311360018e0160006130ec8e8863ffffffff61398216565b51815260208082019290925260409081016000208151928301909152600501548152613471565b90505b82511561313f5761313861312a8383613ad1565b88519063ffffffff613aea16565b875261315d565b61315a61314c83836134a8565b87519063ffffffff613aea16565b86525b5050505b600101613045565b50919890975095505050505050565b613180613f74565b613188613f5d565b613190613f5d565b61319a85886134c1565b9150915060006131a8613b0f565b905060006131e06131d28a6040015163ffffffff168463ffffffff16613b1f90919063ffffffff16565b89519063ffffffff613a7516565b905060006131ed85613a6d565b156131fa5750600061322c565b61320482886134a8565b905084602001518460200151101561322c576132298185602001518760200151613b61565b90505b8181111561323657fe5b60408051606081019091528a51819061327f9061327a906bffffffffffffffffffffffff1661326e8188670de0b6b3a7640000613b61565b9063ffffffff613aea16565b613b77565b6bffffffffffffffffffffffff908116825260208d8101519201916132b69161327a911661326e8187670de0b6b3a7640000613b61565b6bffffffffffffffffffffffff1681526020018463ffffffff16815250955050505050505b949350505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561333357602002820191906000526020600020905b81548152602001906001019080831161331f575b50505050509050919050565b836133d75761334d83613583565b7f3a2000000000000000000000000000000000000000000000000000000000000061337784613583565b7f203c0000000000000000000000000000000000000000000000000000000000006133a185613bd6565b604051612cb49594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161529a565b50505050565b60008315806133ea575082155b15613401576133fa600083613ce5565b9050610f94565b6000613413858563ffffffff613a7516565b905061257261343e600161326e6002613432888463ffffffff613b1f16565b9063ffffffff613ce516565b61344e838663ffffffff613d2716565b101561345b57600061345e565b60015b60ff1661326e838663ffffffff613ce516565b613479613f4a565b6040805160208101909152825181906134a090670de0b6b3a764000063ffffffff613aea16565b905292915050565b6000610f94838360000151670de0b6b3a7640000613b61565b6134c9613f5d565b6134d1613f5d565b6134d9613f5d565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff169082015261350c613f5d565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff16602082015261353c613f5d565b613546838761275c565b9050613550613f5d565b61355a838861275c565b91989197509095505050505050565b613571613f5d565b610f948361357e84613d69565b613d90565b60608082604051602001613597919061525d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156136405781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091019082908290811061360357fe5b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561363b5760010181529050610950565b6135ca565b505060408051600081526020810190915292915050565b6060600161010083040160405190808252806020026020018201604052801561368a578160200160208202803883390190505b5092915050565b815161010082049060ff8316906001821b908590849081106136af57fe5b60200260200101818151179150818152505050505050565b600060ff6fffffffffffffffffffffffffffffffff83161561370a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001613712565b608083901c92505b67ffffffffffffffff831615613749577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001613751565b604083901c92505b63ffffffff831615613784577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00161378c565b602083901c92505b61ffff8316156137bd577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016137c5565b601083901c92505b60ff8316156137f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016137fd565b600883901c92505b600f83161561382d577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01613835565b600483901c92505b6003831615613865577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161386d565b600283901c92505b6001831615610a66577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b84613976576138c084613583565b7f3a200000000000000000000000000000000000000000000000000000000000006138ea85613583565b7f203c00000000000000000000000000000000000000000000000000000000000061391486613bd6565b7f2c2000000000000000000000000000000000000000000000000000000000000061393e87613bd6565b604051612cb497969594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016152f8565b5050505050565b515190565b61398a61407b565b8251516139e090808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e646578000000000000000000000000000000000000009086906138b2565b82518051839081106139ee57fe5b6020026020010151905092915050565b613a06613f5d565b613a0e613f5d565b613a1f85858563ffffffff61242016565b9050613a2a81613e22565b15613a3f57613a37613e3c565b915050610f94565b613a47613f74565b613a57868563ffffffff61249f16565b9050613a63828261275c565b9695505050505050565b602001511590565b600082613a8457506000610a66565b82820282848281613a9157fe5b0414610f945760405162461bcd60e51b81526004016109799061547e565b613ab7613f4a565b506040805160208101909152670de0b6b3a7640000815290565b6000610f9483670de0b6b3a76400008460000151613b61565b600082820183811015610f945760405162461bcd60e51b81526004016109799061546e565b6000613b1a42613e5c565b905090565b6000610f9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613eb3565b60006132db82613432868663ffffffff613a7516565b600081610a666bffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74393600000000000000000000008461333f565b606081613c17575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610950565b8160005b8115613c2f57600101600a82049150613c1b565b6060816040519080825280601f01601f191660200182016040528015613c5c576020820181803883390190505b508593509050815b8015613cdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b828281518110613ca257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350613c64565b50949350505050565b6000610f9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613edf565b6000610f9483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613f16565b613d71613f5d565b5060408051808201909152815115815260208083015190820152919050565b613d98613f5d565b613da0613f5d565b8251845115159015151415613dd35783511515815260208085015190840151613dc99190613aea565b6020820152610f94565b8260200151846020015110613dfc5783511515815260208085015190840151613dc99190613b1f565b82511515815260208084015190850151613e169190613b1f565b60208201529392505050565b602001516fffffffffffffffffffffffffffffffff161590565b613e44613f5d565b50604080518082019091526000808252602082015290565b600081610a6663ffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e74333200000000000000000000008461333f565b60008184841115613ed75760405162461bcd60e51b8152600401610979919061544d565b505050900390565b60008183613f005760405162461bcd60e51b8152600401610979919061544d565b506000838581613f0c57fe5b0495945050505050565b60008183613f375760405162461bcd60e51b8152600401610979919061544d565b50828481613f4157fe5b06949350505050565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280613fa7613f4a565b8152602001613fb4613f4a565b8152602001613fc1613f4a565b8152602001613fce613f4a565b905290565b60408051610120810182526000808252602082018190529181019190915260608101613ffd613f5d565b815260200161400a613f74565b81526000602082018190526040820152606001613fc1613f4a565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180606001604052806060815260200160608152602001600081525090565b6040518060a0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160006fffffffffffffffffffffffffffffffff168152602001613fce613f4a565b8035610a6681615982565b600082601f8301126140f057600080fd5b81356141036140fe8261578e565b615767565b81815260209384019390925082018360005b83811015614141578135860161412b8882614325565b8452506020928301929190910190600101614115565b5050505092915050565b600082601f83011261415c57600080fd5b813561416a6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561418f57600080fd5b60005b8381101561414157816141a588826144fe565b84525060209092019160409190910190600101614192565b600082601f8301126141ce57600080fd5b81356141dc6140fe8261578e565b9150818183526020840193506020810190508385604084028201111561420157600080fd5b60005b8381101561414157816142178882614545565b84525060209092019160409190910190600101614204565b600082601f83011261424057600080fd5b813561424e6140fe8261578e565b9150818183526020840193506020810190508385602084028201111561427357600080fd5b60005b83811015614141578161428988826145f0565b8452506020928301929190910190600101614276565b8035610a6681615996565b600082601f8301126142bb57600080fd5b81356142c96140fe826157af565b915080825260208301602083018583830111156142e557600080fd5b6142f0838284615904565b50505092915050565b8035610a668161599f565b8035610a66816159a8565b8035610a66816159b5565b8035610a66816159c2565b6000610160828403121561433857600080fd5b614343610100615767565b905060006143518484614304565b8252506020614362848483016145f0565b602083015250604061437684828501614401565b60408301525060c061438a848285016145f0565b60608301525060e061439e848285016145f0565b6080830152506101006143b3848285016140d4565b60a0830152506101206143c8848285016145f0565b60c08301525061014082013567ffffffffffffffff8111156143e957600080fd5b6143f5848285016142aa565b60e08301525092915050565b60006080828403121561441357600080fd5b61441d6080615767565b9050600061442b848461429f565b825250602061443c8484830161430f565b60208301525060406144508482850161430f565b6040830152506060614464848285016145f0565b60608301525092915050565b60006020828403121561448257600080fd5b61448c6020615767565b9050600061449a84846145f0565b82525092915050565b6000606082840312156144b557600080fd5b6144bf6060615767565b905060006144cd8484614611565b82525060206144de84848301614611565b60208301525060406144f284828501614606565b60408301525092915050565b60006040828403121561451057600080fd5b61451a6040615767565b9050600061452884846140d4565b8252506020614539848483016145f0565b60208301525092915050565b60006040828403121561455757600080fd5b6145616040615767565b9050600061456f84846140d4565b82525060206145398484830161429f565b60006040828403121561459257600080fd5b61459c6040615767565b905060006145aa848461429f565b8252506020614539848483016145e5565b6000602082840312156145cd57600080fd5b6145d76020615767565b9050600061449a84846145fb565b8035610a66816159cf565b8035610a66816159d8565b8051610a66816159d8565b8035610a66816159e1565b8035610a66816159ea565b60006020828403121561462e57600080fd5b60006132db84846140d4565b6000806040838503121561464d57600080fd5b600061465985856140d4565b925050602061466a858286016140d4565b9150509250929050565b6000806040838503121561468757600080fd5b600061469385856140d4565b925050602061466a8582860161429f565b600080600080600080600060e0888a0312156146bf57600080fd5b60006146cb8a8a6140d4565b97505060206146dc8a828b016142f9565b96505060406146ed8a828b016142f9565b95505060606146fe8a828b01614470565b945050608061470f8a828b01614470565b93505060a06147208a828b0161429f565b92505060c06147318a828b0161429f565b91505092959891949750929550565b6000806040838503121561475357600080fd5b823567ffffffffffffffff81111561476a57600080fd5b6147768582860161414b565b925050602083013567ffffffffffffffff81111561479357600080fd5b61466a858286016140df565b6000602082840312156147b157600080fd5b813567ffffffffffffffff8111156147c857600080fd5b6132db848285016141bd565b600080604083850312156147e757600080fd5b823567ffffffffffffffff8111156147fe57600080fd5b6146598582860161422f565b60006020828403121561481c57600080fd5b60006132db8484614470565b60006040828403121561483a57600080fd5b60006132db84846144fe565b6000806060838503121561485957600080fd5b600061486585856144fe565b925050604061466a8582860161431a565b6000806060838503121561488957600080fd5b600061489585856144fe565b925050604061466a858286016145f0565b600080600060a084860312156148bb57600080fd5b60006148c786866144fe565b93505060406148d8868287016145f0565b92505060606148e986828701614580565b9150509250925092565b60006020828403121561490557600080fd5b60006132db84846145bb565b60006020828403121561492357600080fd5b60006132db84846145f0565b60006020828403121561494157600080fd5b60006132db84846145fb565b6000806040838503121561496057600080fd5b600061465985856145f0565b6000806040838503121561497f57600080fd5b600061469385856145f0565b6000806040838503121561499e57600080fd5b60006149aa85856145f0565b925050602061466a858286016142f9565b600080604083850312156149ce57600080fd5b60006149da85856145f0565b925050602061466a85828601614470565b600080608083850312156149fe57600080fd5b6000614a0a85856145f0565b925050602061466a858286016144a3565b60008060408385031215614a2e57600080fd5b6000614a3a85856145f0565b925050602061466a858286016145f0565b6000614a578383614aa3565b505060200190565b6000610f948383614f25565b6000614a778383615059565b505060400190565b6000614a77838361512c565b6000614a77838361521f565b6000614a578383615239565b614aac81615808565b82525050565b6000614abd826157fb565b614ac781856157ff565b9350614ad2836157f5565b8060005b83811015614b00578151614aea8882614a4b565b9750614af5836157f5565b925050600101614ad6565b509495945050505050565b6000614b16826157fb565b614b2081856157ff565b935083602082028501614b32856157f5565b8060005b85811015614b6c5784840389528151614b4f8582614a5f565b9450614b5a836157f5565b60209a909a0199925050600101614b36565b5091979650505050505050565b6000614b84826157fb565b614b8e81856157ff565b9350614b99836157f5565b8060005b83811015614b00578151614bb18882614a6b565b9750614bbc836157f5565b925050600101614b9d565b6000614bd2826157fb565b614bdc81856157ff565b9350614be7836157f5565b8060005b83811015614b00578151614bff8882614a7f565b9750614c0a836157f5565b925050600101614beb565b6000614c20826157fb565b614c2a81856157ff565b9350614c35836157f5565b8060005b83811015614b00578151614c4d8882614a8b565b9750614c58836157f5565b925050600101614c39565b6000614c6e826157fb565b614c7881856157ff565b9350614c83836157f5565b8060005b83811015614b00578151614c9b8882614a97565b9750614ca6836157f5565b925050600101614c87565b6000614cbc826157fb565b614cc681856157ff565b9350614cd1836157f5565b8060005b83811015614b00578151614ce98882614a97565b9750614cf4836157f5565b925050600101614cd5565b614aac81615813565b614aac614d1482615818565b615862565b614aac614d148261583d565b614aac614d1482615862565b6000614d3c826157fb565b614d468185610950565b9350614d56818560208601615910565b9290920192915050565b6000614d6b826157fb565b614d7581856157ff565b9350614d85818560208601615910565b614d8e8161593c565b9093019392505050565b614aac81615865565b614aac816158e3565b614aac816158ee565b614aac816158f9565b6000614dc96026836157ff565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614e28601b836157ff565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614e616021836157ff565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000614ec06020836157ff565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000614ef9601f836157ff565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b8051600090610160840190614f3a8582614da1565b506020830151614f4d6020860182615239565b506040830151614f606040860182614fc7565b506060830151614f7360c0860182615239565b506080830151614f8660e0860182615239565b5060a0830151614f9a610100860182614aa3565b5060c0830151614fae610120860182615239565b5060e08301518482036101408601526125728282614d60565b80516080830190614fd88482614cff565b506020820151614feb6020850182614daa565b506040820151614ffe6040850182614daa565b5060608201516133d76060850182615239565b805160208301906133d78482615239565b805160608301906150338482615254565b5060208201516150466020850182615254565b5060408201516133d76040850182615242565b8051604083019061506a8482614aa3565b5060208201516133d76020850182615239565b805161018083019061508f8482614aa3565b5060208201516150a26020850182614cff565b5060408201516150b56040850182614cff565b5060608201516150c8606085018261520e565b5060808201516150db60a0850182615022565b5060a08201516150ef610100850182614d98565b5060c0820151615103610120850182614d98565b5060e0820151615117610140850182615011565b506101008201516133d7610160850182615011565b8051604083019061513d8482614cff565b5060208201516133d76020850182615230565b805160c0830190615161848261524b565b506020820151615174602085018261524b565b506040820151615187604085018261524b565b50606082015161519a606085018261524b565b5060808201516151ad608085018261524b565b5060a08201516133d760a0850182615230565b805160808301906151d18482615011565b5060208201516151e46020850182615011565b5060408201516151f76040850182615011565b5060608201516133d76060850182615011565b9052565b8051604083019061513d8482615230565b8051604083019061506a8482614cff565b614aac8161588e565b614aac81615862565b614aac816158bc565b614aac816158c5565b614aac816158d2565b60006152698284614d25565b50602001919050565b600061527e8286614d31565b915061528a8285614d19565b6002820191506125728284614d31565b60006152a68289614d31565b91506152b28288614d19565b6002820191506152c28287614d31565b91506152ce8286614d19565b6002820191506152de8285614d31565b91506152ea8284614d08565b506001019695505050505050565b6000615304828b614d31565b9150615310828a614d19565b6002820191506153208289614d31565b915061532c8288614d19565b60028201915061533c8287614d31565b91506153488286614d19565b6002820191506153588285614d31565b91506153648284614d08565b5060010198975050505050505050565b60208101610a668284614aa3565b604081016153908285614aa3565b610f946020830184614cff565b606081016153ab8286614aa3565b6153b86020830185615239565b6132db6040830184615239565b60208082528101610f948184614c63565b608080825281016153e78187614c63565b905081810360208301526153fb8186614ab2565b9050818103604083015261540f8185614bc7565b90508181036060830152613a638184614c15565b60208101610a668284614cff565b60208101610a668284614d98565b60208101610a668284614db3565b60208082528101610f948184614d60565b60208082528101610a6681614dbc565b60208082528101610a6681614e1b565b60208082528101610a6681614e54565b60208082528101610a6681614eb3565b60208082528101610a6681614eec565b60208101610a668284615011565b60608101610a668284615022565b6101808101610a66828461507d565b61022081016154e8828761507d565b6154f6610180830186615022565b6155046101e0830185615011565b612572610200830184615011565b60408101610a66828461512c565b60c08101610a668284615150565b60808101610a6682846151c0565b6060810161554a828661520a565b6155576020830185614aa3565b6132db6040830184614aa3565b60608101615572828661520a565b61557f6020830185614aa3565b6132db6040830184614cff565b610100810161559b828b61520a565b6155a8602083018a614aa3565b6155b56040830189614d98565b6155c26060830188614d98565b6155cf6080830187615011565b6155dc60a0830186615011565b6155e960c0830185614cff565b612a5260e0830184614cff565b60608101615604828661520a565b81810360208301526156168185614b79565b905081810360408301526125728184614b0b565b60608101615638828661520a565b818103602083015261564a8185614cb1565b90506132db6040830184614aa3565b60408101615667828561520a565b610f946020830184615011565b60c08101615682828761520a565b61568f6020830186615059565b61569c6060830185615239565b612572608083018461512c565b606081016156b7828661520a565b6155576020830185615239565b606081016156d2828661520a565b61557f6020830185615239565b606081016156ed828661520a565b6156fa6020830185615239565b6132db6040830184614d98565b60608101615715828661520a565b6157226020830185615239565b6132db6040830184615011565b60408101610a66828461520e565b604081016156678285615011565b60408101610a66828461521f565b60208101610a668284615239565b60405181810167ffffffffffffffff8111828210171561578657600080fd5b604052919050565b600067ffffffffffffffff8211156157a557600080fd5b5060209081020190565b600067ffffffffffffffff8211156157c657600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b6000610a66826158a3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6000610a6682615808565b8061095081615964565b806109508161596e565b8061095081615978565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b67ffffffffffffffff1690565b6bffffffffffffffffffffffff1690565b6000610a6682615870565b6000610a668261587a565b6000610a6682615884565b82818337506000910152565b60005b8381101561592b578181015183820152602001615913565b838111156133d75750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600981106121b157fe5b600281106121b157fe5b600381106121b157fe5b61598b81615808565b81146121b157600080fd5b61598b81615813565b61598b81615865565b600981106121b157600080fd5b600281106121b157600080fd5b600381106121b157600080fd5b61598b8161588e565b61598b81615862565b61598b816158bc565b61598b816158d256fea365627a7a72315820702e3a489732a4232d77c703672137ffc29bafa0f467a147c8080b13c7ac81216c6578706572696d656e74616cf564736f6c63430005100040",
2188
2188
  "sourceMap": "1008:1187:91:-;;;-1:-1:-1;;;1652:24:49;;1107:147:91;8:9:-1;5:2;;;30:1;27;20:12;5:2;1107:147:91;;;;;;;;;;;;;;;;;;;;;1240:2;1244;698:17:123;718:12;-1:-1:-1;;;;;718:10:123;:12;:::i;:::-;740:6;:18;;-1:-1:-1;;;;;;740:18:123;-1:-1:-1;;;;;740:18:123;;;;;;;;773:43;;740:18;;-1:-1:-1;740:18:123;-1:-1:-1;;773:43:123;;-1:-1:-1;;773:43:123;-1:-1:-1;1421:11:127;:18;;-1:-1:-1;;;;;;;1421:18:127;;;;;;1392:31:48;;;:18;:31;;;;;;;;;;;;;;;;;;;;;;;;;1433;;:18;:31;;;;;;;;;;;;;;-1:-1:-1;;;;;;1433:31:48;;;-1:-1:-1;;;;;1433:31:48;;;;-1:-1:-1;;;;;;;;1433:31:48;;;;;;;;-1:-1:-1;;;;;;;;1433:31:48;-1:-1:-1;;;1433:31:48;;;;;;;;;;;-1:-1:-1;;;;;1433:31:48;-1:-1:-1;;;1433:31:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1433:31:48;-1:-1:-1;;;;;1433:31:48;;;;;;;;;-1:-1:-1;1008:1187:91;;-1:-1:-1;1008:1187:91;788:96:120;867:10;788:96;:::o;31:340:-1:-;;150:4;138:9;133:3;129:19;125:30;122:2;;;168:1;165;158:12;122:2;186:20;201:4;186:20;;;177:29;-1:-1;257:1;289:60;345:3;325:9;289:60;;;264:86;;-1:-1;275:5;116:255;-1:-1;;116:255;410:1197;;539:4;527:9;522:3;518:19;514:30;511:2;;;557:1;554;547:12;511:2;575:20;590:4;575:20;;;566:29;-1:-1;655:1;687:59;742:3;722:9;687:59;;;662:85;;-1:-1;824:2;857:59;912:3;888:22;;;857:59;;;850:4;843:5;839:16;832:85;768:160;989:2;1022:59;1077:3;1068:6;1057:9;1053:22;1022:59;;;1015:4;1008:5;1004:16;997:85;938:155;1155:2;1188:59;1243:3;1234:6;1223:9;1219:22;1188:59;;;1181:4;1174:5;1170:16;1163:85;1103:156;1321:3;1355:59;1410:3;1401:6;1390:9;1386:22;1355:59;;;1348:4;1341:5;1337:16;1330:85;1269:157;1491:3;1525:60;1581:3;1572:6;1561:9;1557:22;1525:60;;;1518:4;1511:5;1507:16;1500:86;1436:161;505:1102;;;;;1646:931;;1775:4;1763:9;1758:3;1754:19;1750:30;1747:2;;;1793:1;1790;1783:12;1747:2;1811:20;1826:4;1811:20;;;1802:29;-1:-1;1888:1;1920:79;1995:3;1975:9;1920:79;;;1895:105;;-1:-1;2074:2;2107:79;2182:3;2158:22;;;2107:79;;;2100:4;2093:5;2089:16;2082:105;2021:177;2256:2;2289:79;2364:3;2355:6;2344:9;2340:22;2289:79;;;2282:4;2275:5;2271:16;2264:105;2208:172;2442:2;2475:80;2551:3;2542:6;2531:9;2527:22;2475:80;;;2468:4;2461:5;2457:16;2450:106;2390:177;1741:836;;;;;2960:134;3038:13;;3056:33;3038:13;3056:33;;;3023:71;;;;;3101:134;3179:13;;3197:33;3179:13;3197:33;;3242:132;3319:13;;3337:32;3319:13;3337:32;;3381:517;;;3571:3;3559:9;3550:7;3546:23;3542:33;3539:2;;;3588:1;3585;3578:12;3539:2;3623:1;3640:93;3725:7;3705:9;3640:93;;;3630:103;;3602:137;3770:3;3789:93;3874:7;3865:6;3854:9;3850:22;3789:93;;;3779:103;;3749:139;3533:365;;;;;;3905:256;3967:2;3961:9;3993:17;;;-1:-1;;;;;4053:34;;4089:22;;;4050:62;4047:2;;;4125:1;4122;4115:12;4047:2;4141;4134:22;3945:216;;-1:-1;3945:216;4168:113;-1:-1;;;;;4230:46;;4213:68;4288:72;4350:5;4333:27;4367:96;-1:-1;;;;;4428:30;;4411:52;4470:117;4539:24;4557:5;4539:24;;;4532:5;4529:35;4519:2;;4578:1;4575;4568:12;4519:2;4513:74;;4594:117;4663:24;4681:5;4663:24;;4718:115;4786:23;4803:5;4786:23;;4760:73;1008:1187:91;;;;;;",
2189
- "deployedSourceMap": "1008:1187:91:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1008:1187:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5420:471:49;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5587:292:47;;;;;;;;;:::i;:::-;;10872:174:49;;;;;;;;;:::i;:::-;;;;;;;;2867:210;;;;;;;;;:::i;:::-;;;;;;;;4588:292:47;;;;;;;;;:::i;9248:256:49:-;;;;;;;;;:::i;:::-;;;;;;;;;4021:225;;;;;;;;;:::i;:::-;;;;;;;;4252:234;;;;;;;;;:::i;4734:236::-;;;;;;;;;:::i;:::-;;;;;;;;2736:125;;;:::i;:::-;;;;;;;;2262:317:47;;;;;;;;;:::i;7229:258::-;;;;;;;;;:::i;6453:238::-;;;;;;;;;:::i;9034:208:49:-;;;;;;;;;:::i;6860:240:47:-;;;;;;;;;:::i;10664:202:49:-;;;;;;;;;:::i;7748:255::-;;;;;;;;;:::i;:::-;;;;;;;;5095:292:47;;;;;;;;;:::i;1734:150:49:-;;;:::i;3758:257::-;;;;;;;;;:::i;:::-;;;;;;;;5195:219;;;;;;;;;:::i;4976:213::-;;;;;;;;;:::i;2384:143::-;;;:::i;:::-;;;;;;;;9779:879;;;;;;;;;:::i;:::-;;;;;;;;;;;1684:137:123;;;:::i;2216:162:49:-;;;:::i;1576:199:91:-;;;;;;;;;:::i;2745:569:47:-;;;;;;;;;:::i;1806:377:51:-;;;;;;;;;:::i;5897:247:49:-;;;;;;;;;:::i;899:77:123:-;;;:::i;1250:92::-;;;:::i;1855:313:47:-;;;;;;;;;:::i;3083:211:49:-;;;;;;;;;:::i;8809:219::-;;;;;;;;;:::i;2066:260:50:-;;;;;;;;;:::i;1781:412:91:-;;;;;;;;;:::i;7019:491:49:-;;;;;;;;;:::i;:::-;;;;;;;;;;;6063:224:47;;;;;;;;;:::i;1890:162:49:-;;;:::i;8244:369::-;;;;;;;;;:::i;:::-;;;;;;;;8009:229;;;;;;;;;:::i;3300:223::-;;;;;;;;;:::i;:::-;;;;;;;;6450:346;;;;;;;;;:::i;3482:272:47:-;;;;;;;;;:::i;7516:226:49:-;;;;;;;;;:::i;1312:258:91:-;;;;;;;;;:::i;3529:223:49:-;;;;;;;;;:::i;8619:184::-;;;;;;;;;:::i;:::-;;;;;;;;2058:152;;;:::i;4244:277:47:-;;;;;;;;;:::i;2533:143:49:-;;;:::i;:::-;;;;;;;;6802:211;;;;;;;;;:::i;:::-;;;;;;;;3919:261:47;;;;;;;;;:::i;7735:269::-;;;;;;;;;:::i;1970:107:123:-;;;;;;;;;:::i;9510:263:49:-;;;;;;;;;:::i;4492:236::-;;;;;;;;;:::i;6150:294::-;;;;;;;;;:::i;5420:471::-;5520:13;5549:12;5564:1;5549:16;;5575:21;5610:1;5599:13;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5599:13:49;-1:-1:-1;5668:2:49;5622:12;5637:35;:25;:35;;;;5575:37;;-1:-1:-1;5714:147:49;5721:12;;;;;:27;;;5747:1;5737:7;:11;5721:27;5714:147;;;5785:7;5764;5772:9;;;;;;5764:18;;;;;;;;;;;;;;;;;;:28;;;;5816:7;:34;;;:25;:34;;;;;;5714:147;;;-1:-1:-1;5877:7:49;-1:-1:-1;;5420:471:49;;;;:::o;5587:292:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;5761:111:47;;;;;:9;;:31;;:111;;2070:5:127;;5827:8:47;;5849:13;;5761:111;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5761:111:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;-1:-1:-1;;;;5587:292:47:o;10872:174:49:-;10978:4;11005:34;10978:4;11030:8;11005:34;:24;:34;:::i;:::-;10998:41;10872:174;-1:-1:-1;;10872:174:49:o;2867:210::-;2975:7;2998:29;3018:8;2998:19;:29::i;:::-;3044:26;:7;3061:8;3044:26;:16;:26;:::i;4588:292:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;4760:113:47;;;;;:9;;:32;;:113;;2070:5:127;;4827:8:47;;4849:14;;4760:113;;;;9248:256:49;9362:21;;:::i;:::-;9385;;:::i;:::-;9429:68;9455:7;9491:5;9429:25;:68::i;:::-;9422:75;;;;9248:256;;;:::o;4021:225::-;4128:12;4156:29;4176:8;4156:19;:29::i;:::-;-1:-1:-1;4202:7:49;:25;;;:15;:25;;;;;:37;;;;;;4021:225::o;4252:234::-;4362:15;4393:29;4413:8;4393:19;:29::i;:::-;-1:-1:-1;4439:7:49;:25;;;:15;:25;;;;;:40;;;;;;4252:234::o;4734:236::-;4843:19;;:::i;:::-;4878:29;4898:8;4878:19;:29::i;:::-;-1:-1:-1;4924:7:49;:25;;;:15;:25;;;;;;;;;4917:46;;;;;;;;4924:39;;;;4917:46;;;;4734:236::o;2736:125::-;2806:7;2836:18;2736:125;:::o;2262:317:47:-;2429:7;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;2459:113:47;;;;;:9;;:40;;:113;;2070:5:127;;2534::47;;2553:9;;2459:113;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2459:113:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2459:113:47;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2459:113:47;;;;;;;;;2452:120;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;2262:317:47;;-1:-1:-1;;2262:317:47:o;7229:258::-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;7385:95:47;;;;;:9;;:34;;:95;;2070:5:127;;7454:16:47;;7385:95;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7385:95:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;-1:-1:-1;;;7229:258:47:o;6453:238::-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;6598:86:47;;;;;:9;;:35;;:86;;2070:5:127;;6668:6:47;;6598:86;;;;9034:208:49;9160:7;9190:45;9160:7;9227;9190:45;:36;:45;:::i;6860:240:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;7006:87:47;;;;;:9;;:30;;:87;;2070:5:127;;7071:12:47;;7006:87;;;;10664:202:49;10792:4;10819:40;10792:4;10843:5;10850:8;10819:40;:23;:40;:::i;:::-;10812:47;10664:202;-1:-1:-1;;;10664:202:49:o;7748:255::-;7885:16;;:::i;:::-;7917:29;7937:8;7917:19;:29::i;:::-;7963:33;:7;7978;7987:8;7963:33;:14;:33;:::i;5095:292:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;5269:111:47;;;;;:9;;:31;;:111;;2070:5:127;;5335:8:47;;5357:13;;5269:111;;;;1734:150:49;1805:19;;:::i;:::-;-1:-1:-1;1840:37:49;;;;;;;;;1847:18;1840:37;;;1734:150;:::o;3758:257::-;3866:21;;:::i;:::-;3903:29;3923:8;3903:19;:29::i;:::-;3949:59;3971:8;3981:26;:7;3971:8;3981:26;:16;:26;:::i;:::-;3949:7;;:59;;:21;:59;:::i;5195:219::-;5303:4;5323:29;5343:8;5323:19;:29::i;:::-;-1:-1:-1;5369:7:49;:25;;;:15;:25;;;;;:38;;;;;;;5195:219::o;4976:213::-;5081:4;5101:29;5121:8;5101:19;:29::i;:::-;-1:-1:-1;5147:7:49;:25;;;:15;:25;;;;;:35;-1:-1:-1;;;5147:35:49;;;;;4976:213::o;2384:143::-;2454:25;;:::i;:::-;-1:-1:-1;2495:25:49;;;;;;;;2502:18;2495:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2495:25:49;;;;;;;;;;;;;;;;;;;;2384:143;:::o;9779:879::-;9908:13;;;;;10067:39;:7;10098;10067:39;:30;:39;:::i;:::-;10040:66;;10116:23;10156:7;:14;10142:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;10142:29:49;;10116:55;;10181:23;10223:7;:14;10207:31;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;10181:57;;10248:23;10290:7;:14;10274:31;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;10248:57:49;-1:-1:-1;10321:9:49;10316:231;10340:7;:14;10336:1;:18;10316:231;;;10387:33;10409:7;10417:1;10409:10;;;;;;;;;;;;;;10387:21;:33::i;:::-;10375:6;10382:1;10375:9;;;;;;;;;;;;;:45;;;;;;;;;;;10444:34;10458:7;10467;10475:1;10467:10;;;;;;;;;;;;;;10444:13;:34::i;:::-;10434:4;10439:1;10434:7;;;;;;;;;;;;;:44;;;;10502:34;10516:7;10525;10533:1;10525:10;;;;;;;;;;;;;;10502:13;:34::i;:::-;10492:4;10497:1;10492:7;;;;;;;;;;;;;;;;;:44;10356:3;;10316:231;;;-1:-1:-1;10578:7:49;;10599:6;;-1:-1:-1;10599:6:49;-1:-1:-1;10578:7:49;;-1:-1:-1;9779:879:49;-1:-1:-1;;9779:879:49:o;1684:137:123:-;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1766:6;;1745:40;;1782:1;;1745:40;1766:6;;1745:40;;1782:1;;1745:40;1795:6;:19;;;;;;1684:137::o;2216:162:49:-;2292:21;;:::i;:::-;-1:-1:-1;2329:42:49;;;;;;;;;2336:35;2329:42;;;2216:162;:::o;1576:199:91:-;1722:13;;1705:31;;:7;:31;;;:16;:31;;;;;;;;1737:14;;;;1705:47;;;;;;;:63;;1762:6;;1705:47;:63;;;1762:6;1705:63;;;;;;;;;;;;;1576:199;;:::o;2745:569:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;3077:230:47;;;;;:9;;:24;;:230;;2070:5:127;;3136::47;;3155:11;;3180:14;;3208:13;;3235;;3262:9;;3285:12;;3077:230;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3077:230:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;-1:-1:-1;;;;;;;;;2745:569:47:o;1806:377:51:-;1909:9;1904:273;1928:4;:11;1924:1;:15;1904:273;;;1960:16;1979:4;1984:1;1979:7;;;;;;;;;;;;;;:16;;;1960:35;;2009:12;2024:4;2029:1;2024:7;;;;;;;;;;;;;;;;;;;:15;;;2071:10;2053:7;:29;;;:17;:29;;;;;;;:39;;;;;;;;;;:49;;;;;;;;;;2121:45;;2024:15;;-1:-1:-1;2121:45:51;;;;2053:39;;2024:15;;2121:45;;;;;;;;;;-1:-1:-1;;1941:3:51;;1904:273;;;;1806:377;:::o;5897:247:49:-;5998:21;;:::i;:::-;6035:29;6055:8;6035:19;:29::i;:::-;6081:56;6100:8;6110:26;:7;6100:8;6110:26;:16;:26;:::i;:::-;6081:7;;:56;;:18;:56;:::i;899:77:123:-;963:6;;;;899:77;:::o;1250:92::-;1329:6;;1290:4;;1329:6;;1313:12;:10;:12::i;:::-;:22;;;1306:29;;1250:92;:::o;1855:313:47:-;2020:7;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;2050:111:47;;;;;:9;;:35;;:111;;2070:5:127;;2120:8:47;;2142:9;;2050:111;;;;3083:211:49;3192:7;3215:25;3234:5;3215:18;:25::i;:::-;-1:-1:-1;3257:30:49;;:7;:30;;;:23;:30;;;;;;;3083:211::o;8809:219::-;8943:16;8982:39;:7;9013;8982:39;:30;:39;:::i;2066:260:50:-;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;2224:95:50;;;;;:13;;:21;;:95;;2070:5:127;;2280:8:50;;2302:7;;2224:95;;;;1781:412:91;1901:30;;:::i;:::-;-1:-1:-1;1934:7:91;:23;;;:15;:23;;;;;;;;;1901:62;;;;;;;1934:29;;;;1901:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1978:12;;:17;1974:78;;2026:15;;2011:30;;;;1974:78;2065:12;;;;:17;;2061:78;;2113:15;;;;;2098:30;;:12;;;:30;2061:78;-1:-1:-1;2149:7:91;:23;;;:15;:23;;;;;;;;;:37;;:29;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1781:412::o;7019:491:49:-;7136:21;;:::i;:::-;7171;;:::i;:::-;7206;;:::i;:::-;7241:20;;:::i;:::-;7286:29;7306:8;7286:19;:29::i;:::-;7346:19;7356:8;7346:9;:19::i;:::-;7379:31;7401:8;7379:21;:31::i;:::-;7424:24;7439:8;7424:14;:24::i;:::-;7462:31;7484:8;7462:21;:31::i;:::-;7325:178;;;;;;;;7019:491;;;;;:::o;6063:224:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;6201:79:47;;;;;:9;;:29;;:79;;2070:5:127;;6265::47;;6201:79;;;;1890:162:49;1967:19;;:::i;:::-;-1:-1:-1;2002:43:49;;;;;;;;;2009:36;2002:43;;;1890:162;:::o;8244:369::-;8381:16;;:::i;:::-;8413:29;8433:8;8413:19;:29::i;:::-;8459:147;8490:33;:7;8505;8514:8;8490:33;:14;:33;:::i;:::-;8537:59;8559:8;8569:26;:7;8559:8;8569:26;:16;:26;:::i;8537:59::-;8459:17;:147::i;8009:229::-;8159:16;;:::i;3300:223::-;3404:21;;:::i;:::-;3441:29;3461:8;3441:19;:29::i;:::-;3487;:7;3507:8;3487:29;:19;:29;:::i;6450:346::-;6598:19;;:::i;:::-;6633:33;6653:12;6633:19;:33::i;:::-;6676;6696:12;6676:19;:33::i;:::-;6726:63;:7;6762:12;6776;6726:63;:35;:63;:::i;3482:272:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;3643:104:47;;;;;:9;;:28;;:104;;2070:5:127;;3706:9:47;;3729:8;;3643:104;;;;7516:226:49;7621:16;;:::i;:::-;7653:29;7673:8;7653:19;:29::i;:::-;7699:36;:7;7726:8;7699:36;:26;:36;:::i;1312:258:91:-;1468:27;1488:6;1468:19;:27::i;:::-;1505:58;;;;;:17;;:24;;:58;;1530:7;;1539;;1548:6;;1556;;1505:58;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1505:58:91;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1505:58:91;;;;1312:258;;;:::o;3529:223:49:-;3636:21;;:::i;:::-;3673:29;3693:8;3673:19;:29::i;:::-;3719:26;:7;3736:8;3719:26;:16;:26;:::i;8619:184::-;8733:14;8770:26;8733:14;8788:7;8770:26;:17;:26;:::i;2058:152::-;2130:19;;:::i;:::-;-1:-1:-1;2165:38:49;;;;;;;;;2172:31;2165:38;;;2058:152;:::o;4244:277:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;4407:107:47;;;;;:9;;:29;;:107;;2070:5:127;;4471:8:47;;4493:11;;4407:107;;;;2533:143:49;2603:25;;:::i;:::-;-1:-1:-1;2644:25:49;;;;;;;;2651:18;2644:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2533:143::o;6802:211::-;6898:21;;:::i;:::-;6935:29;6955:8;6935:19;:29::i;:::-;-1:-1:-1;6981:7:49;:25;;;:15;:25;;;;;;;;;6974:32;;;;;;;;;;;;;;;-1:-1:-1;;;6974:32:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6802:211::o;3919:261:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;4070:103:47;;;;;:9;;:27;;:103;;2070:5:127;;4132:8:47;;4154:9;;4070:103;;;;7735:269;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;7890:107:47;;;;;:9;;:32;;:107;;2070:5:127;;7957:8:47;;7979;;7890:107;;;;1970::123;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;2042:28;2061:8;2042:18;:28::i;:::-;1970:107;:::o;9510:263:49:-;9632:21;;:::i;:::-;9655;;:::i;:::-;9699:67;9725:7;9761:4;9699:25;:67::i;4492:236::-;4601:19;;:::i;:::-;4636:29;4656:8;4636:19;:29::i;:::-;-1:-1:-1;4682:7:49;:25;;;:15;:25;;;;;;;;;4675:46;;;;;;;;4682:39;;;;4675:46;;;;4492:236::o;6150:294::-;6258:20;;:::i;:::-;6294:29;6314:8;6294:19;:29::i;:::-;6340:97;6379:8;6401:26;:7;6379:8;6401:26;:16;:26;:::i;:::-;6340:7;;:97;;:25;:97;:::i;13945:207:77:-;14114:31;;14087:4;14114:31;;;:21;;;;;:31;;;;;;;;;13945:207::o;11174:274:49:-;11316:7;:18;11279:162;;11305:29;;:78;;;;-1:-1:-1;11381:1:49;11338:25;;;:15;:25;;;;;:31;:45;:31;:45;;11305:78;11397:4;;11279:162;:12;:162::i;6021:200:77:-;6155:7;6185:23;;;:13;;;;;:23;;;;;:29;;;;6021:200::o;11797:606:49:-;11954:21;;:::i;:::-;11977;;:::i;:::-;12014:24;12041:39;:7;12072;12041:39;:30;:39;:::i;:::-;12014:66;;12117:30;;:::i;:::-;12150:28;12163:7;:14;12150:12;:28::i;:::-;12117:61;-1:-1:-1;12193:9:49;12188:91;12212:7;:14;12208:1;:18;12188:91;;;12247:21;12257:7;12265:1;12257:10;;;;;;;;;;;;;;12247:5;:9;;:21;;;;:::i;:::-;12228:3;;12188:91;;;-1:-1:-1;12288:30:49;:7;12312:5;12288:30;:23;:30;:::i;:::-;12336:60;:7;12361;12370:5;12377:18;12336:60;:24;:60;:::i;:::-;12329:67;;;;;;11797:606;;;;;:::o;9027:261:77:-;9225:13;;9210:29;;9180:7;9210:29;;;:14;;;;;:29;;;;;;;;9240:14;;;;9210:45;;;;;;;:71;;;;;;;9027:261::o;14158:230::-;14349:22;;;;14322:4;14349:22;;;:15;;;;;:22;;;;;;;;:32;;;;;;;;;;;;;14158:230::o;7721:279::-;7890:16;;:::i;:::-;-1:-1:-1;7944:13:77;;7929:29;;;;;;:14;;;:29;;;;;;;;7959:14;;;;7929:45;;;;;;;:64;;;:54;;:64;;;;;;7922:71;;;;;;;;;;;;;;;;;;;;;;;;;;7721:279;;;;;:::o;6453:214::-;6587:21;;:::i;:::-;-1:-1:-1;6631:23:77;;;;:13;;;;;:23;;;;;;;;;6624:36;;;;;;;6631:29;;;;6624:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6453:214::o;9850:463::-;10026:21;;:::i;:::-;10063:25;;:::i;:::-;10091:40;:5;10115:8;10125:5;10091:40;:23;:40;:::i;:::-;10063:68;-1:-1:-1;10149:157:77;10189:5;10063:68;10226:27;:5;10244:8;10226:27;:17;:27;:::i;:::-;10149:157;;;;;;;;;10267:29;;;10149:157;;;:26;:157::i;:::-;10142:164;9850:463;-1:-1:-1;;;;;9850:463:77:o;8745:276::-;8946:13;;8931:29;;;;;;:14;;;:29;;;;;;;;8961:14;;;;8931:45;;;;;;;8892:16;;8931:83;;:74;;:81;:83::i;10971:496::-;11130:21;;:::i;:::-;11167:19;11202:23;;;:13;;;:23;;;;;:35;;;;;11248:27;;:::i;:::-;11278:22;;;;;:15;;;;;;:22;;11294:5;;11278:22;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11278:22:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11278:22:77;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11278:22:77;;;;;;;;;11336:11;;11248:52;;-1:-1:-1;11310:128:77;;11336:16;;11366:4;11310:128;11420:8;11310:12;:128::i;788:96:120:-;867:10;788:96;:::o;11454:252:49:-;11605:30;;;;11589:7;11605:30;;;:23;:30;;;;;;;;;11589:47;;:15;:47;;;;;:53;11656:4;;11554:145;;11589:53;;;;11580:62;;;;11554:145;:12;:145::i;3843:567:73:-;3974:16;;:::i;:::-;4035:11;;;;4061:10;;4027:20;;;;;4057:347;;;4094:130;;;;;;;;;4128:4;4094:130;;;4190:12;;;;4094:130;;;;4157:52;;:10;;:52;;1200:6;4157:52;:32;:52;:::i;:::-;4094:130;;;4087:137;;;;;4057:347;4262:131;;;;;;;;;-1:-1:-1;4262:131:73;;4359:12;;4262:131;;;;4326:52;;:10;;:52;;1200:6;4326:52;:32;:52;:::i;6227:220:77:-;6364:21;;:::i;:::-;-1:-1:-1;6408:23:77;;;;:13;;;;:23;;;;;;;;;6401:39;;;;;;;;6408:32;;;6401:39;;;;;;;;;;;;;;;;6227:220;;;;:::o;9294:550::-;9481:19;;:::i;:::-;9533:34;;;:40;9516:14;9628:27;;;9533:34;9628:13;;:27;;;;;;;;;9612:58;;;;;;;;9628:41;;;;9612:58;;;9592:79;;9533:40;;9612:58;;:15;:58::i;:::-;9592:11;:79::i;:::-;9583:88;;9690:79;9702:6;9710:58;9726:5;:13;;:27;9740:12;9726:27;;;;;;;;;;;:41;;9710:58;;;;;;;;;;;;;;;;;:15;:58::i;9690:79::-;9786:51;;;;;;;;;;;;;9294:550;-1:-1:-1;;;;;9294:550:77:o;6673:794::-;6817:16;;:::i;:::-;6849:27;;:::i;:::-;6879:24;:5;6894:8;6879:24;:14;:24;:::i;:::-;6849:54;;6913:30;;:::i;:::-;6946:27;:5;6964:8;6946:27;:17;:27;:::i;:::-;6913:60;-1:-1:-1;6984:13:77;7000:24;:5;7015:8;7000:24;:14;:24;:::i;:::-;6984:40;;7035:27;;:::i;:::-;7065:112;;;;;;;;7095:4;7065:112;;7120:46;;;;;7065:112;;;;7120:31;;;;;;:46;;7160:4;;7120:46;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7120:46:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7120:46:77;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7120:46:77;;;;;;;;;7065:112;;7035:142;-1:-1:-1;7202:26:77;;:::i;:::-;7242;;:::i;:::-;7281:39;7304:8;7314:5;7281:22;:39::i;:::-;7188:132;;-1:-1:-1;7188:132:77;-1:-1:-1;7420:40:77;7188:132;7420:25;:10;7188:132;7420:25;:14;:25;:::i;:::-;:29;:40;:29;:40;:::i;:::-;7413:47;6673:794;-1:-1:-1;;;;;;;;;6673:794:77:o;7473:242::-;7671:13;;7656:29;;7619:14;7656:29;;;:14;;;;;:29;;;;;;;;7686:14;;;;7656:45;;;;;;;:52;;;;7473:242::o;2178:225:123:-;2251:22;;;2243:73;;;;-1:-1:-1;;;2243:73:123;;;;;;;;;2352:6;;2331:38;;;;;;;2352:6;;2331:38;;2352:6;;2331:38;2379:6;:17;;;;;;;;;;;;;;;2178:225::o;10319:646:77:-;10499:20;;:::i;:::-;10535:30;;:::i;:::-;10568:27;:5;10586:8;10568:27;:17;:27;:::i;:::-;10535:60;;10619:26;;:::i;:::-;10659;;:::i;:::-;10698:39;10721:8;10731:5;10698:22;:39::i;:::-;10605:132;;;;10748:25;;:::i;:::-;10776:23;;;;:13;;;:23;;;;;:38;;;;;:54;10844:24;10776:5;10790:8;10844:24;:14;:24;:::i;:::-;10882:9;:15;;;10911:9;:15;;;10776:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10776:160:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10776:160:77;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10776:160:77;;;;;;;;;10748:188;10319:646;-1:-1:-1;;;;;;;;10319:646:77:o;1294:426:76:-;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1500:171:76;;;;-1:-1:-1;;;1448:255:76;;;;;;;;1423:291;1294:426;;;:::o;1453:299:68:-;1550:18;;:::i;:::-;1591:154;;;-1:-1:-1;1591:154:68;;;1626:19;;;;;;;;;1591:154;;;;1626:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1591:154;;;;1674:30;1693:10;1674:18;:30::i;:::-;1591:154;;1733:1;1591:154;;;;;1584:161;1453:299;-1:-1:-1;;1453:299:68:o;2613:453::-;2883:13;;:20;2857:114;;2883:25;2922:4;2857:114;:12;:114::i;:::-;2982:42;2994:5;:19;;;3015:8;2982:11;:42::i;:::-;-1:-1:-1;3035:19:68;;:24;;3058:1;3035:24;;;2613:453::o;22398:2105:77:-;22569:5;:19;;;22546:43;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;22530:59:77;;:13;;22939:1352;22960:5;:19;;;:26;22956:1;:30;22939:1352;;;23007:11;23021:5;:19;;;23041:1;23021:22;;;;;;;;;;;;;;23007:36;;23057:1137;23064:11;;23057:1137;;23095:15;23113:35;23141:6;23113:27;:35::i;:::-;23095:53;;23166:13;23182:38;23206:1;23209:10;23182:23;:38::i;:::-;23166:54;-1:-1:-1;23238:13:77;23254:24;:5;23166:54;23254:24;:14;:24;:::i;:::-;23300:23;;;;:13;;;:23;;;;;:33;23238:40;;-1:-1:-1;;;;23300:33:77;;;;23296:786;;;23384:280;;;;;;;;;;;;;;;;;;23508:4;23384:280;;;;;;;;;;23545:27;:5;23433:8;23545:27;:17;:27;:::i;:::-;:34;23384:280;;;;;;23608:33;:5;23625:8;23635:5;23608:33;:16;:33;:::i;:::-;23384:280;;23357:13;;:24;;23371:9;;;;;23357:24;;;;;;;;;;;:307;;;;23296:786;;;23815:248;;;;;;;;;;;;;;;;;;-1:-1:-1;23815:248:77;;;;;;;;;;;;;;;;24007:33;:5;23864:8;23901:5;24007:33;:16;:33;:::i;:::-;23815:248;;23788:13;;:24;;23802:9;;;;;23788:24;;;;;;;;;;;:275;;;;23296:786;24146:33;24160:6;24168:10;24146:13;:33::i;:::-;24137:42;;23057:1137;;;;;;24222:5;:19;;;24211:7;:30;24207:74;;;24261:5;;;24207:74;-1:-1:-1;22988:3:77;;22939:1352;;;-1:-1:-1;24327:19:77;;;;24466:13;;:20;24301:195;;24327:30;;;;24371:4;;24301:195;;:12;:195::i;11473:1243::-;11699:21;;:::i;:::-;11722;;:::i;:::-;11759:33;;:::i;:::-;11802;;:::i;:::-;11846:18;11867:21;:5;:19;:21::i;:::-;11846:42;-1:-1:-1;11903:9:77;11898:768;11922:10;11918:1;:14;11898:768;;;11953:24;;:::i;:::-;11980:51;11993:7;12002:19;:5;12019:1;12002:19;:16;:19;:::i;:::-;:28;11980:5;;:51;;:12;:51;:::i;:::-;11953:78;;12050:16;:7;:14;:16::i;:::-;12046:63;;;12086:8;;;12046:63;12123:18;12144:50;12162:19;:5;12179:1;12162:19;:16;:19;:::i;:::-;:25;;;:31;12144:13;;;;;:50;:17;:50;:::i;:::-;12123:71;;12208:26;;:::i;:::-;12237:13;:11;:13::i;:::-;12208:42;;12268:18;12264:140;;;12315:74;12331:13;;;:43;12345:19;:5;12362:1;12345:19;:16;:19;:::i;:::-;:28;12331:43;;;;;;;;;;;;;;12345:28;12331:43;12315:74;;;;;;;;12331:57;;12315:74;;;:15;:74::i;:::-;12306:83;;12264:140;12422:12;;12418:238;;;12474:54;12496:31;12508:10;12520:6;12496:11;:31::i;:::-;12474:17;;;:54;:21;:54;:::i;:::-;12454:74;;12418:238;;;12587:54;12609:31;12621:10;12633:6;12609:11;:31::i;:::-;12587:17;;;:54;:21;:54;:::i;:::-;12567:74;;12418:238;11898:768;;;;11934:3;;11898:768;;;-1:-1:-1;12684:11:77;;12697;;-1:-1:-1;11473:1243:77;-1:-1:-1;;;;;;11473:1243:77:o;2227:1299:73:-;2443:12;;:::i;:::-;2485:26;;:::i;:::-;2525;;:::i;:::-;2564:30;2578:8;2588:5;2564:13;:30::i;:::-;2471:123;;;;2652:18;2673;:16;:18::i;:::-;2652:39;;2701:22;2726:58;2741:42;2766:5;:16;;;2741:42;;2749:11;2741:20;;:24;;:42;;;;:::i;:::-;2726:10;;;:58;:14;:58;:::i;:::-;2701:83;;2842:22;2878:23;2891:9;2878:12;:23::i;:::-;2874:328;;;-1:-1:-1;2934:1:73;2874:328;;;2983:41;2995:14;3011:12;2983:11;:41::i;:::-;2966:58;;3060:9;:15;;;3042:9;:15;;;:33;3038:154;;;3112:65;3128:14;3144:9;:15;;;3161:9;:15;;;3112;:65::i;:::-;3095:82;;3038:154;3236:14;3218;:32;;3211:40;;;;3269:250;;;;;;;;;3353:12;;3269:250;;3297:76;;:69;;;;:51;:69;3327:14;1200:6;3297:15;:51::i;:::-;:55;:69;:55;:69;:::i;:::-;:74;:76::i;:::-;3269:250;;;;;;;3451:12;;;;3269:250;;;3395:76;;:69;;;:51;:69;3425:14;1200:6;3395:15;:51::i;:76::-;3269:250;;;;;;3497:11;3269:250;;;;;3262:257;;;;;;;2227:1299;;;;;;;:::o;4037:109:70:-;4093:16;4128:3;:11;;4121:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4037:109;;;:::o;1726:561:76:-;1886:4;1881:400;;2000:24;2019:4;2000:18;:24::i;:::-;2050:5;2081:26;2100:6;2081:18;:26::i;:::-;2133:6;2165:19;2175:8;2165:9;:19::i;:::-;1958:280;;;;;;;;;2210:6;;1958:280;;;;1881:400;1726:561;;;;:::o;2059:724:74:-;2223:7;2250:11;;;:29;;-1:-1:-1;2265:14:74;;2250:29;2246:151;;;2358:28;2371:1;2374:11;2358:12;:28::i;:::-;2351:35;;;;2246:151;2406:11;2420:21;:6;2431:9;2420:21;:10;:21;:::i;:::-;2406:35;-1:-1:-1;2680:96:74;2735:32;2765:1;2735:25;2758:1;2735:18;:11;2765:1;2735:18;:15;:18;:::i;:::-;:22;:25;:22;:25;:::i;:32::-;2708:23;:6;2719:11;2708:23;:10;:23;:::i;:::-;:59;;:67;;2774:1;2708:67;;;2770:1;2708:67;2680:96;;:23;:6;2691:11;2680:23;:10;:23;:::i;1283:168:69:-;1376:11;;:::i;:::-;1410:34;;;;;;;;;1424:7;;1410:34;;1424:17;;1006:6;1424:17;:11;:17;:::i;:::-;1410:34;;1403:41;1283:168;-1:-1:-1;;1283:168:69:o;1457:188::-;1570:7;1600:38;1616:6;1624:1;:7;;;1006:6;1600:15;:38::i;5176:601:73:-;5320:16;;:::i;:::-;5338;;:::i;:::-;5370:26;;:::i;:::-;-1:-1:-1;5399:81:73;;;;;;;;;5429:4;5399:81;;;5454:15;;;;5399:81;;;;;;5490:26;;:::i;:::-;-1:-1:-1;5519:82:73;;;;;;;;;-1:-1:-1;5519:82:73;;5575:15;;5519:82;;;;;;5611:26;;:::i;:::-;5640;5649:9;5660:5;5640:8;:26::i;:::-;5611:55;;5676:26;;:::i;:::-;5705;5714:9;5725:5;5705:8;:26::i;:::-;5749:9;;;;-1:-1:-1;5176:601:73;;-1:-1:-1;;;;;;5176:601:73:o;4555:169:80:-;4665:10;;:::i;:::-;4698:19;4702:1;4705:11;4714:1;4705:8;:11::i;:::-;4698:3;:19::i;6359:966:76:-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;6559:23:76;;;;-1:-1:-1;49:4;6688:571:76;6709:5;;6688:571;;6960:9;;6862:3;;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:76;;6956:293;6688:571;;;-1:-1:-1;;7306:12:76;;;7316:1;7306:12;;;;;;;;;7299:19;-1:-1:-1;;6359:966:76:o;996:146:67:-;1058:13;893:1;942:3;1102:9;:25;1101:33;1090:45;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1090:45:67;-1:-1:-1;1083:52:67;996:146;-1:-1:-1;;996:146:67:o;1308:263::-;1517:20;;942:3;1427:24;;;1483;;;;893:1;1542:21;;;1517:7;;1427:24;;1517:20;;;;;;;;;;;:47;;;;;;;;;;;1308:263;;;;:::o;2086:1014::-;2152:4;2223:3;2241:15;;;:19;2237:100;;2276:10;;2237:100;;;2323:3;2317:9;;;;;2237:100;2351:14;;;:18;2347:97;;2385:9;;2347:97;;;2431:2;2425:8;;;;;2347:97;2458:14;;;:18;2454:97;;2492:9;;2454:97;;;2538:2;2532:8;;;;;2454:97;2565:14;;;:18;2561:97;;2599:9;;2561:97;;;2645:2;2639:8;;;;;2561:97;2672:13;;;:17;2668:94;;2705:8;;2668:94;;;2750:1;2744:7;;;;;2668:94;2780:3;2776:7;;:11;2772:88;;2803:8;;2772:88;;;2848:1;2842:7;;;;;2772:88;2878:3;2874:7;;:11;2870:143;;2901:8;;2870:143;;;2946:1;2940:7;;;;;2870:143;3031:3;3027:7;;:11;3023:50;;3054:8;;3090:3;2086:1014;-1:-1:-1;;2086:1014:67:o;1148:154::-;942:3;1267:21;;;;1266:29;;1148:154::o;1895:137::-;893:1;2014:10;;2004:21;;;1895:137::o;2293:663:76:-;2479:4;2474:476;;2593:24;2612:4;2593:18;:24::i;:::-;2643:5;2674:26;2693:6;2674:18;:26::i;:::-;2726:6;2758:19;2768:8;2758:9;:19::i;:::-;2803:5;2834:19;2844:8;2834:9;:19::i;:::-;2551:356;;;;;;;;;;;2879:6;;2551:356;;;;2474:476;2293:663;;;;;:::o;1809:167:68:-;1949:13;:20;;1809:167::o;3072:371::-;3202:17;;:::i;:::-;3269:13;;:20;3235:164;;3261:28;;;;3303:4;;3235:164;;3261:5;;3235:12;:164::i;:::-;3416:13;;:20;;3430:5;;3416:20;;;;;;;;;;;;3409:27;;3072:371;;;;:::o;8006:448:77:-;8175:16;;:::i;:::-;8207:20;;:::i;:::-;8230:31;:5;8243:7;8252:8;8230:31;:12;:31;:::i;:::-;8207:54;;8276:12;:3;:10;:12::i;:::-;8272:65;;;8311:15;:13;:15::i;:::-;8304:22;;;;;8272:65;8347:27;;:::i;:::-;8377:24;:5;8392:8;8377:24;:14;:24;:::i;:::-;8347:54;;8418:29;8436:3;8441:5;8418:17;:29::i;:::-;8411:36;8006:448;-1:-1:-1;;;;;;8006:448:77:o;6182:137:80:-;6300:7;;;:12;;6182:137::o;2159:459:122:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:122;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:122;;;;;;;;1153:124:69;1215:11;;:::i;:::-;-1:-1:-1;1249:21:69;;;;;;;;;1006:6;1249:21;;1153:124;:::o;1651:188::-;1764:7;1794:38;1810:6;1006;1824:1;:7;;;1794:15;:38::i;834:176:122:-;892:7;923:5;;;946:6;;;;938:46;;;;-1:-1:-1;;;938:46:122;;;;;;;;910:132:78;980:6;1009:26;1019:15;1009:9;:26::i;:::-;1002:33;;910:132;:::o;1274:134:122:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;1110:228:74:-;1263:7;1293:38;1319:11;1293:21;:6;1304:9;1293:21;:10;:21;:::i;3110:310::-;3201:6;3246;3263:127;3289:16;;;;;3319:4;3263:127;3246:6;3263:12;:127::i;7331:912:76:-;7425:12;7457:10;7453:51;;-1:-1:-1;7483:10:76;;;;;;;;;;;;;;;;;;;7453:51;7565:5;7553:9;7604:69;7611:6;;7604:69;;7633:8;;7660:2;7655:7;;;;7604:69;;;7714:17;7744:6;7734:17;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;7734:17:76;87:34:-1;135:17;;-1:-1;7734:17:76;-1:-1:-1;7843:5:76;;-1:-1:-1;7714:37:76;-1:-1:-1;7875:6:76;7858:357;7883:5;;7858:357;;8036:3;;8132:2;8128:1;:6;902:2;8114:21;8103:34;;8093:4;8098:1;8093:7;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;8202:2:76;8197:7;;;;7858:357;;;-1:-1:-1;8232:4:76;7331:912;-1:-1:-1;;;;7331:912:76:o;3073:130:122:-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;4500:128::-;4558:7;4584:37;4588:1;4591;4584:37;;;;;;;;;;;;;;;;;:3;:37::i;5660:203:80:-;5753:10;;:::i;:::-;-1:-1:-1;5786:70:80;;;;;;;;;5811:6;;5810:7;5786:70;;;5838:7;;;;5786:70;;;;5660:203;;;:::o;4730:610::-;4840:10;;:::i;:::-;4866:17;;:::i;:::-;4907:6;;4897;;:16;;;;;;4893:418;;;4943:6;;4929:20;;;;4991:7;;;;;5000;;;;4978:30;;4991:7;4978:12;:30::i;:::-;4963:12;;;:45;4893:418;;;5054:1;:7;;;5043:1;:7;;;:18;5039:262;;5095:6;;5081:20;;;;5147:7;;;;;5156;;;;5134:30;;5147:7;5134:12;:30::i;5039:262::-;5217:6;;5203:20;;;;5269:7;;;;;5278;;;;5256:30;;5269:7;5256:12;:30::i;:::-;5241:12;;;:45;:12;4730:610;-1:-1:-1;;;4730:610:80:o;3722:137::-;3840:7;;;:12;;;;3722:137::o;4381:168::-;4447:10;;:::i;:::-;-1:-1:-1;4480:62:80;;;;;;;;;-1:-1:-1;4480:62:80;;;;;;;4381:168;:::o;3426:310:74:-;3517:6;3562;3579:127;3605:16;;;;;3635:4;3579:127;3562:6;3579:12;:127::i;1732:187:122:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:122;;;;;;;;;;-1:-1:-1;;;1888:5:122;;;1732:187::o;3718:338::-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:122;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:122:o;5132:163::-;5218:7;5253:12;5245:6;5237:29;;;;-1:-1:-1;;;5237:29:122;;;;;;;;;;;5287:1;5283;:5;;;;;;;5132:163;-1:-1:-1;;;;5132:163:122:o;1008:1187:91:-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5:130:-1:-;72:20;;97:33;72:20;97:33;;178:753;;320:3;313:4;305:6;301:17;297:27;287:2;;338:1;335;328:12;287:2;375:6;362:20;397:105;412:89;494:6;412:89;;;397:105;;;530:21;;;574:4;562:17;;;;388:114;;-1:-1;587:14;;562:17;682:1;667:258;692:6;689:1;686:13;667:258;;;775:3;762:17;754:6;750:30;799:62;857:3;845:10;799:62;;;787:75;;-1:-1;885:4;876:14;;;;904;;;;;714:1;707:9;667:258;;;671:14;280:651;;;;;;;;969:764;;1105:3;1098:4;1090:6;1086:17;1082:27;1072:2;;1123:1;1120;1113:12;1072:2;1160:6;1147:20;1182:99;1197:83;1273:6;1197:83;;1182:99;1173:108;;1298:5;1323:6;1316:5;1309:21;1353:4;1345:6;1341:17;1331:27;;1375:4;1370:3;1366:14;1359:21;;1428:6;1475:3;1467:4;1459:6;1455:17;1450:3;1446:27;1443:36;1440:2;;;1492:1;1489;1482:12;1440:2;1517:1;1502:225;1527:6;1524:1;1521:13;1502:225;;;1585:3;1607:56;1659:3;1647:10;1607:56;;;1595:69;;-1:-1;1687:4;1678:14;;;;1715:4;1706:14;;;;;1549:1;1542:9;1502:225;;1776:785;;1919:3;1912:4;1904:6;1900:17;1896:27;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:106;2011:90;2094:6;2011:90;;1996:106;1987:115;;2119:5;2144:6;2137:5;2130:21;2174:4;2166:6;2162:17;2152:27;;2196:4;2191:3;2187:14;2180:21;;2249:6;2296:3;2288:4;2280:6;2276:17;2271:3;2267:27;2264:36;2261:2;;;2313:1;2310;2303:12;2261:2;2338:1;2323:232;2348:6;2345:1;2342:13;2323:232;;;2406:3;2428:63;2487:3;2475:10;2428:63;;;2416:76;;-1:-1;2515:4;2506:14;;;;2543:4;2534:14;;;;;2370:1;2363:9;2323:232;;2587:707;;2704:3;2697:4;2689:6;2685:17;2681:27;2671:2;;2722:1;2719;2712:12;2671:2;2759:6;2746:20;2781:80;2796:64;2853:6;2796:64;;2781:80;2772:89;;2878:5;2903:6;2896:5;2889:21;2933:4;2925:6;2921:17;2911:27;;2955:4;2950:3;2946:14;2939:21;;3008:6;3055:3;3047:4;3039:6;3035:17;3030:3;3026:27;3023:36;3020:2;;;3072:1;3069;3062:12;3020:2;3097:1;3082:206;3107:6;3104:1;3101:13;3082:206;;;3165:3;3187:37;3220:3;3208:10;3187:37;;;3175:50;;-1:-1;3248:4;3239:14;;;;3267;;;;;3129:1;3122:9;3082:206;;3302:124;3366:20;;3391:30;3366:20;3391:30;;3434:432;;3531:3;3524:4;3516:6;3512:17;3508:27;3498:2;;3549:1;3546;3539:12;3498:2;3586:6;3573:20;3608:60;3623:44;3660:6;3623:44;;3608:60;3599:69;;3688:6;3681:5;3674:21;3724:4;3716:6;3712:17;3757:4;3750:5;3746:16;3792:3;3783:6;3778:3;3774:16;3771:25;3768:2;;;3809:1;3806;3799:12;3768:2;3819:41;3853:6;3848:3;3843;3819:41;;;3491:375;;;;;;;;3874:180;3966:20;;3991:58;3966:20;3991:58;;4242:162;4325:20;;4350:49;4325:20;4350:49;;4411:176;4501:20;;4526:56;4501:20;4526:56;;4771:154;4850:20;;4875:45;4850:20;4875:45;;4964:1528;;5078:6;5066:9;5061:3;5057:19;5053:32;5050:2;;;5098:1;5095;5088:12;5050:2;5116:22;5131:6;5116:22;;;5107:31;-1:-1;5194:1;5226:65;5287:3;5267:9;5226:65;;;5201:91;;-1:-1;5358:2;5391:49;5436:3;5412:22;;;5391:49;;;5384:4;5377:5;5373:16;5366:75;5313:139;5504:2;5537:75;5608:3;5599:6;5588:9;5584:22;5537:75;;;5530:4;5523:5;5519:16;5512:101;5462:162;5685:3;5719:49;5764:3;5755:6;5744:9;5740:22;5719:49;;;5712:4;5705:5;5701:16;5694:75;5634:146;5843:3;5877:49;5922:3;5913:6;5902:9;5898:22;5877:49;;;5870:4;5863:5;5859:16;5852:75;5790:148;5996:3;6030:49;6075:3;6066:6;6055:9;6051:22;6030:49;;;6023:4;6016:5;6012:16;6005:75;5948:143;6151:3;6185:49;6230:3;6221:6;6210:9;6206:22;6185:49;;;6178:4;6171:5;6167:16;6160:75;6101:145;6324:3;6313:9;6309:19;6296:33;6349:18;6341:6;6338:30;6335:2;;;6381:1;6378;6371:12;6335:2;6416:54;6466:3;6457:6;6446:9;6442:22;6416:54;;;6409:4;6402:5;6398:16;6391:80;6256:226;5044:1448;;;;;6530:804;;6645:4;6633:9;6628:3;6624:19;6620:30;6617:2;;;6663:1;6660;6653:12;6617:2;6681:20;6696:4;6681:20;;;6672:29;-1:-1;6751:1;6783:46;6825:3;6805:9;6783:46;;;6758:72;;-1:-1;6899:2;6932:72;7000:3;6976:22;;;6932:72;;;6925:4;6918:5;6914:16;6907:98;6851:165;7065:2;7098:69;7163:3;7154:6;7143:9;7139:22;7098:69;;;7091:4;7084:5;7080:16;7073:95;7026:153;7230:2;7263:49;7308:3;7299:6;7288:9;7284:22;7263:49;;;7256:4;7249:5;7245:16;7238:75;7189:135;6611:723;;;;;7367:322;;7479:4;7467:9;7462:3;7458:19;7454:30;7451:2;;;7497:1;7494;7487:12;7451:2;7515:20;7530:4;7515:20;;;7506:29;-1:-1;7586:1;7618:49;7663:3;7643:9;7618:49;;;7593:75;;-1:-1;7604:5;7445:244;-1:-1;;7445:244;7724:617;;7837:4;7825:9;7820:3;7816:19;7812:30;7809:2;;;7855:1;7852;7845:12;7809:2;7873:20;7888:4;7873:20;;;7864:29;-1:-1;7945:1;7977:48;8021:3;8001:9;7977:48;;;7952:74;;-1:-1;8089:2;8122:48;8166:3;8142:22;;;8122:48;;;8115:4;8108:5;8104:16;8097:74;8047:135;8238:2;8271:48;8315:3;8306:6;8295:9;8291:22;8271:48;;;8264:4;8257:5;8253:16;8246:74;8192:139;7803:538;;;;;8374:464;;8482:4;8470:9;8465:3;8461:19;8457:30;8454:2;;;8500:1;8497;8490:12;8454:2;8518:20;8533:4;8518:20;;;8509:29;-1:-1;8589:1;8621:49;8666:3;8646:9;8621:49;;;8596:75;;-1:-1;8734:2;8767:49;8812:3;8788:22;;;8767:49;;;8760:4;8753:5;8749:16;8742:75;8692:136;8448:390;;;;;9377:472;;9492:4;9480:9;9475:3;9471:19;9467:30;9464:2;;;9510:1;9507;9500:12;9464:2;9528:20;9543:4;9528:20;;;9519:29;-1:-1;9602:1;9634:49;9679:3;9659:9;9634:49;;;9609:75;;-1:-1;9748:2;9781:46;9823:3;9799:22;;;9781:46;;9879:462;;9990:4;9978:9;9973:3;9969:19;9965:30;9962:2;;;10008:1;10005;9998:12;9962:2;10026:20;10041:4;10026:20;;;10017:29;-1:-1;10096:1;10128:46;10170:3;10150:9;10128:46;;;10103:72;;-1:-1;10237:2;10270:49;10315:3;10291:22;;;10270:49;;10376:345;;10500:4;10488:9;10483:3;10479:19;10475:30;10472:2;;;10518:1;10515;10508:12;10472:2;10536:20;10551:4;10536:20;;;10527:29;-1:-1;10607:1;10639:60;10695:3;10675:9;10639:60;;11464:130;11531:20;;11556:33;11531:20;11556:33;;11601:130;11668:20;;11693:33;11668:20;11693:33;;11738:134;11816:13;;11834:33;11816:13;11834:33;;11879:128;11945:20;;11970:32;11945:20;11970:32;;12014:128;12080:20;;12105:32;12080:20;12105:32;;12149:241;;12253:2;12241:9;12232:7;12228:23;12224:32;12221:2;;;12269:1;12266;12259:12;12221:2;12304:1;12321:53;12366:7;12346:9;12321:53;;12397:366;;;12518:2;12506:9;12497:7;12493:23;12489:32;12486:2;;;12534:1;12531;12524:12;12486:2;12569:1;12586:53;12631:7;12611:9;12586:53;;;12576:63;;12548:97;12676:2;12694:53;12739:7;12730:6;12719:9;12715:22;12694:53;;;12684:63;;12655:98;12480:283;;;;;;12770:360;;;12888:2;12876:9;12867:7;12863:23;12859:32;12856:2;;;12904:1;12901;12894:12;12856:2;12939:1;12956:53;13001:7;12981:9;12956:53;;;12946:63;;12918:97;13046:2;13064:50;13106:7;13097:6;13086:9;13082:22;13064:50;;13137:1169;;;;;;;;13430:3;13418:9;13409:7;13405:23;13401:33;13398:2;;;13447:1;13444;13437:12;13398:2;13482:1;13499:53;13544:7;13524:9;13499:53;;;13489:63;;13461:97;13589:2;13607:75;13674:7;13665:6;13654:9;13650:22;13607:75;;;13597:85;;13568:120;13719:2;13737:78;13807:7;13798:6;13787:9;13783:22;13737:78;;;13727:88;;13698:123;13852:2;13870:76;13938:7;13929:6;13918:9;13914:22;13870:76;;;13860:86;;13831:121;13983:3;14002:76;14070:7;14061:6;14050:9;14046:22;14002:76;;;13992:86;;13962:122;14115:3;14134:50;14176:7;14167:6;14156:9;14152:22;14134:50;;;14124:60;;14094:96;14221:3;14240:50;14282:7;14273:6;14262:9;14258:22;14240:50;;;14230:60;;14200:96;13392:914;;;;;;;;;;;14313:726;;;14528:2;14516:9;14507:7;14503:23;14499:32;14496:2;;;14544:1;14541;14534:12;14496:2;14579:31;;14630:18;14619:30;;14616:2;;;14662:1;14659;14652:12;14616:2;14682:97;14771:7;14762:6;14751:9;14747:22;14682:97;;;14672:107;;14558:227;14844:2;14833:9;14829:18;14816:32;14868:18;14860:6;14857:30;14854:2;;;14900:1;14897;14890:12;14854:2;14920:103;15015:7;15006:6;14995:9;14991:22;14920:103;;15046:429;;15201:2;15189:9;15180:7;15176:23;15172:32;15169:2;;;15217:1;15214;15207:12;15169:2;15252:31;;15303:18;15292:30;;15289:2;;;15335:1;15332;15325:12;15289:2;15355:104;15451:7;15442:6;15431:9;15427:22;15355:104;;15482:502;;;15628:2;15616:9;15607:7;15603:23;15599:32;15596:2;;;15644:1;15641;15634:12;15596:2;15679:31;;15730:18;15719:30;;15716:2;;;15762:1;15759;15752:12;15716:2;15782:78;15852:7;15843:6;15832:9;15828:22;15782:78;;15991:287;;16118:2;16106:9;16097:7;16093:23;16089:32;16086:2;;;16134:1;16131;16124:12;16086:2;16169:1;16186:76;16254:7;16234:9;16186:76;;16285:287;;16412:2;16400:9;16391:7;16387:23;16383:32;16380:2;;;16428:1;16425;16418:12;16380:2;16463:1;16480:76;16548:7;16528:9;16480:76;;16579:436;;;16735:2;16723:9;16714:7;16710:23;16706:32;16703:2;;;16751:1;16748;16741:12;16703:2;16786:1;16803:76;16871:7;16851:9;16803:76;;;16793:86;;16765:120;16916:2;16934:65;16991:7;16982:6;16971:9;16967:22;16934:65;;17022:412;;;17166:2;17154:9;17145:7;17141:23;17137:32;17134:2;;;17182:1;17179;17172:12;17134:2;17217:1;17234:76;17302:7;17282:9;17234:76;;;17224:86;;17196:120;17347:2;17365:53;17410:7;17401:6;17390:9;17386:22;17365:53;;17441:582;;;;17624:3;17612:9;17603:7;17599:23;17595:33;17592:2;;;17641:1;17638;17631:12;17592:2;17676:1;17693:76;17761:7;17741:9;17693:76;;;17683:86;;17655:120;17806:2;17824:53;17869:7;17860:6;17849:9;17845:22;17824:53;;;17814:63;;17785:98;17914:2;17932:75;17999:7;17990:6;17979:9;17975:22;17932:75;;;17922:85;;17893:120;17586:437;;;;;;18030:311;;18169:2;18157:9;18148:7;18144:23;18140:32;18137:2;;;18185:1;18182;18175:12;18137:2;18220:1;18237:88;18317:7;18297:9;18237:88;;18960:241;;19064:2;19052:9;19043:7;19039:23;19035:32;19032:2;;;19080:1;19077;19070:12;19032:2;19115:1;19132:53;19177:7;19157:9;19132:53;;19208:263;;19323:2;19311:9;19302:7;19298:23;19294:32;19291:2;;;19339:1;19336;19329:12;19291:2;19374:1;19391:64;19447:7;19427:9;19391:64;;19478:366;;;19599:2;19587:9;19578:7;19574:23;19570:32;19567:2;;;19615:1;19612;19605:12;19567:2;19650:1;19667:53;19712:7;19692:9;19667:53;;19851:360;;;19969:2;19957:9;19948:7;19944:23;19940:32;19937:2;;;19985:1;19982;19975:12;19937:2;20020:1;20037:53;20082:7;20062:9;20037:53;;20218:416;;;20364:2;20352:9;20343:7;20339:23;20335:32;20332:2;;;20380:1;20377;20370:12;20332:2;20415:1;20432:53;20477:7;20457:9;20432:53;;;20422:63;;20394:97;20522:2;20540:78;20610:7;20601:6;20590:9;20586:22;20540:78;;21058:412;;;21202:2;21190:9;21181:7;21177:23;21173:32;21170:2;;;21218:1;21215;21208:12;21170:2;21253:1;21270:53;21315:7;21295:9;21270:53;;;21260:63;;21232:97;21360:2;21378:76;21446:7;21437:6;21426:9;21422:22;21378:76;;21477:415;;;21622:3;21610:9;21601:7;21597:23;21593:33;21590:2;;;21639:1;21636;21629:12;21590:2;21674:1;21691:53;21736:7;21716:9;21691:53;;;21681:63;;21653:97;21781:2;21799:77;21868:7;21859:6;21848:9;21844:22;21799:77;;21899:366;;;22020:2;22008:9;21999:7;21995:23;21991:32;21988:2;;;22036:1;22033;22026:12;21988:2;22071:1;22088:53;22133:7;22113:9;22088:53;;;22078:63;;22050:97;22178:2;22196:53;22241:7;22232:6;22221:9;22217:22;22196:53;;22273:173;;22360:46;22402:3;22394:6;22360:46;;;-1:-1;;22435:4;22426:14;;22353:93;22455:273;;22614:108;22718:3;22710:6;22614:108;;22737:269;;22870:96;22962:3;22954:6;22870:96;;;-1:-1;;22995:4;22986:14;;22863:143;23015:249;;23138:86;23220:3;23212:6;23138:86;;23273:249;;23396:86;23478:3;23470:6;23396:86;;23531:173;;23618:46;23660:3;23652:6;23618:46;;23910:103;23983:24;24001:5;23983:24;;;23978:3;23971:37;23965:48;;;24417:690;;24562:54;24610:5;24562:54;;;24629:86;24708:6;24703:3;24629:86;;;24622:93;;24736:56;24786:5;24736:56;;;24812:7;24840:1;24825:260;24850:6;24847:1;24844:13;24825:260;;;24917:6;24911:13;24938:63;24997:3;24982:13;24938:63;;;24931:70;;25018:60;25071:6;25018:60;;;25008:70;-1:-1;;24872:1;24865:9;24825:260;;;-1:-1;25098:3;;24541:566;-1:-1;;;;;24541:566;25182:1072;;25385:79;25458:5;25385:79;;;25477:119;25589:6;25584:3;25477:119;;;25470:126;;25619:3;25661:4;25653:6;25649:17;25644:3;25640:27;25688:81;25763:5;25688:81;;;25789:7;25817:1;25802:413;25827:6;25824:1;25821:13;25802:413;;;25889:9;25883:4;25879:20;25874:3;25867:33;25934:6;25928:13;25956:122;26073:4;26058:13;25956:122;;;25948:130;;26095:85;26173:6;26095:85;;;26203:4;26194:14;;;;;26085:95;-1:-1;;25849:1;25842:9;25802:413;;;-1:-1;26228:4;;25364:890;-1:-1;;;;;;;25364:890;26317:866;;26508:73;26575:5;26508:73;;;26594:113;26700:6;26695:3;26594:113;;;26587:120;;26728:75;26797:5;26728:75;;;26823:7;26851:1;26836:325;26861:6;26858:1;26855:13;26836:325;;;26928:6;26922:13;26949:109;27054:3;27039:13;26949:109;;;26942:116;;27075:79;27147:6;27075:79;;;27065:89;-1:-1;;26883:1;26876:9;26836:325;;27240:834;;27421:72;27487:5;27421:72;;;27506:104;27603:6;27598:3;27506:104;;;27499:111;;27631:74;27699:5;27631:74;;;27725:7;27753:1;27738:314;27763:6;27760:1;27757:13;27738:314;;;27830:6;27824:13;27851:99;27946:3;27931:13;27851:99;;;27844:106;;27967:78;28038:6;27967:78;;;27957:88;-1:-1;;27785:1;27778:9;27738:314;;28131:834;;28312:72;28378:5;28312:72;;;28397:104;28494:6;28489:3;28397:104;;;28390:111;;28522:74;28590:5;28522:74;;;28616:7;28644:1;28629:314;28654:6;28651:1;28648:13;28629:314;;;28721:6;28715:13;28742:99;28837:3;28822:13;28742:99;;;28735:106;;28858:78;28929:6;28858:78;;;28848:88;-1:-1;;28676:1;28669:9;28629:314;;29004:690;;29149:54;29197:5;29149:54;;;29216:86;29295:6;29290:3;29216:86;;;29209:93;;29323:56;29373:5;29323:56;;;29399:7;29427:1;29412:260;29437:6;29434:1;29431:13;29412:260;;;29504:6;29498:13;29525:63;29584:3;29569:13;29525:63;;;29518:70;;29605:60;29658:6;29605:60;;;29595:70;-1:-1;;29459:1;29452:9;29412:260;;29733:714;;29886:54;29934:5;29886:54;;;29953:94;30040:6;30035:3;29953:94;;;29946:101;;30068:56;30118:5;30068:56;;;30144:7;30172:1;30157:268;30182:6;30179:1;30176:13;30157:268;;;30249:6;30243:13;30270:71;30337:3;30322:13;30270:71;;;30263:78;;30358:60;30411:6;30358:60;;;30348:70;-1:-1;;30204:1;30197:9;30157:268;;30455:94;30522:21;30537:5;30522:21;;30895:148;30994:43;31013:23;31030:5;31013:23;;;30994:43;;31050:148;31149:43;31168:23;31185:5;31168:23;;31205:152;31306:45;31326:24;31344:5;31326:24;;31364:356;;31492:38;31524:5;31492:38;;;31542:88;31623:6;31618:3;31542:88;;;31535:95;;31635:52;31680:6;31675:3;31668:4;31661:5;31657:16;31635:52;;;31699:16;;;;;31472:248;-1:-1;;31472:248;31727:331;;31831:34;31859:5;31831:34;;;31877:68;31938:6;31933:3;31877:68;;;31870:75;;31950:52;31995:6;31990:3;31983:4;31976:5;31972:16;31950:52;;;32023:29;32045:6;32023:29;;;32014:39;;;;31811:247;-1:-1;;;31811:247;32065:166;32163:62;32219:5;32163:62;;33141:152;33236:51;33281:5;33236:51;;33300:166;33402:58;33454:5;33402:58;;33640:146;33733:47;33774:5;33733:47;;34148:375;;34308:67;34372:2;34367:3;34308:67;;;34408:34;34388:55;;34477:8;34472:2;34463:12;;34456:30;34514:2;34505:12;;34294:229;-1:-1;;34294:229;34532:327;;34692:67;34756:2;34751:3;34692:67;;;34792:29;34772:50;;34850:2;34841:12;;34678:181;-1:-1;;34678:181;34868:370;;35028:67;35092:2;35087:3;35028:67;;;35128:34;35108:55;;35197:3;35192:2;35183:12;;35176:25;35229:2;35220:12;;35014:224;-1:-1;;35014:224;35247:332;;35407:67;35471:2;35466:3;35407:67;;;35507:34;35487:55;;35570:2;35561:12;;35393:186;-1:-1;;35393:186;35588:331;;35748:67;35812:2;35807:3;35748:67;;;35848:33;35828:54;;35910:2;35901:12;;35734:185;-1:-1;;35734:185;35988:1688;36215:23;;35988:1688;;36141:6;36132:16;;;36244:85;36136:3;36215:23;36244:85;;;36163:172;36413:4;36406:5;36402:16;36396:23;36425:71;36490:4;36485:3;36481:14;36467:12;36425:71;;;36345:157;36577:4;36570:5;36566:16;36560:23;36589:127;36710:4;36705:3;36701:14;36687:12;36589:127;;;36512:210;36806:4;36799:5;36795:16;36789:23;36818:71;36883:4;36878:3;36874:14;36860:12;36818:71;;;36732:163;36981:4;36974:5;36970:16;36964:23;36993:71;37058:4;37053:3;37049:14;37035:12;36993:71;;;36905:165;37151:4;37144:5;37140:16;37134:23;37163:73;37228:6;37223:3;37219:16;37205:12;37163:73;;;37080:162;37325:4;37318:5;37314:16;37308:23;37337:73;37402:6;37397:3;37393:16;37379:12;37337:73;;;37252:164;37489:4;37482:5;37478:16;37472:23;37543:3;37537:4;37533:14;37524:6;37519:3;37515:16;37508:40;37563:75;37633:4;37619:12;37563:75;;37742:861;37955:23;;37889:4;37880:14;;;37984:65;37884:3;37955:23;37984:65;;;37909:146;38136:4;38129:5;38125:16;38119:23;38148:92;38234:4;38229:3;38225:14;38211:12;38148:92;;;38065:181;38318:4;38311:5;38307:16;38301:23;38330:89;38413:4;38408:3;38404:14;38390:12;38330:89;;;38256:169;38499:4;38492:5;38488:16;38482:23;38511:71;38576:4;38571:3;38567:14;38553:12;38511:71;;38659:319;38865:23;;38798:4;38789:14;;;38894:63;38793:3;38865:23;38894:63;;39790:632;39999:23;;39931:4;39922:14;;;40028:61;39926:3;39999:23;40028:61;;;39951:144;40170:4;40163:5;40159:16;40153:23;40182:61;40237:4;40232:3;40228:14;40214:12;40182:61;;;40105:144;40328:4;40321:5;40317:16;40311:23;40340:61;40395:4;40390:3;40386:14;40372:12;40340:61;;41156:499;41370:23;;41303:4;41294:14;;;41399:71;41298:3;41370:23;41399:71;;;41323:153;41551:4;41544:5;41540:16;41534:23;41563:71;41628:4;41623:3;41619:14;41605:12;41563:71;;42256:1833;42468:23;;42399:6;42390:16;;;42497:63;42394:3;42468:23;42497:63;;;42421:145;42644:4;42637:5;42633:16;42627:23;42656:57;42707:4;42702:3;42698:14;42684:12;42656:57;;;42576:143;42800:4;42793:5;42789:16;42783:23;42812:57;42863:4;42858:3;42854:14;42840:12;42812:57;;;42729:146;42952:4;42945:5;42941:16;42935:23;42964:113;43071:4;43066:3;43062:14;43048:12;42964:113;;;42885:198;43157:4;43150:5;43146:16;43140:23;43169:107;43270:4;43265:3;43261:14;43247:12;43169:107;;;43093:189;43362:4;43355:5;43351:16;43345:23;43374:87;43453:6;43448:3;43444:16;43430:12;43374:87;;;43292:175;43550:4;43543:5;43539:16;43533:23;43562:90;43644:6;43639:3;43635:16;43621:12;43562:90;;;43477:181;43740:4;43733:5;43729:16;43723:23;43752:107;43851:6;43846:3;43842:16;43828:12;43752:107;;;43668:197;43947:6;43940:5;43936:18;43930:25;43961:107;44060:6;44055:3;44051:16;44037:12;43961:107;;44139:465;44342:23;;44276:4;44267:14;;;44371:57;44271:3;44342:23;44371:57;;;44296:138;44508:4;44501:5;44497:16;44491:23;44520:63;44577:4;44572:3;44568:14;44554:12;44520:63;;46470:1166;46697:23;;46621:4;46612:14;;;46726:61;46616:3;46697:23;46726:61;;;46641:152;46882:4;46875:5;46871:16;46865:23;46894:61;46949:4;46944:3;46940:14;46926:12;46894:61;;;46803:158;47045:4;47038:5;47034:16;47028:23;47057:61;47112:4;47107:3;47103:14;47089:12;47057:61;;;46971:153;47209:4;47202:5;47198:16;47192:23;47221:61;47276:4;47271:3;47267:14;47253:12;47221:61;;;47134:154;47373:4;47366:5;47362:16;47356:23;47385:61;47440:4;47435:3;47431:14;47417:12;47385:61;;;47298:154;47540:4;47533:5;47529:16;47523:23;47552:63;47609:4;47604:3;47600:14;47586:12;47552:63;;47704:1002;47928:23;;47855:4;47846:14;;;47957:105;47850:3;47928:23;47957:105;;;47875:193;48154:4;48147:5;48143:16;48137:23;48166:105;48265:4;48260:3;48256:14;48242:12;48166:105;;;48078:199;48358:4;48351:5;48347:16;48341:23;48370:105;48469:4;48464:3;48460:14;48446:12;48370:105;;;48287:194;48566:4;48559:5;48555:16;48549:23;48578:107;48679:4;48674:3;48670:14;48656:12;48578:107;;48713:123;48813:18;;48807:29;48896:484;49111:23;;49043:4;49034:14;;;49140:63;49038:3;49111:23;49140:63;;51105:465;51308:23;;51242:4;51233:14;;;51337:57;51237:3;51308:23;51337:57;;52078:103;52151:24;52169:5;52151:24;;52306:103;52379:24;52397:5;52379:24;;52782:100;52853:23;52870:5;52853:23;;52889:100;52960:23;52977:5;52960:23;;52996:100;53067:23;53084:5;53067:23;;53103:244;;53222:75;53293:3;53284:6;53222:75;;;-1:-1;53319:2;53310:12;;53210:137;-1:-1;53210:137;53354:553;;53570:93;53659:3;53650:6;53570:93;;;53563:100;;53674:73;53743:3;53734:6;53674:73;;;53769:1;53764:3;53760:11;53753:18;;53789:93;53878:3;53869:6;53789:93;;53914:978;;54228:93;54317:3;54308:6;54228:93;;;54221:100;;54332:73;54401:3;54392:6;54332:73;;;54427:1;54422:3;54418:11;54411:18;;54447:93;54536:3;54527:6;54447:93;;;54440:100;;54551:73;54620:3;54611:6;54551:73;;;54646:1;54641:3;54637:11;54630:18;;54666:93;54755:3;54746:6;54666:93;;;54659:100;;54770:73;54839:3;54830:6;54770:73;;;-1:-1;54865:1;54856:11;;54209:683;-1:-1;;;;;;54209:683;54899:1269;;55285:93;55374:3;55365:6;55285:93;;;55278:100;;55389:73;55458:3;55449:6;55389:73;;;55484:1;55479:3;55475:11;55468:18;;55504:93;55593:3;55584:6;55504:93;;;55497:100;;55608:73;55677:3;55668:6;55608:73;;;55703:1;55698:3;55694:11;55687:18;;55723:93;55812:3;55803:6;55723:93;;;55716:100;;55827:73;55896:3;55887:6;55827:73;;;55922:1;55917:3;55913:11;55906:18;;55942:93;56031:3;56022:6;55942:93;;;55935:100;;56046:73;56115:3;56106:6;56046:73;;;-1:-1;56141:1;56132:11;;55266:902;-1:-1;;;;;;;;55266:902;56175:213;56293:2;56278:18;;56307:71;56282:9;56351:6;56307:71;;56395:312;56535:2;56520:18;;56549:71;56524:9;56593:6;56549:71;;;56631:66;56693:2;56682:9;56678:18;56669:6;56631:66;;56714:435;56888:2;56873:18;;56902:71;56877:9;56946:6;56902:71;;;56984:72;57052:2;57041:9;57037:18;57028:6;56984:72;;;57067;57135:2;57124:9;57120:18;57111:6;57067:72;;57156:361;57324:2;57338:47;;;57309:18;;57399:108;57309:18;57493:6;57399:108;;57524:1283;57998:3;58013:47;;;57983:19;;58074:108;57983:19;58168:6;58074:108;;;58066:116;;58230:9;58224:4;58220:20;58215:2;58204:9;58200:18;58193:48;58255:108;58358:4;58349:6;58255:108;;;58247:116;;58411:9;58405:4;58401:20;58396:2;58385:9;58381:18;58374:48;58436:144;58575:4;58566:6;58436:144;;;58428:152;;58628:9;58622:4;58618:20;58613:2;58602:9;58598:18;58591:48;58653:144;58792:4;58783:6;58653:144;;58814:201;58926:2;58911:18;;58940:65;58915:9;58978:6;58940:65;;59022:263;59165:2;59150:18;;59179:96;59154:9;59248:6;59179:96;;59556:233;59684:2;59669:18;;59698:81;59673:9;59752:6;59698:81;;59796:301;59934:2;59948:47;;;59919:18;;60009:78;59919:18;60073:6;60009:78;;60104:407;60295:2;60309:47;;;60280:18;;60370:131;60280:18;60370:131;;60518:407;60709:2;60723:47;;;60694:18;;60784:131;60694:18;60784:131;;60932:407;61123:2;61137:47;;;61108:18;;61198:131;61108:18;61198:131;;61346:407;61537:2;61551:47;;;61522:18;;61612:131;61522:18;61612:131;;61760:407;61951:2;61965:47;;;61936:18;;62026:131;61936:18;62026:131;;62174:305;62338:2;62323:18;;62352:117;62327:9;62442:6;62352:117;;62486:309;62652:2;62637:18;;62666:119;62641:9;62758:6;62666:119;;62802:314;62970:3;62955:19;;62985:121;62959:9;63079:6;62985:121;;63123:934;63517:3;63502:19;;63532:121;63506:9;63626:6;63532:121;;;63664;63780:3;63769:9;63765:19;63756:6;63664:121;;;63796;63912:3;63901:9;63897:19;63888:6;63796:121;;;63928:119;64042:3;64031:9;64027:19;64018:6;63928:119;;64064:301;64226:2;64211:18;;64240:115;64215:9;64328:6;64240:115;;65000:330;65176:3;65161:19;;65191:129;65165:9;65293:6;65191:129;;65337:330;65513:3;65498:19;;65528:129;65502:9;65630:6;65528:129;;65674:509;65877:2;65862:18;;65891:100;65866:9;65964:6;65891:100;;;66002:80;66078:2;66067:9;66063:18;66054:6;66002:80;;;66093;66169:2;66158:9;66154:18;66145:6;66093:80;;66190:497;66387:2;66372:18;;66401:100;66376:9;66474:6;66401:100;;;66512:80;66588:2;66577:9;66573:18;66564:6;66512:80;;;66603:74;66673:2;66662:9;66658:18;66649:6;66603:74;;66694:1363;67164:3;67149:19;;67179:100;67153:9;67252:6;67179:100;;;67290:80;67366:2;67355:9;67351:18;67342:6;67290:80;;;67381:102;67479:2;67468:9;67464:18;67455:6;67381:102;;;67494:105;67595:2;67584:9;67580:18;67571:6;67494:105;;;67610:127;67732:3;67721:9;67717:19;67708:6;67610:127;;;67748;67870:3;67859:9;67855:19;67846:6;67748:127;;;67886:75;67956:3;67945:9;67941:19;67932:6;67886:75;;;67972;68042:3;68031:9;68027:19;68018:6;67972:75;;68064:981;68455:2;68440:18;;68469:100;68444:9;68542:6;68469:100;;;68617:9;68611:4;68607:20;68602:2;68591:9;68587:18;68580:48;68642:154;68791:4;68782:6;68642:154;;;68634:162;;68844:9;68838:4;68834:20;68829:2;68818:9;68814:18;68807:48;68869:166;69030:4;69021:6;68869:166;;69052:657;69305:2;69290:18;;69319:100;69294:9;69392:6;69319:100;;;69467:9;69461:4;69457:20;69452:2;69441:9;69437:18;69430:48;69492:116;69603:4;69594:6;69492:116;;;69484:124;;69619:80;69695:2;69684:9;69680:18;69671:6;69619:80;;69716:482;69937:2;69922:18;;69951:100;69926:9;70024:6;69951:100;;;70062:126;70184:2;70173:9;70169:18;70160:6;70062:126;;70205:810;70526:3;70511:19;;70541:100;70515:9;70614:6;70541:100;;;70652:126;70774:2;70763:9;70759:18;70750:6;70652:126;;;70789:80;70865:2;70854:9;70850:18;70841:6;70789:80;;;70880:125;71000:3;70989:9;70985:19;70976:6;70880:125;;71515:509;71718:2;71703:18;;71732:100;71707:9;71805:6;71732:100;;;71843:80;71919:2;71908:9;71904:18;71895:6;71843:80;;72031:497;72228:2;72213:18;;72242:100;72217:9;72315:6;72242:100;;;72353:80;72429:2;72418:9;72414:18;72405:6;72353:80;;72535:559;72763:2;72748:18;;72777:100;72752:9;72850:6;72777:100;;;72888:80;72964:2;72953:9;72949:18;72940:6;72888:80;;;72979:105;73080:2;73069:9;73065:18;73056:6;72979:105;;73661:601;73910:2;73895:18;;73924:100;73899:9;73997:6;73924:100;;;74035:80;74111:2;74100:9;74096:18;74087:6;74035:80;;;74126:126;74248:2;74237:9;74233:18;74224:6;74126:126;;74269:321;74441:2;74426:18;;74455:125;74430:9;74553:6;74455:125;;74913:516;75155:2;75140:18;;75169:119;75144:9;75261:6;75169:119;;75436:301;75598:2;75583:18;;75612:115;75587:9;75700:6;75612:115;;75744:213;75862:2;75847:18;;75876:71;75851:9;75920:6;75876:71;;75964:256;76026:2;76020:9;76052:17;;;76127:18;76112:34;;76148:22;;;76109:62;76106:2;;;76184:1;76181;76174:12;76106:2;76200;76193:22;76004:216;;-1:-1;76004:216;76227:329;;76411:18;76403:6;76400:30;76397:2;;;76443:1;76440;76433:12;76397:2;-1:-1;76478:4;76466:17;;;76531:15;;76334:222;77541:317;;77680:18;77672:6;77669:30;77666:2;;;77712:1;77709;77702:12;77666:2;-1:-1;77843:4;77779;77756:17;;;;77775:9;77752:33;77833:15;;77603:255;77865:151;77989:4;77980:14;;77937:79;78893:137;78996:12;;78967:63;80989:178;81107:19;;;81156:4;81147:14;;81100:67;82895:91;;82957:24;82975:5;82957:24;;82993:85;83059:13;83052:21;;83035:43;83085:144;83157:66;83146:78;;83129:100;83236:144;83308:66;83297:78;;83280:100;83387:72;83449:5;83432:27;83466:116;;83553:24;83571:5;83553:24;;83709:138;83787:5;83793:49;83787:5;83793:49;;83854:152;83939:5;83945:56;83939:5;83945:56;;84166:130;84240:5;84246:45;84240:5;84246:45;;84303:113;84376:34;84365:46;;84348:68;84423:121;84496:42;84485:54;;84468:76;84630:88;84702:10;84691:22;;84674:44;84725:96;84797:18;84786:30;;84769:52;84828:104;84900:26;84889:38;;84872:60;85566:138;;85659:40;85693:5;85659:40;;85711:152;;85811:47;85852:5;85811:47;;86023:130;;86112:36;86142:5;86112:36;;86161:145;86242:6;86237:3;86232;86219:30;-1:-1;86298:1;86280:16;;86273:27;86212:94;86315:268;86380:1;86387:101;86401:6;86398:1;86395:13;86387:101;;;86468:11;;;86462:18;86449:11;;;86442:39;86423:2;86416:10;86387:101;;;86503:6;86500:1;86497:13;86494:2;;;-1:-1;;86568:1;86550:16;;86543:27;86364:219;86832:97;86920:2;86900:14;86916:7;86896:28;;86880:49;86937:107;87022:1;87015:5;87012:12;87002:2;;87028:9;87051:114;87143:1;87136:5;87133:12;87123:2;;87149:9;87290:103;87371:1;87364:5;87361:12;87351:2;;87377:9;87400:117;87469:24;87487:5;87469:24;;;87462:5;87459:35;87449:2;;87508:1;87505;87498:12;87524:111;87590:21;87605:5;87590:21;;87642:167;87736:49;87779:5;87736:49;;87984:110;88069:1;88062:5;88059:12;88049:2;;88085:1;88082;88075:12;88101:117;88193:1;88186:5;88183:12;88173:2;;88209:1;88206;88199:12;88346:106;88427:1;88420:5;88417:12;88407:2;;88443:1;88440;88433:12;88459:117;88528:24;88546:5;88528:24;;88583:117;88652:24;88670:5;88652:24;;88707:115;88775:23;88792:5;88775:23;;88829:115;88897:23;88914:5;88897:23;",
2189
+ "deployedSourceMap": "1008:1187:91:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1008:1187:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5420:471:49;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5587:292:47;;;;;;;;;:::i;:::-;;10872:174:49;;;;;;;;;:::i;:::-;;;;;;;;2867:210;;;;;;;;;:::i;:::-;;;;;;;;4588:292:47;;;;;;;;;:::i;9248:256:49:-;;;;;;;;;:::i;:::-;;;;;;;;;4021:225;;;;;;;;;:::i;:::-;;;;;;;;4252:234;;;;;;;;;:::i;4734:236::-;;;;;;;;;:::i;:::-;;;;;;;;2736:125;;;:::i;:::-;;;;;;;;2262:317:47;;;;;;;;;:::i;7229:258::-;;;;;;;;;:::i;6453:238::-;;;;;;;;;:::i;9034:208:49:-;;;;;;;;;:::i;6860:240:47:-;;;;;;;;;:::i;10664:202:49:-;;;;;;;;;:::i;7748:255::-;;;;;;;;;:::i;:::-;;;;;;;;5095:292:47;;;;;;;;;:::i;1734:150:49:-;;;:::i;3758:257::-;;;;;;;;;:::i;:::-;;;;;;;;5195:219;;;;;;;;;:::i;4976:213::-;;;;;;;;;:::i;2384:143::-;;;:::i;:::-;;;;;;;;9779:879;;;;;;;;;:::i;:::-;;;;;;;;;;;1684:137:123;;;:::i;2216:162:49:-;;;:::i;1576:199:91:-;;;;;;;;;:::i;2745:569:47:-;;;;;;;;;:::i;1806:377:51:-;;;;;;;;;:::i;5897:247:49:-;;;;;;;;;:::i;899:77:123:-;;;:::i;1250:92::-;;;:::i;1855:313:47:-;;;;;;;;;:::i;3083:211:49:-;;;;;;;;;:::i;8809:219::-;;;;;;;;;:::i;2066:260:50:-;;;;;;;;;:::i;1781:412:91:-;;;;;;;;;:::i;7019:491:49:-;;;;;;;;;:::i;:::-;;;;;;;;;;;6063:224:47;;;;;;;;;:::i;1890:162:49:-;;;:::i;8244:369::-;;;;;;;;;:::i;:::-;;;;;;;;8009:229;;;;;;;;;:::i;3300:223::-;;;;;;;;;:::i;:::-;;;;;;;;6450:346;;;;;;;;;:::i;3482:272:47:-;;;;;;;;;:::i;7516:226:49:-;;;;;;;;;:::i;1312:258:91:-;;;;;;;;;:::i;3529:223:49:-;;;;;;;;;:::i;8619:184::-;;;;;;;;;:::i;:::-;;;;;;;;2058:152;;;:::i;4244:277:47:-;;;;;;;;;:::i;2533:143:49:-;;;:::i;:::-;;;;;;;;6802:211;;;;;;;;;:::i;:::-;;;;;;;;3919:261:47;;;;;;;;;:::i;7735:269::-;;;;;;;;;:::i;1970:107:123:-;;;;;;;;;:::i;9510:263:49:-;;;;;;;;;:::i;4492:236::-;;;;;;;;;:::i;6150:294::-;;;;;;;;;:::i;5420:471::-;5520:13;5549:12;5564:1;5549:16;;5575:21;5610:1;5599:13;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5599:13:49;-1:-1:-1;5668:2:49;5622:12;5637:35;:25;:35;;;;5575:37;;-1:-1:-1;5714:147:49;5721:12;;;;;:27;;;5747:1;5737:7;:11;5721:27;5714:147;;;5785:7;5764;5772:9;;;;;;5764:18;;;;;;;;;;;;;;;;;;:28;;;;5816:7;:34;;;:25;:34;;;;;;5714:147;;;-1:-1:-1;5877:7:49;-1:-1:-1;;5420:471:49;;;;:::o;5587:292:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;5761:111:47;;;;;:9;;:31;;:111;;2070:5:127;;5827:8:47;;5849:13;;5761:111;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5761:111:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;-1:-1:-1;;;;5587:292:47:o;10872:174:49:-;10978:4;11005:34;10978:4;11030:8;11005:34;:24;:34;:::i;:::-;10998:41;10872:174;-1:-1:-1;;10872:174:49:o;2867:210::-;2975:7;2998:29;3018:8;2998:19;:29::i;:::-;3044:26;:7;3061:8;3044:26;:16;:26;:::i;4588:292:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;4760:113:47;;;;;:9;;:32;;:113;;2070:5:127;;4827:8:47;;4849:14;;4760:113;;;;9248:256:49;9362:21;;:::i;:::-;9385;;:::i;:::-;9429:68;9455:7;9491:5;9429:25;:68::i;:::-;9422:75;;;;9248:256;;;:::o;4021:225::-;4128:12;4156:29;4176:8;4156:19;:29::i;:::-;-1:-1:-1;4202:7:49;:25;;;:15;:25;;;;;:37;;;;;;4021:225::o;4252:234::-;4362:15;4393:29;4413:8;4393:19;:29::i;:::-;-1:-1:-1;4439:7:49;:25;;;:15;:25;;;;;:40;;;;;;4252:234::o;4734:236::-;4843:19;;:::i;:::-;4878:29;4898:8;4878:19;:29::i;:::-;-1:-1:-1;4924:7:49;:25;;;:15;:25;;;;;;;;;4917:46;;;;;;;;4924:39;;;;4917:46;;;;4734:236::o;2736:125::-;2806:7;2836:18;2736:125;:::o;2262:317:47:-;2429:7;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;2459:113:47;;;;;:9;;:40;;:113;;2070:5:127;;2534::47;;2553:9;;2459:113;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2459:113:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2459:113:47;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2459:113:47;;;;;;;;;2452:120;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;2262:317:47;;-1:-1:-1;;2262:317:47:o;7229:258::-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;7385:95:47;;;;;:9;;:34;;:95;;2070:5:127;;7454:16:47;;7385:95;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7385:95:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;-1:-1:-1;;;7229:258:47:o;6453:238::-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;6598:86:47;;;;;:9;;:35;;:86;;2070:5:127;;6668:6:47;;6598:86;;;;9034:208:49;9160:7;9190:45;9160:7;9227;9190:45;:36;:45;:::i;6860:240:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;7006:87:47;;;;;:9;;:30;;:87;;2070:5:127;;7071:12:47;;7006:87;;;;10664:202:49;10792:4;10819:40;10792:4;10843:5;10850:8;10819:40;:23;:40;:::i;:::-;10812:47;10664:202;-1:-1:-1;;;10664:202:49:o;7748:255::-;7885:16;;:::i;:::-;7917:29;7937:8;7917:19;:29::i;:::-;7963:33;:7;7978;7987:8;7963:33;:14;:33;:::i;5095:292:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;5269:111:47;;;;;:9;;:31;;:111;;2070:5:127;;5335:8:47;;5357:13;;5269:111;;;;1734:150:49;1805:19;;:::i;:::-;-1:-1:-1;1840:37:49;;;;;;;;;1847:18;1840:37;;;1734:150;:::o;3758:257::-;3866:21;;:::i;:::-;3903:29;3923:8;3903:19;:29::i;:::-;3949:59;3971:8;3981:26;:7;3971:8;3981:26;:16;:26;:::i;:::-;3949:7;;:59;;:21;:59;:::i;5195:219::-;5303:4;5323:29;5343:8;5323:19;:29::i;:::-;-1:-1:-1;5369:7:49;:25;;;:15;:25;;;;;:38;;;;;;;5195:219::o;4976:213::-;5081:4;5101:29;5121:8;5101:19;:29::i;:::-;-1:-1:-1;5147:7:49;:25;;;:15;:25;;;;;:35;-1:-1:-1;;;5147:35:49;;;;;4976:213::o;2384:143::-;2454:25;;:::i;:::-;-1:-1:-1;2495:25:49;;;;;;;;2502:18;2495:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2495:25:49;;;;;;;;;;;;;;;;;;;;2384:143;:::o;9779:879::-;9908:13;;;;;10067:39;:7;10098;10067:39;:30;:39;:::i;:::-;10040:66;;10116:23;10156:7;:14;10142:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;10142:29:49;;10116:55;;10181:23;10223:7;:14;10207:31;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;10181:57;;10248:23;10290:7;:14;10274:31;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;10248:57:49;-1:-1:-1;10321:9:49;10316:231;10340:7;:14;10336:1;:18;10316:231;;;10387:33;10409:7;10417:1;10409:10;;;;;;;;;;;;;;10387:21;:33::i;:::-;10375:6;10382:1;10375:9;;;;;;;;;;;;;:45;;;;;;;;;;;10444:34;10458:7;10467;10475:1;10467:10;;;;;;;;;;;;;;10444:13;:34::i;:::-;10434:4;10439:1;10434:7;;;;;;;;;;;;;:44;;;;10502:34;10516:7;10525;10533:1;10525:10;;;;;;;;;;;;;;10502:13;:34::i;:::-;10492:4;10497:1;10492:7;;;;;;;;;;;;;;;;;:44;10356:3;;10316:231;;;-1:-1:-1;10578:7:49;;10599:6;;-1:-1:-1;10599:6:49;-1:-1:-1;10578:7:49;;-1:-1:-1;9779:879:49;-1:-1:-1;;9779:879:49:o;1684:137:123:-;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1766:6;;1745:40;;1782:1;;1745:40;1766:6;;1745:40;;1782:1;;1745:40;1795:6;:19;;;;;;1684:137::o;2216:162:49:-;2292:21;;:::i;:::-;-1:-1:-1;2329:42:49;;;;;;;;;2336:35;2329:42;;;2216:162;:::o;1576:199:91:-;1722:13;;1705:31;;:7;:31;;;:16;:31;;;;;;;;1737:14;;;;1705:47;;;;;;;:63;;1762:6;;1705:47;:63;;;1762:6;1705:63;;;;;;;;;;;;;1576:199;;:::o;2745:569:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;3077:230:47;;;;;:9;;:24;;:230;;2070:5:127;;3136::47;;3155:11;;3180:14;;3208:13;;3235;;3262:9;;3285:12;;3077:230;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3077:230:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2230:11:127;:18;;-1:-1:-1;;;;2230:18:127;-1:-1:-1;;;2230:18:127;;;-1:-1:-1;;;;;;;;;2745:569:47:o;1806:377:51:-;1909:9;1904:273;1928:4;:11;1924:1;:15;1904:273;;;1960:16;1979:4;1984:1;1979:7;;;;;;;;;;;;;;:16;;;1960:35;;2009:12;2024:4;2029:1;2024:7;;;;;;;;;;;;;;;;;;;:15;;;2071:10;2053:7;:29;;;:17;:29;;;;;;;:39;;;;;;;;;;:49;;;;;;;;;;2121:45;;2024:15;;-1:-1:-1;2121:45:51;;;;2053:39;;2024:15;;2121:45;;;;;;;;;;-1:-1:-1;;1941:3:51;;1904:273;;;;1806:377;:::o;5897:247:49:-;5998:21;;:::i;:::-;6035:29;6055:8;6035:19;:29::i;:::-;6081:56;6100:8;6110:26;:7;6100:8;6110:26;:16;:26;:::i;:::-;6081:7;;:56;;:18;:56;:::i;899:77:123:-;963:6;;;;899:77;:::o;1250:92::-;1329:6;;1290:4;;1329:6;;1313:12;:10;:12::i;:::-;:22;;;1306:29;;1250:92;:::o;1855:313:47:-;2020:7;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;2050:111:47;;;;;:9;;:35;;:111;;2070:5:127;;2120:8:47;;2142:9;;2050:111;;;;3083:211:49;3192:7;3215:25;3234:5;3215:18;:25::i;:::-;-1:-1:-1;3257:30:49;;:7;:30;;;:23;:30;;;;;;;3083:211::o;8809:219::-;8943:16;8982:39;:7;9013;8982:39;:30;:39;:::i;2066:260:50:-;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;2224:95:50;;;;;:13;;:21;;:95;;2070:5:127;;2280:8:50;;2302:7;;2224:95;;;;1781:412:91;1901:30;;:::i;:::-;-1:-1:-1;1934:7:91;:23;;;:15;:23;;;;;;;;;1901:62;;;;;;;1934:29;;;;1901:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1978:12;;:17;1974:78;;2026:15;;2011:30;;;;1974:78;2065:12;;;;:17;;2061:78;;2113:15;;;;;2098:30;;:12;;;:30;2061:78;-1:-1:-1;2149:7:91;:23;;;:15;:23;;;;;;;;;:37;;:29;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1781:412::o;7019:491:49:-;7136:21;;:::i;:::-;7171;;:::i;:::-;7206;;:::i;:::-;7241:20;;:::i;:::-;7286:29;7306:8;7286:19;:29::i;:::-;7346:19;7356:8;7346:9;:19::i;:::-;7379:31;7401:8;7379:21;:31::i;:::-;7424:24;7439:8;7424:14;:24::i;:::-;7462:31;7484:8;7462:21;:31::i;:::-;7325:178;;;;;;;;7019:491;;;;;:::o;6063:224:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;6201:79:47;;;;;:9;;:29;;:79;;2070:5:127;;6265::47;;6201:79;;;;1890:162:49;1967:19;;:::i;:::-;-1:-1:-1;2002:43:49;;;;;;;;;2009:36;2002:43;;;1890:162;:::o;8244:369::-;8381:16;;:::i;:::-;8413:29;8433:8;8413:19;:29::i;:::-;8459:147;8490:33;:7;8505;8514:8;8490:33;:14;:33;:::i;:::-;8537:59;8559:8;8569:26;:7;8559:8;8569:26;:16;:26;:::i;8537:59::-;8459:17;:147::i;8009:229::-;8159:16;;:::i;3300:223::-;3404:21;;:::i;:::-;3441:29;3461:8;3441:19;:29::i;:::-;3487;:7;3507:8;3487:29;:19;:29;:::i;6450:346::-;6598:19;;:::i;:::-;6633:33;6653:12;6633:19;:33::i;:::-;6676;6696:12;6676:19;:33::i;:::-;6726:63;:7;6762:12;6776;6726:63;:35;:63;:::i;3482:272:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;3643:104:47;;;;;:9;;:28;;:104;;2070:5:127;;3706:9:47;;3729:8;;3643:104;;;;7516:226:49;7621:16;;:::i;:::-;7653:29;7673:8;7653:19;:29::i;:::-;7699:36;:7;7726:8;7699:36;:26;:36;:::i;1312:258:91:-;1468:27;1488:6;1468:19;:27::i;:::-;1505:58;;;;;:17;;:24;;:58;;1530:7;;1539;;1548:6;;1556;;1505:58;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1505:58:91;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1505:58:91;;;;1312:258;;;:::o;3529:223:49:-;3636:21;;:::i;:::-;3673:29;3693:8;3673:19;:29::i;:::-;3719:26;:7;3736:8;3719:26;:16;:26;:::i;8619:184::-;8733:14;8770:26;8733:14;8788:7;8770:26;:17;:26;:::i;2058:152::-;2130:19;;:::i;:::-;-1:-1:-1;2165:38:49;;;;;;;;;2172:31;2165:38;;;2058:152;:::o;4244:277:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;4407:107:47;;;;;:9;;:29;;:107;;2070:5:127;;4471:8:47;;4493:11;;4407:107;;;;2533:143:49;2603:25;;:::i;:::-;-1:-1:-1;2644:25:49;;;;;;;;2651:18;2644:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2533:143::o;6802:211::-;6898:21;;:::i;:::-;6935:29;6955:8;6935:19;:29::i;:::-;-1:-1:-1;6981:7:49;:25;;;:15;:25;;;;;;;;;6974:32;;;;;;;;;;;;;;;-1:-1:-1;;;6974:32:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6802:211::o;3919:261:47:-;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;4070:103:47;;;;;:9;;:27;;:103;;2070:5:127;;4132:8:47;;4154:9;;4070:103;;;;7735:269;1103:9:123;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;1934:11:127;;-1:-1:-1;;;1934:11:127;;;;1926:55;;;;-1:-1:-1;;;1926:55:127;;;;;;;;;2056:11;:19;;-1:-1:-1;;;;2056:19:127;;;7890:107:47;;;;;:9;;:32;;:107;;2070:5:127;;7957:8:47;;7979;;7890:107;;;;1970::123;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:123;;;;;;;;;2042:28;2061:8;2042:18;:28::i;:::-;1970:107;:::o;9510:263:49:-;9632:21;;:::i;:::-;9655;;:::i;:::-;9699:67;9725:7;9761:4;9699:25;:67::i;4492:236::-;4601:19;;:::i;:::-;4636:29;4656:8;4636:19;:29::i;:::-;-1:-1:-1;4682:7:49;:25;;;:15;:25;;;;;;;;;4675:46;;;;;;;;4682:39;;;;4675:46;;;;4492:236::o;6150:294::-;6258:20;;:::i;:::-;6294:29;6314:8;6294:19;:29::i;:::-;6340:97;6379:8;6401:26;:7;6379:8;6401:26;:16;:26;:::i;:::-;6340:7;;:97;;:25;:97;:::i;14688:207:77:-;14857:31;;14830:4;14857:31;;;:21;;;;;:31;;;;;;;;;14688:207::o;11174:274:49:-;11316:7;:18;11279:162;;11305:29;;:78;;;;-1:-1:-1;11381:1:49;11338:25;;;:15;:25;;;;;:31;:45;:31;:45;;11305:78;11397:4;;11279:162;:12;:162::i;6764:200:77:-;6898:7;6928:23;;;:13;;;;;:23;;;;;:29;;;;6764:200::o;11797:606:49:-;11954:21;;:::i;:::-;11977;;:::i;:::-;12014:24;12041:39;:7;12072;12041:39;:30;:39;:::i;:::-;12014:66;;12117:30;;:::i;:::-;12150:28;12163:7;:14;12150:12;:28::i;:::-;12117:61;-1:-1:-1;12193:9:49;12188:91;12212:7;:14;12208:1;:18;12188:91;;;12247:21;12257:7;12265:1;12257:10;;;;;;;;;;;;;;12247:5;:9;;:21;;;;:::i;:::-;12228:3;;12188:91;;;-1:-1:-1;12288:30:49;:7;12312:5;12288:30;:23;:30;:::i;:::-;12336:60;:7;12361;12370:5;12377:18;12336:60;:24;:60;:::i;:::-;12329:67;;;;;;11797:606;;;;;:::o;9770:261:77:-;9968:13;;9953:29;;9923:7;9953:29;;;:14;;;;;:29;;;;;;;;9983:14;;;;9953:45;;;;;;;:71;;;;;;;9770:261::o;14901:230::-;15092:22;;;;15065:4;15092:22;;;:15;;;;;:22;;;;;;;;:32;;;;;;;;;;;;;14901:230::o;8464:279::-;8633:16;;:::i;:::-;-1:-1:-1;8687:13:77;;8672:29;;;;;;:14;;;:29;;;;;;;;8702:14;;;;8672:45;;;;;;;:64;;;:54;;:64;;;;;;8665:71;;;;;;;;;;;;;;;;;;;;;;;;;;8464:279;;;;;:::o;7196:214::-;7330:21;;:::i;:::-;-1:-1:-1;7374:23:77;;;;:13;;;;;:23;;;;;;;;;7367:36;;;;;;;7374:29;;;;7367:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7196:214::o;10593:463::-;10769:21;;:::i;:::-;10806:25;;:::i;:::-;10834:40;:5;10858:8;10868:5;10834:40;:23;:40;:::i;:::-;10806:68;-1:-1:-1;10892:157:77;10932:5;10806:68;10969:27;:5;10987:8;10969:27;:17;:27;:::i;:::-;10892:157;;;;;;;;;11010:29;;;10892:157;;;:26;:157::i;:::-;10885:164;10593:463;-1:-1:-1;;;;;10593:463:77:o;9488:276::-;9689:13;;9674:29;;;;;;:14;;;:29;;;;;;;;9704:14;;;;9674:45;;;;;;;9635:16;;9674:83;;:74;;:81;:83::i;11714:496::-;11873:21;;:::i;:::-;11910:19;11945:23;;;:13;;;:23;;;;;:35;;;;;11991:27;;:::i;:::-;12021:22;;;;;:15;;;;;;:22;;12037:5;;12021:22;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12021:22:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12021:22:77;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12021:22:77;;;;;;;;;12079:11;;11991:52;;-1:-1:-1;12053:128:77;;12079:16;;12109:4;12053:128;12163:8;12053:12;:128::i;788:96:120:-;867:10;788:96;:::o;11454:252:49:-;11605:30;;;;11589:7;11605:30;;;:23;:30;;;;;;;;;11589:47;;:15;:47;;;;;:53;11656:4;;11554:145;;11589:53;;;;11580:62;;;;11554:145;:12;:145::i;3843:567:73:-;3974:16;;:::i;:::-;4035:11;;;;4061:10;;4027:20;;;;;4057:347;;;4094:130;;;;;;;;;4128:4;4094:130;;;4190:12;;;;4094:130;;;;4157:52;;:10;;:52;;1200:6;4157:52;:32;:52;:::i;:::-;4094:130;;;4087:137;;;;;4057:347;4262:131;;;;;;;;;-1:-1:-1;4262:131:73;;4359:12;;4262:131;;;;4326:52;;:10;;:52;;1200:6;4326:52;:32;:52;:::i;6970:220:77:-;7107:21;;:::i;:::-;-1:-1:-1;7151:23:77;;;;:13;;;;:23;;;;;;;;;7144:39;;;;;;;;7151:32;;;7144:39;;;;;;;;;;;;;;;;6970:220;;;;:::o;10037:550::-;10224:19;;:::i;:::-;10276:34;;;:40;10259:14;10371:27;;;10276:34;10371:13;;:27;;;;;;;;;10355:58;;;;;;;;10371:41;;;;10355:58;;;10335:79;;10276:40;;10355:58;;:15;:58::i;:::-;10335:11;:79::i;:::-;10326:88;;10433:79;10445:6;10453:58;10469:5;:13;;:27;10483:12;10469:27;;;;;;;;;;;:41;;10453:58;;;;;;;;;;;;;;;;;:15;:58::i;10433:79::-;10529:51;;;;;;;;;;;;;10037:550;-1:-1:-1;;;;;10037:550:77:o;7416:794::-;7560:16;;:::i;:::-;7592:27;;:::i;:::-;7622:24;:5;7637:8;7622:24;:14;:24;:::i;:::-;7592:54;;7656:30;;:::i;:::-;7689:27;:5;7707:8;7689:27;:17;:27;:::i;:::-;7656:60;-1:-1:-1;7727:13:77;7743:24;:5;7758:8;7743:24;:14;:24;:::i;:::-;7727:40;;7778:27;;:::i;:::-;7808:112;;;;;;;;7838:4;7808:112;;7863:46;;;;;7808:112;;;;7863:31;;;;;;:46;;7903:4;;7863:46;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7863:46:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7863:46:77;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7863:46:77;;;;;;;;;7808:112;;7778:142;-1:-1:-1;7945:26:77;;:::i;:::-;7985;;:::i;:::-;8024:39;8047:8;8057:5;8024:22;:39::i;:::-;7931:132;;-1:-1:-1;7931:132:77;-1:-1:-1;8163:40:77;7931:132;8163:25;:10;7931:132;8163:25;:14;:25;:::i;:::-;:29;:40;:29;:40;:::i;:::-;8156:47;7416:794;-1:-1:-1;;;;;;;;;7416:794:77:o;8216:242::-;8414:13;;8399:29;;8362:14;8399:29;;;:14;;;;;:29;;;;;;;;8429:14;;;;8399:45;;;;;;;:52;;;;8216:242::o;2178:225:123:-;2251:22;;;2243:73;;;;-1:-1:-1;;;2243:73:123;;;;;;;;;2352:6;;2331:38;;;;;;;2352:6;;2331:38;;2352:6;;2331:38;2379:6;:17;;;;;;;;;;;;;;;2178:225::o;11062:646:77:-;11242:20;;:::i;:::-;11278:30;;:::i;:::-;11311:27;:5;11329:8;11311:27;:17;:27;:::i;:::-;11278:60;;11362:26;;:::i;:::-;11402;;:::i;:::-;11441:39;11464:8;11474:5;11441:22;:39::i;:::-;11348:132;;;;11491:25;;:::i;:::-;11519:23;;;;:13;;;:23;;;;;:38;;;;;:54;11587:24;11519:5;11533:8;11587:24;:14;:24;:::i;:::-;11625:9;:15;;;11654:9;:15;;;11519:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11519:160:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11519:160:77;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11519:160:77;;;;;;;;;11491:188;11062:646;-1:-1:-1;;;;;;;;11062:646:77:o;1294:426:76:-;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1500:171:76;;;;-1:-1:-1;;;1448:255:76;;;;;;;;1423:291;1294:426;;;:::o;1453:299:68:-;1550:18;;:::i;:::-;1591:154;;;-1:-1:-1;1591:154:68;;;1626:19;;;;;;;;;1591:154;;;;1626:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1591:154;;;;1674:30;1693:10;1674:18;:30::i;:::-;1591:154;;1733:1;1591:154;;;;;1584:161;1453:299;-1:-1:-1;;1453:299:68:o;2613:453::-;2883:13;;:20;2857:114;;2883:25;2922:4;2857:114;:12;:114::i;:::-;2982:42;2994:5;:19;;;3015:8;2982:11;:42::i;:::-;-1:-1:-1;3035:19:68;;:24;;3058:1;3035:24;;;2613:453::o;23141:2105:77:-;23312:5;:19;;;23289:43;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;23273:59:77;;:13;;23682:1352;23703:5;:19;;;:26;23699:1;:30;23682:1352;;;23750:11;23764:5;:19;;;23784:1;23764:22;;;;;;;;;;;;;;23750:36;;23800:1137;23807:11;;23800:1137;;23838:15;23856:35;23884:6;23856:27;:35::i;:::-;23838:53;;23909:13;23925:38;23949:1;23952:10;23925:23;:38::i;:::-;23909:54;-1:-1:-1;23981:13:77;23997:24;:5;23909:54;23997:24;:14;:24;:::i;:::-;24043:23;;;;:13;;;:23;;;;;:33;23981:40;;-1:-1:-1;;;;24043:33:77;;;;24039:786;;;24127:280;;;;;;;;;;;;;;;;;;24251:4;24127:280;;;;;;;;;;24288:27;:5;24176:8;24288:27;:17;:27;:::i;:::-;:34;24127:280;;;;;;24351:33;:5;24368:8;24378:5;24351:33;:16;:33;:::i;:::-;24127:280;;24100:13;;:24;;24114:9;;;;;24100:24;;;;;;;;;;;:307;;;;24039:786;;;24558:248;;;;;;;;;;;;;;;;;;-1:-1:-1;24558:248:77;;;;;;;;;;;;;;;;24750:33;:5;24607:8;24644:5;24750:33;:16;:33;:::i;:::-;24558:248;;24531:13;;:24;;24545:9;;;;;24531:24;;;;;;;;;;;:275;;;;24039:786;24889:33;24903:6;24911:10;24889:13;:33::i;:::-;24880:42;;23800:1137;;;;;;24965:5;:19;;;24954:7;:30;24950:74;;;25004:5;;;24950:74;-1:-1:-1;23731:3:77;;23682:1352;;;-1:-1:-1;25070:19:77;;;;25209:13;;:20;25044:195;;25070:30;;;;25114:4;;25044:195;;:12;:195::i;12216:1243::-;12442:21;;:::i;:::-;12465;;:::i;:::-;12502:33;;:::i;:::-;12545;;:::i;:::-;12589:18;12610:21;:5;:19;:21::i;:::-;12589:42;-1:-1:-1;12646:9:77;12641:768;12665:10;12661:1;:14;12641:768;;;12696:24;;:::i;:::-;12723:51;12736:7;12745:19;:5;12762:1;12745:19;:16;:19;:::i;:::-;:28;12723:5;;:51;;:12;:51;:::i;:::-;12696:78;;12793:16;:7;:14;:16::i;:::-;12789:63;;;12829:8;;;12789:63;12866:18;12887:50;12905:19;:5;12922:1;12905:19;:16;:19;:::i;:::-;:25;;;:31;12887:13;;;;;:50;:17;:50;:::i;:::-;12866:71;;12951:26;;:::i;:::-;12980:13;:11;:13::i;:::-;12951:42;;13011:18;13007:140;;;13058:74;13074:13;;;:43;13088:19;:5;13105:1;13088:19;:16;:19;:::i;:::-;:28;13074:43;;;;;;;;;;;;;;13088:28;13074:43;13058:74;;;;;;;;13074:57;;13058:74;;;:15;:74::i;:::-;13049:83;;13007:140;13165:12;;13161:238;;;13217:54;13239:31;13251:10;13263:6;13239:11;:31::i;:::-;13217:17;;;:54;:21;:54;:::i;:::-;13197:74;;13161:238;;;13330:54;13352:31;13364:10;13376:6;13352:11;:31::i;:::-;13330:17;;;:54;:21;:54;:::i;:::-;13310:74;;13161:238;12641:768;;;;12677:3;;12641:768;;;-1:-1:-1;13427:11:77;;13440;;-1:-1:-1;12216:1243:77;-1:-1:-1;;;;;;12216:1243:77:o;2227:1299:73:-;2443:12;;:::i;:::-;2485:26;;:::i;:::-;2525;;:::i;:::-;2564:30;2578:8;2588:5;2564:13;:30::i;:::-;2471:123;;;;2652:18;2673;:16;:18::i;:::-;2652:39;;2701:22;2726:58;2741:42;2766:5;:16;;;2741:42;;2749:11;2741:20;;:24;;:42;;;;:::i;:::-;2726:10;;;:58;:14;:58;:::i;:::-;2701:83;;2842:22;2878:23;2891:9;2878:12;:23::i;:::-;2874:328;;;-1:-1:-1;2934:1:73;2874:328;;;2983:41;2995:14;3011:12;2983:11;:41::i;:::-;2966:58;;3060:9;:15;;;3042:9;:15;;;:33;3038:154;;;3112:65;3128:14;3144:9;:15;;;3161:9;:15;;;3112;:65::i;:::-;3095:82;;3038:154;3236:14;3218;:32;;3211:40;;;;3269:250;;;;;;;;;3353:12;;3269:250;;3297:76;;:69;;;;:51;:69;3327:14;1200:6;3297:15;:51::i;:::-;:55;:69;:55;:69;:::i;:::-;:74;:76::i;:::-;3269:250;;;;;;;3451:12;;;;3269:250;;;3395:76;;:69;;;:51;:69;3425:14;1200:6;3395:15;:51::i;:76::-;3269:250;;;;;;3497:11;3269:250;;;;;3262:257;;;;;;;2227:1299;;;;;;;:::o;4037:109:70:-;4093:16;4128:3;:11;;4121:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4037:109;;;:::o;1726:561:76:-;1886:4;1881:400;;2000:24;2019:4;2000:18;:24::i;:::-;2050:5;2081:26;2100:6;2081:18;:26::i;:::-;2133:6;2165:19;2175:8;2165:9;:19::i;:::-;1958:280;;;;;;;;;2210:6;;1958:280;;;;1881:400;1726:561;;;;:::o;2059:724:74:-;2223:7;2250:11;;;:29;;-1:-1:-1;2265:14:74;;2250:29;2246:151;;;2358:28;2371:1;2374:11;2358:12;:28::i;:::-;2351:35;;;;2246:151;2406:11;2420:21;:6;2431:9;2420:21;:10;:21;:::i;:::-;2406:35;-1:-1:-1;2680:96:74;2735:32;2765:1;2735:25;2758:1;2735:18;:11;2765:1;2735:18;:15;:18;:::i;:::-;:22;:25;:22;:25;:::i;:32::-;2708:23;:6;2719:11;2708:23;:10;:23;:::i;:::-;:59;;:67;;2774:1;2708:67;;;2770:1;2708:67;2680:96;;:23;:6;2691:11;2680:23;:10;:23;:::i;1283:168:69:-;1376:11;;:::i;:::-;1410:34;;;;;;;;;1424:7;;1410:34;;1424:17;;1006:6;1424:17;:11;:17;:::i;:::-;1410:34;;1403:41;1283:168;-1:-1:-1;;1283:168:69:o;1457:188::-;1570:7;1600:38;1616:6;1624:1;:7;;;1006:6;1600:15;:38::i;5176:601:73:-;5320:16;;:::i;:::-;5338;;:::i;:::-;5370:26;;:::i;:::-;-1:-1:-1;5399:81:73;;;;;;;;;5429:4;5399:81;;;5454:15;;;;5399:81;;;;;;5490:26;;:::i;:::-;-1:-1:-1;5519:82:73;;;;;;;;;-1:-1:-1;5519:82:73;;5575:15;;5519:82;;;;;;5611:26;;:::i;:::-;5640;5649:9;5660:5;5640:8;:26::i;:::-;5611:55;;5676:26;;:::i;:::-;5705;5714:9;5725:5;5705:8;:26::i;:::-;5749:9;;;;-1:-1:-1;5176:601:73;;-1:-1:-1;;;;;;5176:601:73:o;4555:169:80:-;4665:10;;:::i;:::-;4698:19;4702:1;4705:11;4714:1;4705:8;:11::i;:::-;4698:3;:19::i;6359:966:76:-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;6559:23:76;;;;-1:-1:-1;49:4;6688:571:76;6709:5;;6688:571;;6960:9;;6862:3;;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:76;;6956:293;6688:571;;;-1:-1:-1;;7306:12:76;;;7316:1;7306:12;;;;;;;;;7299:19;-1:-1:-1;;6359:966:76:o;996:146:67:-;1058:13;893:1;942:3;1102:9;:25;1101:33;1090:45;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1090:45:67;-1:-1:-1;1083:52:67;996:146;-1:-1:-1;;996:146:67:o;1308:263::-;1517:20;;942:3;1427:24;;;1483;;;;893:1;1542:21;;;1517:7;;1427:24;;1517:20;;;;;;;;;;;:47;;;;;;;;;;;1308:263;;;;:::o;2086:1014::-;2152:4;2223:3;2241:15;;;:19;2237:100;;2276:10;;2237:100;;;2323:3;2317:9;;;;;2237:100;2351:14;;;:18;2347:97;;2385:9;;2347:97;;;2431:2;2425:8;;;;;2347:97;2458:14;;;:18;2454:97;;2492:9;;2454:97;;;2538:2;2532:8;;;;;2454:97;2565:14;;;:18;2561:97;;2599:9;;2561:97;;;2645:2;2639:8;;;;;2561:97;2672:13;;;:17;2668:94;;2705:8;;2668:94;;;2750:1;2744:7;;;;;2668:94;2780:3;2776:7;;:11;2772:88;;2803:8;;2772:88;;;2848:1;2842:7;;;;;2772:88;2878:3;2874:7;;:11;2870:143;;2901:8;;2870:143;;;2946:1;2940:7;;;;;2870:143;3031:3;3027:7;;:11;3023:50;;3054:8;;3090:3;2086:1014;-1:-1:-1;;2086:1014:67:o;1148:154::-;942:3;1267:21;;;;1266:29;;1148:154::o;1895:137::-;893:1;2014:10;;2004:21;;;1895:137::o;2293:663:76:-;2479:4;2474:476;;2593:24;2612:4;2593:18;:24::i;:::-;2643:5;2674:26;2693:6;2674:18;:26::i;:::-;2726:6;2758:19;2768:8;2758:9;:19::i;:::-;2803:5;2834:19;2844:8;2834:9;:19::i;:::-;2551:356;;;;;;;;;;;2879:6;;2551:356;;;;2474:476;2293:663;;;;;:::o;1809:167:68:-;1949:13;:20;;1809:167::o;3072:371::-;3202:17;;:::i;:::-;3269:13;;:20;3235:164;;3261:28;;;;3303:4;;3235:164;;3261:5;;3235:12;:164::i;:::-;3416:13;;:20;;3430:5;;3416:20;;;;;;;;;;;;3409:27;;3072:371;;;;:::o;8749:448:77:-;8918:16;;:::i;:::-;8950:20;;:::i;:::-;8973:31;:5;8986:7;8995:8;8973:31;:12;:31;:::i;:::-;8950:54;;9019:12;:3;:10;:12::i;:::-;9015:65;;;9054:15;:13;:15::i;:::-;9047:22;;;;;9015:65;9090:27;;:::i;:::-;9120:24;:5;9135:8;9120:24;:14;:24;:::i;:::-;9090:54;;9161:29;9179:3;9184:5;9161:17;:29::i;:::-;9154:36;8749:448;-1:-1:-1;;;;;;8749:448:77:o;6182:137:80:-;6300:7;;;:12;;6182:137::o;2159:459:122:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:122;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:122;;;;;;;;1153:124:69;1215:11;;:::i;:::-;-1:-1:-1;1249:21:69;;;;;;;;;1006:6;1249:21;;1153:124;:::o;1651:188::-;1764:7;1794:38;1810:6;1006;1824:1;:7;;;1794:15;:38::i;834:176:122:-;892:7;923:5;;;946:6;;;;938:46;;;;-1:-1:-1;;;938:46:122;;;;;;;;910:132:78;980:6;1009:26;1019:15;1009:9;:26::i;:::-;1002:33;;910:132;:::o;1274:134:122:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;1110:228:74:-;1263:7;1293:38;1319:11;1293:21;:6;1304:9;1293:21;:10;:21;:::i;3110:310::-;3201:6;3246;3263:127;3289:16;;;;;3319:4;3263:127;3246:6;3263:12;:127::i;7331:912:76:-;7425:12;7457:10;7453:51;;-1:-1:-1;7483:10:76;;;;;;;;;;;;;;;;;;;7453:51;7565:5;7553:9;7604:69;7611:6;;7604:69;;7633:8;;7660:2;7655:7;;;;7604:69;;;7714:17;7744:6;7734:17;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;7734:17:76;87:34:-1;135:17;;-1:-1;7734:17:76;-1:-1:-1;7843:5:76;;-1:-1:-1;7714:37:76;-1:-1:-1;7875:6:76;7858:357;7883:5;;7858:357;;8036:3;;8132:2;8128:1;:6;902:2;8114:21;8103:34;;8093:4;8098:1;8093:7;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;8202:2:76;8197:7;;;;7858:357;;;-1:-1:-1;8232:4:76;7331:912;-1:-1:-1;;;;7331:912:76:o;3073:130:122:-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;4500:128::-;4558:7;4584:37;4588:1;4591;4584:37;;;;;;;;;;;;;;;;;:3;:37::i;5660:203:80:-;5753:10;;:::i;:::-;-1:-1:-1;5786:70:80;;;;;;;;;5811:6;;5810:7;5786:70;;;5838:7;;;;5786:70;;;;5660:203;;;:::o;4730:610::-;4840:10;;:::i;:::-;4866:17;;:::i;:::-;4907:6;;4897;;:16;;;;;;4893:418;;;4943:6;;4929:20;;;;4991:7;;;;;5000;;;;4978:30;;4991:7;4978:12;:30::i;:::-;4963:12;;;:45;4893:418;;;5054:1;:7;;;5043:1;:7;;;:18;5039:262;;5095:6;;5081:20;;;;5147:7;;;;;5156;;;;5134:30;;5147:7;5134:12;:30::i;5039:262::-;5217:6;;5203:20;;;;5269:7;;;;;5278;;;;5256:30;;5269:7;5256:12;:30::i;:::-;5241:12;;;:45;:12;4730:610;-1:-1:-1;;;4730:610:80:o;3722:137::-;3840:7;;;:12;;;;3722:137::o;4381:168::-;4447:10;;:::i;:::-;-1:-1:-1;4480:62:80;;;;;;;;;-1:-1:-1;4480:62:80;;;;;;;4381:168;:::o;3426:310:74:-;3517:6;3562;3579:127;3605:16;;;;;3635:4;3579:127;3562:6;3579:12;:127::i;1732:187:122:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:122;;;;;;;;;;-1:-1:-1;;;1888:5:122;;;1732:187::o;3718:338::-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:122;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:122:o;5132:163::-;5218:7;5253:12;5245:6;5237:29;;;;-1:-1:-1;;;5237:29:122;;;;;;;;;;;5287:1;5283;:5;;;;;;;5132:163;-1:-1:-1;;;;5132:163:122:o;1008:1187:91:-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1008:1187:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5:130:-1:-;72:20;;97:33;72:20;97:33;;178:753;;320:3;313:4;305:6;301:17;297:27;287:2;;338:1;335;328:12;287:2;375:6;362:20;397:105;412:89;494:6;412:89;;;397:105;;;530:21;;;574:4;562:17;;;;388:114;;-1:-1;587:14;;562:17;682:1;667:258;692:6;689:1;686:13;667:258;;;775:3;762:17;754:6;750:30;799:62;857:3;845:10;799:62;;;787:75;;-1:-1;885:4;876:14;;;;904;;;;;714:1;707:9;667:258;;;671:14;280:651;;;;;;;;969:764;;1105:3;1098:4;1090:6;1086:17;1082:27;1072:2;;1123:1;1120;1113:12;1072:2;1160:6;1147:20;1182:99;1197:83;1273:6;1197:83;;1182:99;1173:108;;1298:5;1323:6;1316:5;1309:21;1353:4;1345:6;1341:17;1331:27;;1375:4;1370:3;1366:14;1359:21;;1428:6;1475:3;1467:4;1459:6;1455:17;1450:3;1446:27;1443:36;1440:2;;;1492:1;1489;1482:12;1440:2;1517:1;1502:225;1527:6;1524:1;1521:13;1502:225;;;1585:3;1607:56;1659:3;1647:10;1607:56;;;1595:69;;-1:-1;1687:4;1678:14;;;;1715:4;1706:14;;;;;1549:1;1542:9;1502:225;;1776:785;;1919:3;1912:4;1904:6;1900:17;1896:27;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:106;2011:90;2094:6;2011:90;;1996:106;1987:115;;2119:5;2144:6;2137:5;2130:21;2174:4;2166:6;2162:17;2152:27;;2196:4;2191:3;2187:14;2180:21;;2249:6;2296:3;2288:4;2280:6;2276:17;2271:3;2267:27;2264:36;2261:2;;;2313:1;2310;2303:12;2261:2;2338:1;2323:232;2348:6;2345:1;2342:13;2323:232;;;2406:3;2428:63;2487:3;2475:10;2428:63;;;2416:76;;-1:-1;2515:4;2506:14;;;;2543:4;2534:14;;;;;2370:1;2363:9;2323:232;;2587:707;;2704:3;2697:4;2689:6;2685:17;2681:27;2671:2;;2722:1;2719;2712:12;2671:2;2759:6;2746:20;2781:80;2796:64;2853:6;2796:64;;2781:80;2772:89;;2878:5;2903:6;2896:5;2889:21;2933:4;2925:6;2921:17;2911:27;;2955:4;2950:3;2946:14;2939:21;;3008:6;3055:3;3047:4;3039:6;3035:17;3030:3;3026:27;3023:36;3020:2;;;3072:1;3069;3062:12;3020:2;3097:1;3082:206;3107:6;3104:1;3101:13;3082:206;;;3165:3;3187:37;3220:3;3208:10;3187:37;;;3175:50;;-1:-1;3248:4;3239:14;;;;3267;;;;;3129:1;3122:9;3082:206;;3302:124;3366:20;;3391:30;3366:20;3391:30;;3434:432;;3531:3;3524:4;3516:6;3512:17;3508:27;3498:2;;3549:1;3546;3539:12;3498:2;3586:6;3573:20;3608:60;3623:44;3660:6;3623:44;;3608:60;3599:69;;3688:6;3681:5;3674:21;3724:4;3716:6;3712:17;3757:4;3750:5;3746:16;3792:3;3783:6;3778:3;3774:16;3771:25;3768:2;;;3809:1;3806;3799:12;3768:2;3819:41;3853:6;3848:3;3843;3819:41;;;3491:375;;;;;;;;3874:180;3966:20;;3991:58;3966:20;3991:58;;4242:162;4325:20;;4350:49;4325:20;4350:49;;4411:176;4501:20;;4526:56;4501:20;4526:56;;4771:154;4850:20;;4875:45;4850:20;4875:45;;4964:1528;;5078:6;5066:9;5061:3;5057:19;5053:32;5050:2;;;5098:1;5095;5088:12;5050:2;5116:22;5131:6;5116:22;;;5107:31;-1:-1;5194:1;5226:65;5287:3;5267:9;5226:65;;;5201:91;;-1:-1;5358:2;5391:49;5436:3;5412:22;;;5391:49;;;5384:4;5377:5;5373:16;5366:75;5313:139;5504:2;5537:75;5608:3;5599:6;5588:9;5584:22;5537:75;;;5530:4;5523:5;5519:16;5512:101;5462:162;5685:3;5719:49;5764:3;5755:6;5744:9;5740:22;5719:49;;;5712:4;5705:5;5701:16;5694:75;5634:146;5843:3;5877:49;5922:3;5913:6;5902:9;5898:22;5877:49;;;5870:4;5863:5;5859:16;5852:75;5790:148;5996:3;6030:49;6075:3;6066:6;6055:9;6051:22;6030:49;;;6023:4;6016:5;6012:16;6005:75;5948:143;6151:3;6185:49;6230:3;6221:6;6210:9;6206:22;6185:49;;;6178:4;6171:5;6167:16;6160:75;6101:145;6324:3;6313:9;6309:19;6296:33;6349:18;6341:6;6338:30;6335:2;;;6381:1;6378;6371:12;6335:2;6416:54;6466:3;6457:6;6446:9;6442:22;6416:54;;;6409:4;6402:5;6398:16;6391:80;6256:226;5044:1448;;;;;6530:804;;6645:4;6633:9;6628:3;6624:19;6620:30;6617:2;;;6663:1;6660;6653:12;6617:2;6681:20;6696:4;6681:20;;;6672:29;-1:-1;6751:1;6783:46;6825:3;6805:9;6783:46;;;6758:72;;-1:-1;6899:2;6932:72;7000:3;6976:22;;;6932:72;;;6925:4;6918:5;6914:16;6907:98;6851:165;7065:2;7098:69;7163:3;7154:6;7143:9;7139:22;7098:69;;;7091:4;7084:5;7080:16;7073:95;7026:153;7230:2;7263:49;7308:3;7299:6;7288:9;7284:22;7263:49;;;7256:4;7249:5;7245:16;7238:75;7189:135;6611:723;;;;;7367:322;;7479:4;7467:9;7462:3;7458:19;7454:30;7451:2;;;7497:1;7494;7487:12;7451:2;7515:20;7530:4;7515:20;;;7506:29;-1:-1;7586:1;7618:49;7663:3;7643:9;7618:49;;;7593:75;;-1:-1;7604:5;7445:244;-1:-1;;7445:244;7724:617;;7837:4;7825:9;7820:3;7816:19;7812:30;7809:2;;;7855:1;7852;7845:12;7809:2;7873:20;7888:4;7873:20;;;7864:29;-1:-1;7945:1;7977:48;8021:3;8001:9;7977:48;;;7952:74;;-1:-1;8089:2;8122:48;8166:3;8142:22;;;8122:48;;;8115:4;8108:5;8104:16;8097:74;8047:135;8238:2;8271:48;8315:3;8306:6;8295:9;8291:22;8271:48;;;8264:4;8257:5;8253:16;8246:74;8192:139;7803:538;;;;;8374:464;;8482:4;8470:9;8465:3;8461:19;8457:30;8454:2;;;8500:1;8497;8490:12;8454:2;8518:20;8533:4;8518:20;;;8509:29;-1:-1;8589:1;8621:49;8666:3;8646:9;8621:49;;;8596:75;;-1:-1;8734:2;8767:49;8812:3;8788:22;;;8767:49;;;8760:4;8753:5;8749:16;8742:75;8692:136;8448:390;;;;;9377:472;;9492:4;9480:9;9475:3;9471:19;9467:30;9464:2;;;9510:1;9507;9500:12;9464:2;9528:20;9543:4;9528:20;;;9519:29;-1:-1;9602:1;9634:49;9679:3;9659:9;9634:49;;;9609:75;;-1:-1;9748:2;9781:46;9823:3;9799:22;;;9781:46;;9879:462;;9990:4;9978:9;9973:3;9969:19;9965:30;9962:2;;;10008:1;10005;9998:12;9962:2;10026:20;10041:4;10026:20;;;10017:29;-1:-1;10096:1;10128:46;10170:3;10150:9;10128:46;;;10103:72;;-1:-1;10237:2;10270:49;10315:3;10291:22;;;10270:49;;10376:345;;10500:4;10488:9;10483:3;10479:19;10475:30;10472:2;;;10518:1;10515;10508:12;10472:2;10536:20;10551:4;10536:20;;;10527:29;-1:-1;10607:1;10639:60;10695:3;10675:9;10639:60;;11464:130;11531:20;;11556:33;11531:20;11556:33;;11601:130;11668:20;;11693:33;11668:20;11693:33;;11738:134;11816:13;;11834:33;11816:13;11834:33;;11879:128;11945:20;;11970:32;11945:20;11970:32;;12014:128;12080:20;;12105:32;12080:20;12105:32;;12149:241;;12253:2;12241:9;12232:7;12228:23;12224:32;12221:2;;;12269:1;12266;12259:12;12221:2;12304:1;12321:53;12366:7;12346:9;12321:53;;12397:366;;;12518:2;12506:9;12497:7;12493:23;12489:32;12486:2;;;12534:1;12531;12524:12;12486:2;12569:1;12586:53;12631:7;12611:9;12586:53;;;12576:63;;12548:97;12676:2;12694:53;12739:7;12730:6;12719:9;12715:22;12694:53;;;12684:63;;12655:98;12480:283;;;;;;12770:360;;;12888:2;12876:9;12867:7;12863:23;12859:32;12856:2;;;12904:1;12901;12894:12;12856:2;12939:1;12956:53;13001:7;12981:9;12956:53;;;12946:63;;12918:97;13046:2;13064:50;13106:7;13097:6;13086:9;13082:22;13064:50;;13137:1169;;;;;;;;13430:3;13418:9;13409:7;13405:23;13401:33;13398:2;;;13447:1;13444;13437:12;13398:2;13482:1;13499:53;13544:7;13524:9;13499:53;;;13489:63;;13461:97;13589:2;13607:75;13674:7;13665:6;13654:9;13650:22;13607:75;;;13597:85;;13568:120;13719:2;13737:78;13807:7;13798:6;13787:9;13783:22;13737:78;;;13727:88;;13698:123;13852:2;13870:76;13938:7;13929:6;13918:9;13914:22;13870:76;;;13860:86;;13831:121;13983:3;14002:76;14070:7;14061:6;14050:9;14046:22;14002:76;;;13992:86;;13962:122;14115:3;14134:50;14176:7;14167:6;14156:9;14152:22;14134:50;;;14124:60;;14094:96;14221:3;14240:50;14282:7;14273:6;14262:9;14258:22;14240:50;;;14230:60;;14200:96;13392:914;;;;;;;;;;;14313:726;;;14528:2;14516:9;14507:7;14503:23;14499:32;14496:2;;;14544:1;14541;14534:12;14496:2;14579:31;;14630:18;14619:30;;14616:2;;;14662:1;14659;14652:12;14616:2;14682:97;14771:7;14762:6;14751:9;14747:22;14682:97;;;14672:107;;14558:227;14844:2;14833:9;14829:18;14816:32;14868:18;14860:6;14857:30;14854:2;;;14900:1;14897;14890:12;14854:2;14920:103;15015:7;15006:6;14995:9;14991:22;14920:103;;15046:429;;15201:2;15189:9;15180:7;15176:23;15172:32;15169:2;;;15217:1;15214;15207:12;15169:2;15252:31;;15303:18;15292:30;;15289:2;;;15335:1;15332;15325:12;15289:2;15355:104;15451:7;15442:6;15431:9;15427:22;15355:104;;15482:502;;;15628:2;15616:9;15607:7;15603:23;15599:32;15596:2;;;15644:1;15641;15634:12;15596:2;15679:31;;15730:18;15719:30;;15716:2;;;15762:1;15759;15752:12;15716:2;15782:78;15852:7;15843:6;15832:9;15828:22;15782:78;;15991:287;;16118:2;16106:9;16097:7;16093:23;16089:32;16086:2;;;16134:1;16131;16124:12;16086:2;16169:1;16186:76;16254:7;16234:9;16186:76;;16285:287;;16412:2;16400:9;16391:7;16387:23;16383:32;16380:2;;;16428:1;16425;16418:12;16380:2;16463:1;16480:76;16548:7;16528:9;16480:76;;16579:436;;;16735:2;16723:9;16714:7;16710:23;16706:32;16703:2;;;16751:1;16748;16741:12;16703:2;16786:1;16803:76;16871:7;16851:9;16803:76;;;16793:86;;16765:120;16916:2;16934:65;16991:7;16982:6;16971:9;16967:22;16934:65;;17022:412;;;17166:2;17154:9;17145:7;17141:23;17137:32;17134:2;;;17182:1;17179;17172:12;17134:2;17217:1;17234:76;17302:7;17282:9;17234:76;;;17224:86;;17196:120;17347:2;17365:53;17410:7;17401:6;17390:9;17386:22;17365:53;;17441:582;;;;17624:3;17612:9;17603:7;17599:23;17595:33;17592:2;;;17641:1;17638;17631:12;17592:2;17676:1;17693:76;17761:7;17741:9;17693:76;;;17683:86;;17655:120;17806:2;17824:53;17869:7;17860:6;17849:9;17845:22;17824:53;;;17814:63;;17785:98;17914:2;17932:75;17999:7;17990:6;17979:9;17975:22;17932:75;;;17922:85;;17893:120;17586:437;;;;;;18030:311;;18169:2;18157:9;18148:7;18144:23;18140:32;18137:2;;;18185:1;18182;18175:12;18137:2;18220:1;18237:88;18317:7;18297:9;18237:88;;18960:241;;19064:2;19052:9;19043:7;19039:23;19035:32;19032:2;;;19080:1;19077;19070:12;19032:2;19115:1;19132:53;19177:7;19157:9;19132:53;;19208:263;;19323:2;19311:9;19302:7;19298:23;19294:32;19291:2;;;19339:1;19336;19329:12;19291:2;19374:1;19391:64;19447:7;19427:9;19391:64;;19478:366;;;19599:2;19587:9;19578:7;19574:23;19570:32;19567:2;;;19615:1;19612;19605:12;19567:2;19650:1;19667:53;19712:7;19692:9;19667:53;;19851:360;;;19969:2;19957:9;19948:7;19944:23;19940:32;19937:2;;;19985:1;19982;19975:12;19937:2;20020:1;20037:53;20082:7;20062:9;20037:53;;20218:416;;;20364:2;20352:9;20343:7;20339:23;20335:32;20332:2;;;20380:1;20377;20370:12;20332:2;20415:1;20432:53;20477:7;20457:9;20432:53;;;20422:63;;20394:97;20522:2;20540:78;20610:7;20601:6;20590:9;20586:22;20540:78;;21058:412;;;21202:2;21190:9;21181:7;21177:23;21173:32;21170:2;;;21218:1;21215;21208:12;21170:2;21253:1;21270:53;21315:7;21295:9;21270:53;;;21260:63;;21232:97;21360:2;21378:76;21446:7;21437:6;21426:9;21422:22;21378:76;;21477:415;;;21622:3;21610:9;21601:7;21597:23;21593:33;21590:2;;;21639:1;21636;21629:12;21590:2;21674:1;21691:53;21736:7;21716:9;21691:53;;;21681:63;;21653:97;21781:2;21799:77;21868:7;21859:6;21848:9;21844:22;21799:77;;21899:366;;;22020:2;22008:9;21999:7;21995:23;21991:32;21988:2;;;22036:1;22033;22026:12;21988:2;22071:1;22088:53;22133:7;22113:9;22088:53;;;22078:63;;22050:97;22178:2;22196:53;22241:7;22232:6;22221:9;22217:22;22196:53;;22273:173;;22360:46;22402:3;22394:6;22360:46;;;-1:-1;;22435:4;22426:14;;22353:93;22455:273;;22614:108;22718:3;22710:6;22614:108;;22737:269;;22870:96;22962:3;22954:6;22870:96;;;-1:-1;;22995:4;22986:14;;22863:143;23015:249;;23138:86;23220:3;23212:6;23138:86;;23273:249;;23396:86;23478:3;23470:6;23396:86;;23531:173;;23618:46;23660:3;23652:6;23618:46;;23910:103;23983:24;24001:5;23983:24;;;23978:3;23971:37;23965:48;;;24417:690;;24562:54;24610:5;24562:54;;;24629:86;24708:6;24703:3;24629:86;;;24622:93;;24736:56;24786:5;24736:56;;;24812:7;24840:1;24825:260;24850:6;24847:1;24844:13;24825:260;;;24917:6;24911:13;24938:63;24997:3;24982:13;24938:63;;;24931:70;;25018:60;25071:6;25018:60;;;25008:70;-1:-1;;24872:1;24865:9;24825:260;;;-1:-1;25098:3;;24541:566;-1:-1;;;;;24541:566;25182:1072;;25385:79;25458:5;25385:79;;;25477:119;25589:6;25584:3;25477:119;;;25470:126;;25619:3;25661:4;25653:6;25649:17;25644:3;25640:27;25688:81;25763:5;25688:81;;;25789:7;25817:1;25802:413;25827:6;25824:1;25821:13;25802:413;;;25889:9;25883:4;25879:20;25874:3;25867:33;25934:6;25928:13;25956:122;26073:4;26058:13;25956:122;;;25948:130;;26095:85;26173:6;26095:85;;;26203:4;26194:14;;;;;26085:95;-1:-1;;25849:1;25842:9;25802:413;;;-1:-1;26228:4;;25364:890;-1:-1;;;;;;;25364:890;26317:866;;26508:73;26575:5;26508:73;;;26594:113;26700:6;26695:3;26594:113;;;26587:120;;26728:75;26797:5;26728:75;;;26823:7;26851:1;26836:325;26861:6;26858:1;26855:13;26836:325;;;26928:6;26922:13;26949:109;27054:3;27039:13;26949:109;;;26942:116;;27075:79;27147:6;27075:79;;;27065:89;-1:-1;;26883:1;26876:9;26836:325;;27240:834;;27421:72;27487:5;27421:72;;;27506:104;27603:6;27598:3;27506:104;;;27499:111;;27631:74;27699:5;27631:74;;;27725:7;27753:1;27738:314;27763:6;27760:1;27757:13;27738:314;;;27830:6;27824:13;27851:99;27946:3;27931:13;27851:99;;;27844:106;;27967:78;28038:6;27967:78;;;27957:88;-1:-1;;27785:1;27778:9;27738:314;;28131:834;;28312:72;28378:5;28312:72;;;28397:104;28494:6;28489:3;28397:104;;;28390:111;;28522:74;28590:5;28522:74;;;28616:7;28644:1;28629:314;28654:6;28651:1;28648:13;28629:314;;;28721:6;28715:13;28742:99;28837:3;28822:13;28742:99;;;28735:106;;28858:78;28929:6;28858:78;;;28848:88;-1:-1;;28676:1;28669:9;28629:314;;29004:690;;29149:54;29197:5;29149:54;;;29216:86;29295:6;29290:3;29216:86;;;29209:93;;29323:56;29373:5;29323:56;;;29399:7;29427:1;29412:260;29437:6;29434:1;29431:13;29412:260;;;29504:6;29498:13;29525:63;29584:3;29569:13;29525:63;;;29518:70;;29605:60;29658:6;29605:60;;;29595:70;-1:-1;;29459:1;29452:9;29412:260;;29733:714;;29886:54;29934:5;29886:54;;;29953:94;30040:6;30035:3;29953:94;;;29946:101;;30068:56;30118:5;30068:56;;;30144:7;30172:1;30157:268;30182:6;30179:1;30176:13;30157:268;;;30249:6;30243:13;30270:71;30337:3;30322:13;30270:71;;;30263:78;;30358:60;30411:6;30358:60;;;30348:70;-1:-1;;30204:1;30197:9;30157:268;;30455:94;30522:21;30537:5;30522:21;;30895:148;30994:43;31013:23;31030:5;31013:23;;;30994:43;;31050:148;31149:43;31168:23;31185:5;31168:23;;31205:152;31306:45;31326:24;31344:5;31326:24;;31364:356;;31492:38;31524:5;31492:38;;;31542:88;31623:6;31618:3;31542:88;;;31535:95;;31635:52;31680:6;31675:3;31668:4;31661:5;31657:16;31635:52;;;31699:16;;;;;31472:248;-1:-1;;31472:248;31727:331;;31831:34;31859:5;31831:34;;;31877:68;31938:6;31933:3;31877:68;;;31870:75;;31950:52;31995:6;31990:3;31983:4;31976:5;31972:16;31950:52;;;32023:29;32045:6;32023:29;;;32014:39;;;;31811:247;-1:-1;;;31811:247;32065:166;32163:62;32219:5;32163:62;;33141:152;33236:51;33281:5;33236:51;;33300:166;33402:58;33454:5;33402:58;;33640:146;33733:47;33774:5;33733:47;;34148:375;;34308:67;34372:2;34367:3;34308:67;;;34408:34;34388:55;;34477:8;34472:2;34463:12;;34456:30;34514:2;34505:12;;34294:229;-1:-1;;34294:229;34532:327;;34692:67;34756:2;34751:3;34692:67;;;34792:29;34772:50;;34850:2;34841:12;;34678:181;-1:-1;;34678:181;34868:370;;35028:67;35092:2;35087:3;35028:67;;;35128:34;35108:55;;35197:3;35192:2;35183:12;;35176:25;35229:2;35220:12;;35014:224;-1:-1;;35014:224;35247:332;;35407:67;35471:2;35466:3;35407:67;;;35507:34;35487:55;;35570:2;35561:12;;35393:186;-1:-1;;35393:186;35588:331;;35748:67;35812:2;35807:3;35748:67;;;35848:33;35828:54;;35910:2;35901:12;;35734:185;-1:-1;;35734:185;35988:1688;36215:23;;35988:1688;;36141:6;36132:16;;;36244:85;36136:3;36215:23;36244:85;;;36163:172;36413:4;36406:5;36402:16;36396:23;36425:71;36490:4;36485:3;36481:14;36467:12;36425:71;;;36345:157;36577:4;36570:5;36566:16;36560:23;36589:127;36710:4;36705:3;36701:14;36687:12;36589:127;;;36512:210;36806:4;36799:5;36795:16;36789:23;36818:71;36883:4;36878:3;36874:14;36860:12;36818:71;;;36732:163;36981:4;36974:5;36970:16;36964:23;36993:71;37058:4;37053:3;37049:14;37035:12;36993:71;;;36905:165;37151:4;37144:5;37140:16;37134:23;37163:73;37228:6;37223:3;37219:16;37205:12;37163:73;;;37080:162;37325:4;37318:5;37314:16;37308:23;37337:73;37402:6;37397:3;37393:16;37379:12;37337:73;;;37252:164;37489:4;37482:5;37478:16;37472:23;37543:3;37537:4;37533:14;37524:6;37519:3;37515:16;37508:40;37563:75;37633:4;37619:12;37563:75;;37742:861;37955:23;;37889:4;37880:14;;;37984:65;37884:3;37955:23;37984:65;;;37909:146;38136:4;38129:5;38125:16;38119:23;38148:92;38234:4;38229:3;38225:14;38211:12;38148:92;;;38065:181;38318:4;38311:5;38307:16;38301:23;38330:89;38413:4;38408:3;38404:14;38390:12;38330:89;;;38256:169;38499:4;38492:5;38488:16;38482:23;38511:71;38576:4;38571:3;38567:14;38553:12;38511:71;;38659:319;38865:23;;38798:4;38789:14;;;38894:63;38793:3;38865:23;38894:63;;39790:632;39999:23;;39931:4;39922:14;;;40028:61;39926:3;39999:23;40028:61;;;39951:144;40170:4;40163:5;40159:16;40153:23;40182:61;40237:4;40232:3;40228:14;40214:12;40182:61;;;40105:144;40328:4;40321:5;40317:16;40311:23;40340:61;40395:4;40390:3;40386:14;40372:12;40340:61;;41156:499;41370:23;;41303:4;41294:14;;;41399:71;41298:3;41370:23;41399:71;;;41323:153;41551:4;41544:5;41540:16;41534:23;41563:71;41628:4;41623:3;41619:14;41605:12;41563:71;;42256:1833;42468:23;;42399:6;42390:16;;;42497:63;42394:3;42468:23;42497:63;;;42421:145;42644:4;42637:5;42633:16;42627:23;42656:57;42707:4;42702:3;42698:14;42684:12;42656:57;;;42576:143;42800:4;42793:5;42789:16;42783:23;42812:57;42863:4;42858:3;42854:14;42840:12;42812:57;;;42729:146;42952:4;42945:5;42941:16;42935:23;42964:113;43071:4;43066:3;43062:14;43048:12;42964:113;;;42885:198;43157:4;43150:5;43146:16;43140:23;43169:107;43270:4;43265:3;43261:14;43247:12;43169:107;;;43093:189;43362:4;43355:5;43351:16;43345:23;43374:87;43453:6;43448:3;43444:16;43430:12;43374:87;;;43292:175;43550:4;43543:5;43539:16;43533:23;43562:90;43644:6;43639:3;43635:16;43621:12;43562:90;;;43477:181;43740:4;43733:5;43729:16;43723:23;43752:107;43851:6;43846:3;43842:16;43828:12;43752:107;;;43668:197;43947:6;43940:5;43936:18;43930:25;43961:107;44060:6;44055:3;44051:16;44037:12;43961:107;;44139:465;44342:23;;44276:4;44267:14;;;44371:57;44271:3;44342:23;44371:57;;;44296:138;44508:4;44501:5;44497:16;44491:23;44520:63;44577:4;44572:3;44568:14;44554:12;44520:63;;46470:1166;46697:23;;46621:4;46612:14;;;46726:61;46616:3;46697:23;46726:61;;;46641:152;46882:4;46875:5;46871:16;46865:23;46894:61;46949:4;46944:3;46940:14;46926:12;46894:61;;;46803:158;47045:4;47038:5;47034:16;47028:23;47057:61;47112:4;47107:3;47103:14;47089:12;47057:61;;;46971:153;47209:4;47202:5;47198:16;47192:23;47221:61;47276:4;47271:3;47267:14;47253:12;47221:61;;;47134:154;47373:4;47366:5;47362:16;47356:23;47385:61;47440:4;47435:3;47431:14;47417:12;47385:61;;;47298:154;47540:4;47533:5;47529:16;47523:23;47552:63;47609:4;47604:3;47600:14;47586:12;47552:63;;47704:1002;47928:23;;47855:4;47846:14;;;47957:105;47850:3;47928:23;47957:105;;;47875:193;48154:4;48147:5;48143:16;48137:23;48166:105;48265:4;48260:3;48256:14;48242:12;48166:105;;;48078:199;48358:4;48351:5;48347:16;48341:23;48370:105;48469:4;48464:3;48460:14;48446:12;48370:105;;;48287:194;48566:4;48559:5;48555:16;48549:23;48578:107;48679:4;48674:3;48670:14;48656:12;48578:107;;48713:123;48813:18;;48807:29;48896:484;49111:23;;49043:4;49034:14;;;49140:63;49038:3;49111:23;49140:63;;51105:465;51308:23;;51242:4;51233:14;;;51337:57;51237:3;51308:23;51337:57;;52078:103;52151:24;52169:5;52151:24;;52306:103;52379:24;52397:5;52379:24;;52782:100;52853:23;52870:5;52853:23;;52889:100;52960:23;52977:5;52960:23;;52996:100;53067:23;53084:5;53067:23;;53103:244;;53222:75;53293:3;53284:6;53222:75;;;-1:-1;53319:2;53310:12;;53210:137;-1:-1;53210:137;53354:553;;53570:93;53659:3;53650:6;53570:93;;;53563:100;;53674:73;53743:3;53734:6;53674:73;;;53769:1;53764:3;53760:11;53753:18;;53789:93;53878:3;53869:6;53789:93;;53914:978;;54228:93;54317:3;54308:6;54228:93;;;54221:100;;54332:73;54401:3;54392:6;54332:73;;;54427:1;54422:3;54418:11;54411:18;;54447:93;54536:3;54527:6;54447:93;;;54440:100;;54551:73;54620:3;54611:6;54551:73;;;54646:1;54641:3;54637:11;54630:18;;54666:93;54755:3;54746:6;54666:93;;;54659:100;;54770:73;54839:3;54830:6;54770:73;;;-1:-1;54865:1;54856:11;;54209:683;-1:-1;;;;;;54209:683;54899:1269;;55285:93;55374:3;55365:6;55285:93;;;55278:100;;55389:73;55458:3;55449:6;55389:73;;;55484:1;55479:3;55475:11;55468:18;;55504:93;55593:3;55584:6;55504:93;;;55497:100;;55608:73;55677:3;55668:6;55608:73;;;55703:1;55698:3;55694:11;55687:18;;55723:93;55812:3;55803:6;55723:93;;;55716:100;;55827:73;55896:3;55887:6;55827:73;;;55922:1;55917:3;55913:11;55906:18;;55942:93;56031:3;56022:6;55942:93;;;55935:100;;56046:73;56115:3;56106:6;56046:73;;;-1:-1;56141:1;56132:11;;55266:902;-1:-1;;;;;;;;55266:902;56175:213;56293:2;56278:18;;56307:71;56282:9;56351:6;56307:71;;56395:312;56535:2;56520:18;;56549:71;56524:9;56593:6;56549:71;;;56631:66;56693:2;56682:9;56678:18;56669:6;56631:66;;56714:435;56888:2;56873:18;;56902:71;56877:9;56946:6;56902:71;;;56984:72;57052:2;57041:9;57037:18;57028:6;56984:72;;;57067;57135:2;57124:9;57120:18;57111:6;57067:72;;57156:361;57324:2;57338:47;;;57309:18;;57399:108;57309:18;57493:6;57399:108;;57524:1283;57998:3;58013:47;;;57983:19;;58074:108;57983:19;58168:6;58074:108;;;58066:116;;58230:9;58224:4;58220:20;58215:2;58204:9;58200:18;58193:48;58255:108;58358:4;58349:6;58255:108;;;58247:116;;58411:9;58405:4;58401:20;58396:2;58385:9;58381:18;58374:48;58436:144;58575:4;58566:6;58436:144;;;58428:152;;58628:9;58622:4;58618:20;58613:2;58602:9;58598:18;58591:48;58653:144;58792:4;58783:6;58653:144;;58814:201;58926:2;58911:18;;58940:65;58915:9;58978:6;58940:65;;59022:263;59165:2;59150:18;;59179:96;59154:9;59248:6;59179:96;;59556:233;59684:2;59669:18;;59698:81;59673:9;59752:6;59698:81;;59796:301;59934:2;59948:47;;;59919:18;;60009:78;59919:18;60073:6;60009:78;;60104:407;60295:2;60309:47;;;60280:18;;60370:131;60280:18;60370:131;;60518:407;60709:2;60723:47;;;60694:18;;60784:131;60694:18;60784:131;;60932:407;61123:2;61137:47;;;61108:18;;61198:131;61108:18;61198:131;;61346:407;61537:2;61551:47;;;61522:18;;61612:131;61522:18;61612:131;;61760:407;61951:2;61965:47;;;61936:18;;62026:131;61936:18;62026:131;;62174:305;62338:2;62323:18;;62352:117;62327:9;62442:6;62352:117;;62486:309;62652:2;62637:18;;62666:119;62641:9;62758:6;62666:119;;62802:314;62970:3;62955:19;;62985:121;62959:9;63079:6;62985:121;;63123:934;63517:3;63502:19;;63532:121;63506:9;63626:6;63532:121;;;63664;63780:3;63769:9;63765:19;63756:6;63664:121;;;63796;63912:3;63901:9;63897:19;63888:6;63796:121;;;63928:119;64042:3;64031:9;64027:19;64018:6;63928:119;;64064:301;64226:2;64211:18;;64240:115;64215:9;64328:6;64240:115;;65000:330;65176:3;65161:19;;65191:129;65165:9;65293:6;65191:129;;65337:330;65513:3;65498:19;;65528:129;65502:9;65630:6;65528:129;;65674:509;65877:2;65862:18;;65891:100;65866:9;65964:6;65891:100;;;66002:80;66078:2;66067:9;66063:18;66054:6;66002:80;;;66093;66169:2;66158:9;66154:18;66145:6;66093:80;;66190:497;66387:2;66372:18;;66401:100;66376:9;66474:6;66401:100;;;66512:80;66588:2;66577:9;66573:18;66564:6;66512:80;;;66603:74;66673:2;66662:9;66658:18;66649:6;66603:74;;66694:1363;67164:3;67149:19;;67179:100;67153:9;67252:6;67179:100;;;67290:80;67366:2;67355:9;67351:18;67342:6;67290:80;;;67381:102;67479:2;67468:9;67464:18;67455:6;67381:102;;;67494:105;67595:2;67584:9;67580:18;67571:6;67494:105;;;67610:127;67732:3;67721:9;67717:19;67708:6;67610:127;;;67748;67870:3;67859:9;67855:19;67846:6;67748:127;;;67886:75;67956:3;67945:9;67941:19;67932:6;67886:75;;;67972;68042:3;68031:9;68027:19;68018:6;67972:75;;68064:981;68455:2;68440:18;;68469:100;68444:9;68542:6;68469:100;;;68617:9;68611:4;68607:20;68602:2;68591:9;68587:18;68580:48;68642:154;68791:4;68782:6;68642:154;;;68634:162;;68844:9;68838:4;68834:20;68829:2;68818:9;68814:18;68807:48;68869:166;69030:4;69021:6;68869:166;;69052:657;69305:2;69290:18;;69319:100;69294:9;69392:6;69319:100;;;69467:9;69461:4;69457:20;69452:2;69441:9;69437:18;69430:48;69492:116;69603:4;69594:6;69492:116;;;69484:124;;69619:80;69695:2;69684:9;69680:18;69671:6;69619:80;;69716:482;69937:2;69922:18;;69951:100;69926:9;70024:6;69951:100;;;70062:126;70184:2;70173:9;70169:18;70160:6;70062:126;;70205:810;70526:3;70511:19;;70541:100;70515:9;70614:6;70541:100;;;70652:126;70774:2;70763:9;70759:18;70750:6;70652:126;;;70789:80;70865:2;70854:9;70850:18;70841:6;70789:80;;;70880:125;71000:3;70989:9;70985:19;70976:6;70880:125;;71515:509;71718:2;71703:18;;71732:100;71707:9;71805:6;71732:100;;;71843:80;71919:2;71908:9;71904:18;71895:6;71843:80;;72031:497;72228:2;72213:18;;72242:100;72217:9;72315:6;72242:100;;;72353:80;72429:2;72418:9;72414:18;72405:6;72353:80;;72535:559;72763:2;72748:18;;72777:100;72752:9;72850:6;72777:100;;;72888:80;72964:2;72953:9;72949:18;72940:6;72888:80;;;72979:105;73080:2;73069:9;73065:18;73056:6;72979:105;;73661:601;73910:2;73895:18;;73924:100;73899:9;73997:6;73924:100;;;74035:80;74111:2;74100:9;74096:18;74087:6;74035:80;;;74126:126;74248:2;74237:9;74233:18;74224:6;74126:126;;74269:321;74441:2;74426:18;;74455:125;74430:9;74553:6;74455:125;;74913:516;75155:2;75140:18;;75169:119;75144:9;75261:6;75169:119;;75436:301;75598:2;75583:18;;75612:115;75587:9;75700:6;75612:115;;75744:213;75862:2;75847:18;;75876:71;75851:9;75920:6;75876:71;;75964:256;76026:2;76020:9;76052:17;;;76127:18;76112:34;;76148:22;;;76109:62;76106:2;;;76184:1;76181;76174:12;76106:2;76200;76193:22;76004:216;;-1:-1;76004:216;76227:329;;76411:18;76403:6;76400:30;76397:2;;;76443:1;76440;76433:12;76397:2;-1:-1;76478:4;76466:17;;;76531:15;;76334:222;77541:317;;77680:18;77672:6;77669:30;77666:2;;;77712:1;77709;77702:12;77666:2;-1:-1;77843:4;77779;77756:17;;;;77775:9;77752:33;77833:15;;77603:255;77865:151;77989:4;77980:14;;77937:79;78893:137;78996:12;;78967:63;80989:178;81107:19;;;81156:4;81147:14;;81100:67;82895:91;;82957:24;82975:5;82957:24;;82993:85;83059:13;83052:21;;83035:43;83085:144;83157:66;83146:78;;83129:100;83236:144;83308:66;83297:78;;83280:100;83387:72;83449:5;83432:27;83466:116;;83553:24;83571:5;83553:24;;83709:138;83787:5;83793:49;83787:5;83793:49;;83854:152;83939:5;83945:56;83939:5;83945:56;;84166:130;84240:5;84246:45;84240:5;84246:45;;84303:113;84376:34;84365:46;;84348:68;84423:121;84496:42;84485:54;;84468:76;84630:88;84702:10;84691:22;;84674:44;84725:96;84797:18;84786:30;;84769:52;84828:104;84900:26;84889:38;;84872:60;85566:138;;85659:40;85693:5;85659:40;;85711:152;;85811:47;85852:5;85811:47;;86023:130;;86112:36;86142:5;86112:36;;86161:145;86242:6;86237:3;86232;86219:30;-1:-1;86298:1;86280:16;;86273:27;86212:94;86315:268;86380:1;86387:101;86401:6;86398:1;86395:13;86387:101;;;86468:11;;;86462:18;86449:11;;;86442:39;86423:2;86416:10;86387:101;;;86503:6;86500:1;86497:13;86494:2;;;-1:-1;;86568:1;86550:16;;86543:27;86364:219;86832:97;86920:2;86900:14;86916:7;86896:28;;86880:49;86937:107;87022:1;87015:5;87012:12;87002:2;;87028:9;87051:114;87143:1;87136:5;87133:12;87123:2;;87149:9;87290:103;87371:1;87364:5;87361:12;87351:2;;87377:9;87400:117;87469:24;87487:5;87469:24;;;87462:5;87459:35;87449:2;;87508:1;87505;87498:12;87524:111;87590:21;87605:5;87590:21;;87642:167;87736:49;87779:5;87736:49;;87984:110;88069:1;88062:5;88059:12;88049:2;;88085:1;88082;88075:12;88101:117;88193:1;88186:5;88183:12;88173:2;;88209:1;88206;88199:12;88346:106;88427:1;88420:5;88417:12;88407:2;;88443:1;88440;88433:12;88459:117;88528:24;88546:5;88528:24;;88583:117;88652:24;88670:5;88652:24;;88707:115;88775:23;88792:5;88775:23;;88829:115;88897:23;88914:5;88897:23;",
2190
2190
  "source": "/*\n\n Copyright 2019 dYdX Trading Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport { DolomiteMargin } from \"../protocol/DolomiteMargin.sol\";\nimport { Account } from \"../protocol/lib/Account.sol\";\nimport { Interest } from \"../protocol/lib/Interest.sol\";\nimport { Storage } from \"../protocol/lib/Storage.sol\";\nimport { Types } from \"../protocol/lib/Types.sol\";\nimport { TestOperationImpl } from \"./TestOperationImpl.sol\";\n\n\ncontract TestDolomiteMargin is DolomiteMargin {\n\n // ============ Constructor ============\n\n constructor (\n Storage.RiskParams memory rp,\n Storage.RiskLimits memory rl\n )\n public\n DolomiteMargin(rp, rl)\n {}\n\n // ============ Testing Functions ============\n\n function setAccountBalance(\n Account.Info memory account,\n uint256 market,\n Types.Par memory newPar\n )\n public\n {\n _requireValidMarket(market);\n TestOperationImpl.setPar(g_state, account, market, newPar);\n }\n\n function setAccountStatus(\n Account.Info memory account,\n Account.Status status\n )\n public\n {\n g_state.accounts[account.owner][account.number].status = status;\n }\n\n function setMarketIndex(\n uint256 market,\n Interest.Index memory index\n )\n public\n {\n Interest.Index memory oldIndex = g_state.markets[market].index;\n\n if (index.borrow == 0) {\n index.borrow = oldIndex.borrow;\n }\n if (index.supply == 0) {\n index.supply = oldIndex.supply;\n }\n\n g_state.markets[market].index = index;\n }\n}\n",
2191
- "sourcePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDolomiteMargin.sol",
2191
+ "sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestDolomiteMargin.sol",
2192
2192
  "ast": {
2193
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDolomiteMargin.sol",
2193
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestDolomiteMargin.sol",
2194
2194
  "exportedSymbols": {
2195
2195
  "TestDolomiteMargin": [
2196
2196
  35457
@@ -2220,7 +2220,7 @@
2220
2220
  "src": "627:33:91"
2221
2221
  },
2222
2222
  {
2223
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/DolomiteMargin.sol",
2223
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/DolomiteMargin.sol",
2224
2224
  "file": "../protocol/DolomiteMargin.sol",
2225
2225
  "id": 35335,
2226
2226
  "nodeType": "ImportDirective",
@@ -2236,7 +2236,7 @@
2236
2236
  "unitAlias": ""
2237
2237
  },
2238
2238
  {
2239
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
2239
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
2240
2240
  "file": "../protocol/lib/Account.sol",
2241
2241
  "id": 35337,
2242
2242
  "nodeType": "ImportDirective",
@@ -2252,7 +2252,7 @@
2252
2252
  "unitAlias": ""
2253
2253
  },
2254
2254
  {
2255
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol",
2255
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol",
2256
2256
  "file": "../protocol/lib/Interest.sol",
2257
2257
  "id": 35339,
2258
2258
  "nodeType": "ImportDirective",
@@ -2268,7 +2268,7 @@
2268
2268
  "unitAlias": ""
2269
2269
  },
2270
2270
  {
2271
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol",
2271
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol",
2272
2272
  "file": "../protocol/lib/Storage.sol",
2273
2273
  "id": 35341,
2274
2274
  "nodeType": "ImportDirective",
@@ -2284,7 +2284,7 @@
2284
2284
  "unitAlias": ""
2285
2285
  },
2286
2286
  {
2287
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
2287
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
2288
2288
  "file": "../protocol/lib/Types.sol",
2289
2289
  "id": 35343,
2290
2290
  "nodeType": "ImportDirective",
@@ -2300,7 +2300,7 @@
2300
2300
  "unitAlias": ""
2301
2301
  },
2302
2302
  {
2303
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestOperationImpl.sol",
2303
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestOperationImpl.sol",
2304
2304
  "file": "./TestOperationImpl.sol",
2305
2305
  "id": 35345,
2306
2306
  "nodeType": "ImportDirective",
@@ -3674,7 +3674,7 @@
3674
3674
  "src": "603:1593:91"
3675
3675
  },
3676
3676
  "legacyAST": {
3677
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestDolomiteMargin.sol",
3677
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestDolomiteMargin.sol",
3678
3678
  "exportedSymbols": {
3679
3679
  "TestDolomiteMargin": [
3680
3680
  35457
@@ -3704,7 +3704,7 @@
3704
3704
  "src": "627:33:91"
3705
3705
  },
3706
3706
  {
3707
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/DolomiteMargin.sol",
3707
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/DolomiteMargin.sol",
3708
3708
  "file": "../protocol/DolomiteMargin.sol",
3709
3709
  "id": 35335,
3710
3710
  "nodeType": "ImportDirective",
@@ -3720,7 +3720,7 @@
3720
3720
  "unitAlias": ""
3721
3721
  },
3722
3722
  {
3723
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol",
3723
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
3724
3724
  "file": "../protocol/lib/Account.sol",
3725
3725
  "id": 35337,
3726
3726
  "nodeType": "ImportDirective",
@@ -3736,7 +3736,7 @@
3736
3736
  "unitAlias": ""
3737
3737
  },
3738
3738
  {
3739
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol",
3739
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol",
3740
3740
  "file": "../protocol/lib/Interest.sol",
3741
3741
  "id": 35339,
3742
3742
  "nodeType": "ImportDirective",
@@ -3752,7 +3752,7 @@
3752
3752
  "unitAlias": ""
3753
3753
  },
3754
3754
  {
3755
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol",
3755
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol",
3756
3756
  "file": "../protocol/lib/Storage.sol",
3757
3757
  "id": 35341,
3758
3758
  "nodeType": "ImportDirective",
@@ -3768,7 +3768,7 @@
3768
3768
  "unitAlias": ""
3769
3769
  },
3770
3770
  {
3771
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol",
3771
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
3772
3772
  "file": "../protocol/lib/Types.sol",
3773
3773
  "id": 35343,
3774
3774
  "nodeType": "ImportDirective",
@@ -3784,7 +3784,7 @@
3784
3784
  "unitAlias": ""
3785
3785
  },
3786
3786
  {
3787
- "absolutePath": "/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestOperationImpl.sol",
3787
+ "absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/testing/TestOperationImpl.sol",
3788
3788
  "file": "./TestOperationImpl.sol",
3789
3789
  "id": 35345,
3790
3790
  "nodeType": "ImportDirective",
@@ -5215,11 +5215,11 @@
5215
5215
  "TestOperationImpl": "0x5f8e26fAcC23FA4cbd87b8d9Dbbd33D5047abDE1"
5216
5216
  },
5217
5217
  "address": "0x21a59654176f2689d12E828B77a783072CD26680",
5218
- "transactionHash": "0x7100e3d31397b3a9ff315ca22fc23e633fc81431e309b0030baf05e08ce26b7e"
5218
+ "transactionHash": "0x994e3a8b1e6f1e2e19d8ba3488719978692e59084bd8119f7ee0c06f344768a8"
5219
5219
  }
5220
5220
  },
5221
5221
  "schemaVersion": "3.0.23",
5222
- "updatedAt": "2022-01-25T06:59:14.632Z",
5222
+ "updatedAt": "2022-01-29T21:54:41.116Z",
5223
5223
  "devdoc": {
5224
5224
  "methods": {
5225
5225
  "isOwner()": {