{
  "contractName": "OrderLibrary",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "kernelVersion",
              "type": "address"
            },
            {
              "name": "issuanceVersion",
              "type": "address"
            },
            {
              "name": "principalAmount",
              "type": "uint256"
            },
            {
              "name": "principalToken",
              "type": "address"
            },
            {
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "name": "collateralToken",
              "type": "address"
            },
            {
              "name": "debtor",
              "type": "address"
            },
            {
              "name": "debtorFee",
              "type": "uint256"
            },
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "creditorFee",
              "type": "uint256"
            },
            {
              "name": "relayer",
              "type": "address"
            },
            {
              "name": "relayerFee",
              "type": "uint256"
            },
            {
              "name": "underwriter",
              "type": "address"
            },
            {
              "name": "underwriterFee",
              "type": "uint256"
            },
            {
              "name": "underwriterRiskRating",
              "type": "uint256"
            },
            {
              "name": "termsContract",
              "type": "address"
            },
            {
              "name": "termsContractParameters",
              "type": "bytes32"
            },
            {
              "name": "expirationTimestampInSec",
              "type": "uint256"
            },
            {
              "name": "salt",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "debtorSignature",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "creditorSignature",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "underwriterSignature",
              "type": "tuple"
            }
          ],
          "name": "order",
          "type": "tuple"
        }
      ],
      "name": "unpackDebtOrder",
      "outputs": [
        {
          "name": "orderAddresses",
          "type": "address[6]"
        },
        {
          "name": "orderValues",
          "type": "uint256[8]"
        },
        {
          "name": "orderBytes32",
          "type": "bytes32[1]"
        },
        {
          "name": "signaturesV",
          "type": "uint8[3]"
        },
        {
          "name": "signaturesR",
          "type": "bytes32[3]"
        },
        {
          "name": "signaturesS",
          "type": "bytes32[3]"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610ab3806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063e301885c14610046575b600080fd5b34801561005257600080fd5b5061006d600480360361006891908101906106dd565b610088565b60405161007f969594939291906108ba565b60405180910390f35b610090610383565b6100986103a6565b6100a06103ca565b6100a86103ed565b6100b0610410565b6100b8610410565b60c060405190810160405280886000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018860c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610180015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886101e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610140015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525061010060405190810160405280896101c001518152602001896102400151815260200189604001518152602001896101a001518152602001896101600151815260200189610120015181526020018960e0015181526020018961022001518152506020604051908101604052808a610200015160001916600019168152506060604051908101604052808b61026001516000015160ff1660ff1681526020018b61028001516000015160ff1660ff1681526020018b6102a001516000015160ff1660ff168152506060604051908101604052808c610260015160200151600019166000191681526020018c610280015160200151600019166000191681526020018c6102a001516020015160001916600019168152506060604051908101604052808d610260015160400151600019166000191681526020018d610280015160400151600019166000191681526020018d6102a0015160400151600019166000191681525095509550955095509550955091939550919395565b60c060405190810160405280600690602082028038833980820191505090505090565b61010060405190810160405280600890602082028038833980820191505090505090565b602060405190810160405280600190602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b600061043f8235610a38565b905092915050565b60006104538235610a58565b905092915050565b6000610380828403121561046e57600080fd5b6104796102c0610920565b9050600061048984828501610433565b600083015250602061049d84828501610433565b60208301525060406104b1848285016106b5565b60408301525060606104c584828501610433565b60608301525060806104d9848285016106b5565b60808301525060a06104ed84828501610433565b60a08301525060c061050184828501610433565b60c08301525060e0610515848285016106b5565b60e08301525061010061052a84828501610433565b61010083015250610120610540848285016106b5565b6101208301525061014061055684828501610433565b6101408301525061016061056c848285016106b5565b6101608301525061018061058284828501610433565b610180830152506101a0610598848285016106b5565b6101a0830152506101c06105ae848285016106b5565b6101c0830152506101e06105c484828501610433565b6101e0830152506102006105da84828501610447565b610200830152506102206105f0848285016106b5565b61022083015250610240610606848285016106b5565b6102408301525061026061061c84828501610655565b610260830152506102c061063284828501610655565b6102808301525061032061064884828501610655565b6102a08301525092915050565b60006060828403121561066757600080fd5b6106716060610920565b90506000610681848285016106c9565b600083015250602061069584828501610447565b60208301525060406106a984828501610447565b60408301525092915050565b60006106c18235610a62565b905092915050565b60006106d58235610a6c565b905092915050565b600061038082840312156106f057600080fd5b60006106fe8482850161045b565b91505092915050565b610710816109f7565b82525050565b61071f8161097f565b6107288261094d565b60005b8281101561075a5761073e858351610707565b610747826109b6565b915060208501945060018101905061072b565b5050505050565b61076a8161098a565b61077382610957565b60005b828110156107a55761078985835161088d565b610792826109c3565b9150602085019450600181019050610776565b5050505050565b6107b581610995565b6107be82610961565b60005b828110156107f0576107d485835161088d565b6107dd826109d0565b91506020850194506001810190506107c1565b5050505050565b610800816109a0565b6108098261096b565b60005b8281101561083b5761081f85835161089c565b610828826109dd565b915060208501945060018101905061080c565b5050505050565b61084b816109ab565b61085482610975565b60005b828110156108865761086a8583516108ab565b610873826109ea565b9150602085019450600181019050610857565b5050505050565b61089681610a17565b82525050565b6108a581610a21565b82525050565b6108b481610a2b565b82525050565b6000610300820190506108d06000830189610716565b6108dd60c08301886107f7565b6108eb6101c0830187610761565b6108f96101e0830186610842565b6109076102408301856107ac565b6109156102a08301846107ac565b979650505050505050565b6000604051905081810181811067ffffffffffffffff8211171561094357600080fd5b8060405250919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060069050919050565b600060019050919050565b600060039050919050565b600060089050919050565b600060039050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff821690509190505600a265627a7a7230582036383f4b1b1a7a00001f6a89ddd993fddbdaa2017ca6eed2cf89bff02111be746c6578706572696d656e74616cf50037",
  "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063e301885c14610046575b600080fd5b34801561005257600080fd5b5061006d600480360361006891908101906106dd565b610088565b60405161007f969594939291906108ba565b60405180910390f35b610090610383565b6100986103a6565b6100a06103ca565b6100a86103ed565b6100b0610410565b6100b8610410565b60c060405190810160405280886000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018860c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610180015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886101e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610140015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525061010060405190810160405280896101c001518152602001896102400151815260200189604001518152602001896101a001518152602001896101600151815260200189610120015181526020018960e0015181526020018961022001518152506020604051908101604052808a610200015160001916600019168152506060604051908101604052808b61026001516000015160ff1660ff1681526020018b61028001516000015160ff1660ff1681526020018b6102a001516000015160ff1660ff168152506060604051908101604052808c610260015160200151600019166000191681526020018c610280015160200151600019166000191681526020018c6102a001516020015160001916600019168152506060604051908101604052808d610260015160400151600019166000191681526020018d610280015160400151600019166000191681526020018d6102a0015160400151600019166000191681525095509550955095509550955091939550919395565b60c060405190810160405280600690602082028038833980820191505090505090565b61010060405190810160405280600890602082028038833980820191505090505090565b602060405190810160405280600190602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b600061043f8235610a38565b905092915050565b60006104538235610a58565b905092915050565b6000610380828403121561046e57600080fd5b6104796102c0610920565b9050600061048984828501610433565b600083015250602061049d84828501610433565b60208301525060406104b1848285016106b5565b60408301525060606104c584828501610433565b60608301525060806104d9848285016106b5565b60808301525060a06104ed84828501610433565b60a08301525060c061050184828501610433565b60c08301525060e0610515848285016106b5565b60e08301525061010061052a84828501610433565b61010083015250610120610540848285016106b5565b6101208301525061014061055684828501610433565b6101408301525061016061056c848285016106b5565b6101608301525061018061058284828501610433565b610180830152506101a0610598848285016106b5565b6101a0830152506101c06105ae848285016106b5565b6101c0830152506101e06105c484828501610433565b6101e0830152506102006105da84828501610447565b610200830152506102206105f0848285016106b5565b61022083015250610240610606848285016106b5565b6102408301525061026061061c84828501610655565b610260830152506102c061063284828501610655565b6102808301525061032061064884828501610655565b6102a08301525092915050565b60006060828403121561066757600080fd5b6106716060610920565b90506000610681848285016106c9565b600083015250602061069584828501610447565b60208301525060406106a984828501610447565b60408301525092915050565b60006106c18235610a62565b905092915050565b60006106d58235610a6c565b905092915050565b600061038082840312156106f057600080fd5b60006106fe8482850161045b565b91505092915050565b610710816109f7565b82525050565b61071f8161097f565b6107288261094d565b60005b8281101561075a5761073e858351610707565b610747826109b6565b915060208501945060018101905061072b565b5050505050565b61076a8161098a565b61077382610957565b60005b828110156107a55761078985835161088d565b610792826109c3565b9150602085019450600181019050610776565b5050505050565b6107b581610995565b6107be82610961565b60005b828110156107f0576107d485835161088d565b6107dd826109d0565b91506020850194506001810190506107c1565b5050505050565b610800816109a0565b6108098261096b565b60005b8281101561083b5761081f85835161089c565b610828826109dd565b915060208501945060018101905061080c565b5050505050565b61084b816109ab565b61085482610975565b60005b828110156108865761086a8583516108ab565b610873826109ea565b9150602085019450600181019050610857565b5050505050565b61089681610a17565b82525050565b6108a581610a21565b82525050565b6108b481610a2b565b82525050565b6000610300820190506108d06000830189610716565b6108dd60c08301886107f7565b6108eb6101c0830187610761565b6108f96101e0830186610842565b6109076102408301856107ac565b6109156102a08301846107ac565b979650505050505050565b6000604051905081810181811067ffffffffffffffff8211171561094357600080fd5b8060405250919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060069050919050565b600060019050919050565b600060039050919050565b600060089050919050565b600060039050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff821690509190505600a265627a7a7230582036383f4b1b1a7a00001f6a89ddd993fddbdaa2017ca6eed2cf89bff02111be746c6578706572696d656e74616cf50037",
  "sourceMap": "95:1570:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;95:1570:13;;;;;;;",
  "deployedSourceMap": "95:1570:13:-;;;;;;;;;;;;;;;;;;;;;;;;757:906;;8:9:-1;5:2;;;30:1;27;20:12;5:2;757:906:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;843:25;;:::i;:::-;879:19;;:::i;:::-;909:23;;:::i;:::-;943:20;;:::i;:::-;974:22;;:::i;:::-;1007;;:::i;:::-;1039:620;;;;;;;;;1052:5;:19;;;1039:620;;;;;;;;1073:5;:12;;;1039:620;;;;;;;;1087:5;:17;;;1039:620;;;;;;;;1106:5;:19;;;1039:620;;;;;;;;1127:5;:20;;;1039:620;;;;;;;;1149:5;:13;;;1039:620;;;;;;;;;;;;;;;;1178:5;:27;;;1039:620;;;;1207:5;:10;;;1039:620;;;;1219:5;:21;;;1039:620;;;;1242:5;:20;;;1039:620;;;;1264:5;:16;;;1039:620;;;;1282:5;:17;;;1039:620;;;;1301:5;:15;;;1039:620;;;;1318:5;:30;;;1039:620;;;;;;;;;;;;1355:5;:29;;;1039:620;;;;;;;;;;;;;;;;;;1400:5;:21;;;:23;;;1039:620;;;;;;;;1425:5;:23;;;:25;;;1039:620;;;;;;;;1452:5;:26;;;:28;;;1039:620;;;;;;;;;;;;;;;;1487:5;:21;;;:23;;;1039:620;;;;;;;;;;1512:5;:23;;;:25;;;1039:620;;;;;;;;;;1539:5;:26;;;:28;;;1039:620;;;;;;;;;;;;;;;;;;1574:5;:21;;;:23;;;1039:620;;;;;;;;;;1599:5;:23;;;:25;;;1039:620;;;;;;;;;;1626:5;:26;;;:28;;;1039:620;;;;;;;;;;;;;;;;;;;;;757:906;;;;;;;:::o;95:1570::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;95:1570:13;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;95:1570:13;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;95:1570:13;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;95:1570:13;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;95:1570:13;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;130:118;;197:46;235:6;222:20;197:46;;;188:55;;182:66;;;;;291:3679;;407:5;395:9;390:3;386:19;382:31;379:2;;;426:1;423;416:12;379:2;444:21;459:5;444:21;;;435:30;;524:1;555:49;600:3;591:6;580:9;576:22;555:49;;;549:3;542:5;538:15;531:74;475:141;677:2;710:49;755:3;746:6;735:9;731:22;710:49;;;703:4;696:5;692:16;685:75;626:145;832:2;865:49;910:3;901:6;890:9;886:22;865:49;;;858:4;851:5;847:16;840:75;781:145;986:2;1019:49;1064:3;1055:6;1044:9;1040:22;1019:49;;;1012:4;1005:5;1001:16;994:75;936:144;1142:3;1176:49;1221:3;1212:6;1201:9;1197:22;1176:49;;;1169:4;1162:5;1158:16;1151:75;1090:147;1298:3;1332:49;1377:3;1368:6;1357:9;1353:22;1332:49;;;1325:4;1318:5;1314:16;1307:75;1247:146;1445:3;1479:49;1524:3;1515:6;1504:9;1500:22;1479:49;;;1472:4;1465:5;1461:16;1454:75;1403:137;1595:3;1629:49;1674:3;1665:6;1654:9;1650:22;1629:49;;;1622:4;1615:5;1611:16;1604:75;1550:140;1744:3;1779:49;1824:3;1815:6;1804:9;1800:22;1779:49;;;1771:5;1764;1760:17;1753:76;1700:140;1897:3;1932:49;1977:3;1968:6;1957:9;1953:22;1932:49;;;1924:5;1917;1913:17;1906:76;1850:143;2046:3;2081:49;2126:3;2117:6;2106:9;2102:22;2081:49;;;2073:5;2066;2062:17;2055:76;2003:139;2198:3;2233:49;2278:3;2269:6;2258:9;2254:22;2233:49;;;2225:5;2218;2214:17;2207:76;2152:142;2351:3;2386:49;2431:3;2422:6;2411:9;2407:22;2386:49;;;2378:5;2371;2367:17;2360:76;2304:143;2507:3;2542:49;2587:3;2578:6;2567:9;2563:22;2542:49;;;2534:5;2527;2523:17;2516:76;2457:146;2670:3;2705:49;2750:3;2741:6;2730:9;2726:22;2705:49;;;2697:5;2690;2686:17;2679:76;2613:153;2825:3;2860:49;2905:3;2896:6;2885:9;2881:22;2860:49;;;2852:5;2845;2841:17;2834:76;2776:145;2990:3;3025:49;3070:3;3061:6;3050:9;3046:22;3025:49;;;3017:5;3010;3006:17;2999:76;2931:155;3156:3;3191:49;3236:3;3227:6;3216:9;3212:22;3191:49;;;3183:5;3176;3172:17;3165:76;3096:156;3302:3;3337:49;3382:3;3373:6;3362:9;3358:22;3337:49;;;3329:5;3322;3318:17;3311:76;3262:136;3459:3;3494:77;3567:3;3558:6;3547:9;3543:22;3494:77;;;3486:5;3479;3475:17;3468:104;3408:175;3646:3;3681:77;3754:3;3745:6;3734:9;3730:22;3681:77;;;3673:5;3666;3662:17;3655:104;3593:177;3836:3;3871:77;3944:3;3935:6;3924:9;3920:22;3871:77;;;3863:5;3856;3852:17;3845:104;3780:180;373:3597;;;;;4023:602;;4140:4;4128:9;4123:3;4119:19;4115:30;4112:2;;;4158:1;4155;4148:12;4112:2;4176:20;4191:4;4176:20;;;4167:29;;4243:1;4274:47;4317:3;4308:6;4297:9;4293:22;4274:47;;;4268:3;4261:5;4257:15;4250:72;4206:127;4380:2;4413:49;4458:3;4449:6;4438:9;4434:22;4413:49;;;4406:4;4399:5;4395:16;4388:75;4343:131;4521:2;4554:49;4599:3;4590:6;4579:9;4575:22;4554:49;;;4547:4;4540:5;4536:16;4529:75;4484:131;4106:519;;;;;4632:118;;4699:46;4737:6;4724:20;4699:46;;;4690:55;;4684:66;;;;;4757:114;;4822:44;4858:6;4845:20;4822:44;;;4813:53;;4807:64;;;;;4878:296;;5009:3;4997:9;4988:7;4984:23;4980:33;4977:2;;;5026:1;5023;5016:12;4977:2;5061:1;5078:80;5150:7;5141:6;5130:9;5126:22;5078:80;;;5068:90;;5040:124;4971:203;;;;;5181:110;5254:31;5279:5;5254:31;;;5249:3;5242:44;5236:55;;;5331:521;5454:52;5500:5;5454:52;;;5552:54;5600:5;5552:54;;;5627:1;5612:228;5637:6;5634:1;5631:13;5612:228;;;5677:53;5726:3;5717:6;5711:13;5677:53;;;5747:58;5798:6;5747:58;;;5737:68;;5828:4;5823:3;5819:14;5812:21;;5659:1;5656;5652:9;5647:14;;5612:228;;;5616:14;5433:419;;;;;5893:521;6016:52;6062:5;6016:52;;;6114:54;6162:5;6114:54;;;6189:1;6174:228;6199:6;6196:1;6193:13;6174:228;;;6239:53;6288:3;6279:6;6273:13;6239:53;;;6309:58;6360:6;6309:58;;;6299:68;;6390:4;6385:3;6381:14;6374:21;;6221:1;6218;6214:9;6209:14;;6174:228;;;6178:14;5995:419;;;;;6455:521;6578:52;6624:5;6578:52;;;6676:54;6724:5;6676:54;;;6751:1;6736:228;6761:6;6758:1;6755:13;6736:228;;;6801:53;6850:3;6841:6;6835:13;6801:53;;;6871:58;6922:6;6871:58;;;6861:68;;6952:4;6947:3;6943:14;6936:21;;6783:1;6780;6776:9;6771:14;;6736:228;;;6740:14;6557:419;;;;;7017:521;7140:52;7186:5;7140:52;;;7238:54;7286:5;7238:54;;;7313:1;7298:228;7323:6;7320:1;7317:13;7298:228;;;7363:53;7412:3;7403:6;7397:13;7363:53;;;7433:58;7484:6;7433:58;;;7423:68;;7514:4;7509:3;7505:14;7498:21;;7345:1;7342;7338:9;7333:14;;7298:228;;;7302:14;7119:419;;;;;7575:507;7694:50;7738:5;7694:50;;;7790:52;7836:5;7790:52;;;7863:1;7848:222;7873:6;7870:1;7867:13;7848:222;;;7913:49;7958:3;7949:6;7943:13;7913:49;;;7979:56;8028:6;7979:56;;;7969:66;;8058:4;8053:3;8049:14;8042:21;;7895:1;7892;7888:9;7883:14;;7848:222;;;7852:14;7673:409;;;;;8090:110;8163:31;8188:5;8163:31;;;8158:3;8151:44;8145:55;;;8207:110;8280:31;8305:5;8280:31;;;8275:3;8268:44;8262:55;;;8324:104;8393:29;8416:5;8393:29;;;8388:3;8381:42;8375:53;;;8435:1248;;8955:3;8944:9;8940:19;8932:27;;8970:107;9074:1;9063:9;9059:17;9050:6;8970:107;;;9088:109;9192:3;9181:9;9177:19;9168:6;9088:109;;;9208;9312:3;9301:9;9297:19;9288:6;9208:109;;;9328:105;9428:3;9417:9;9413:19;9404:6;9328:105;;;9444:109;9548:3;9537:9;9533:19;9524:6;9444:109;;;9564;9668:3;9657:9;9653:19;9644:6;9564:109;;;8926:757;;;;;;;;;;9690:256;;9752:2;9746:9;9736:19;;9790:4;9782:6;9778:17;9889:6;9877:10;9874:22;9853:18;9841:10;9838:34;9835:62;9832:2;;;9910:1;9907;9900:12;9832:2;9930:10;9926:2;9919:22;9730:216;;;;;9955:108;;10050:6;10039:17;;10031:32;;;;10074:108;;10169:6;10158:17;;10150:32;;;;10193:108;;10288:6;10277:17;;10269:32;;;;10312:108;;10407:6;10396:17;;10388:32;;;;10431:106;;10524:6;10513:17;;10505:32;;;;10546:96;;10634:3;10624:13;;10618:24;;;;10649:96;;10737:3;10727:13;;10721:24;;;;10752:96;;10840:3;10830:13;;10824:24;;;;10855:96;;10943:3;10933:13;;10927:24;;;;10958:94;;11044:3;11034:13;;11028:24;;;;11060:120;;11169:4;11161:6;11157:17;11146:28;;11139:41;;;;11189:120;;11298:4;11290:6;11286:17;11275:28;;11268:41;;;;11318:120;;11427:4;11419:6;11415:17;11404:28;;11397:41;;;;11447:120;;11556:4;11548:6;11544:17;11533:28;;11526:41;;;;11576:118;;11683:4;11675:6;11671:17;11660:28;;11653:41;;;;11702:128;;11782:42;11775:5;11771:54;11760:65;;11754:76;;;;11837:79;;11906:5;11895:16;;11889:27;;;;11923:79;;11992:5;11981:16;;11975:27;;;;12009:88;;12087:4;12080:5;12076:16;12065:27;;12059:38;;;;12104:128;;12184:42;12177:5;12173:54;12162:65;;12156:76;;;;12239:79;;12308:5;12297:16;;12291:27;;;;12325:79;;12394:5;12383:16;;12377:27;;;;12411:88;;12489:4;12482:5;12478:16;12467:27;;12461:38;;;",
  "source": "pragma solidity ^0.4.24;\npragma experimental ABIEncoderV2;\n\nimport \"./SignaturesLibrary.sol\";\n\ncontract OrderLibrary {\n\tstruct DebtOrder {\n\t\taddress kernelVersion;\n\t\taddress issuanceVersion;\n\t\tuint principalAmount;\n\t\taddress principalToken;\n\t\tuint collateralAmount;\n\t\taddress collateralToken;\n\t\taddress debtor;\n\t\tuint debtorFee;\n\t\taddress creditor;\n\t\tuint creditorFee;\n\t\taddress relayer;\n\t\tuint relayerFee;\n\t\taddress underwriter;\n\t\tuint underwriterFee;\n\t\tuint underwriterRiskRating;\n\t\taddress termsContract;\n\t\tbytes32 termsContractParameters;\n\t\tuint expirationTimestampInSec;\n\t\tuint salt;\n\t\tSignaturesLibrary.ECDSASignature debtorSignature;\n\t\tSignaturesLibrary.ECDSASignature creditorSignature;\n\t\tSignaturesLibrary.ECDSASignature underwriterSignature;\n\t}\n\n\tfunction unpackDebtOrder(DebtOrder memory order)\n\t\tpublic\n\t\tpure\n\t\treturns (\n\t        address[6] orderAddresses,\n\t        uint[8] orderValues,\n\t        bytes32[1] orderBytes32,\n\t        uint8[3] signaturesV,\n\t        bytes32[3] signaturesR,\n\t        bytes32[3] signaturesS\n\t\t)\n\t{\n\t\treturn (\n\t\t\t[order.kernelVersion, order.debtor, order.underwriter, order.termsContract, order.principalToken, order.relayer],\n            [order.underwriterRiskRating, order.salt, order.principalAmount, order.underwriterFee, order.relayerFee, order.creditorFee, order.debtorFee, order.expirationTimestampInSec],\n\t\t\t[order.termsContractParameters],\n            [order.debtorSignature.v, order.creditorSignature.v, order.underwriterSignature.v],\n\t\t\t[order.debtorSignature.r, order.creditorSignature.r, order.underwriterSignature.r],\n\t\t\t[order.debtorSignature.s, order.creditorSignature.s, order.underwriterSignature.s]\n\t\t);\n\t}\n}\n",
  "sourcePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/libraries/OrderLibrary.sol",
  "ast": {
    "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/libraries/OrderLibrary.sol",
    "exportedSymbols": {
      "OrderLibrary": [
        1165
      ]
    },
    "id": 1166,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1022,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:13"
      },
      {
        "id": 1023,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:13"
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/libraries/SignaturesLibrary.sol",
        "file": "./SignaturesLibrary.sol",
        "id": 1024,
        "nodeType": "ImportDirective",
        "scope": 1166,
        "sourceUnit": 1211,
        "src": "60:33:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1165,
        "linearizedBaseContracts": [
          1165
        ],
        "name": "OrderLibrary",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "OrderLibrary.DebtOrder",
            "id": 1069,
            "members": [
              {
                "constant": false,
                "id": 1026,
                "name": "kernelVersion",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "141:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1025,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "141:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1028,
                "name": "issuanceVersion",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "166:23:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1027,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "166:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1030,
                "name": "principalAmount",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "193:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1029,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "193:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1032,
                "name": "principalToken",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "217:22:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1031,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "217:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1034,
                "name": "collateralAmount",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "243:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1033,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "243:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1036,
                "name": "collateralToken",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "268:23:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1035,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "268:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1038,
                "name": "debtor",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "295:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1037,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "295:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1040,
                "name": "debtorFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "313:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1039,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "313:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1042,
                "name": "creditor",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "331:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1041,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "331:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1044,
                "name": "creditorFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "351:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1043,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "351:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1046,
                "name": "relayer",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "371:15:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1045,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "371:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1048,
                "name": "relayerFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "390:15:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1047,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "390:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1050,
                "name": "underwriter",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "409:19:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1049,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "409:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1052,
                "name": "underwriterFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "432:19:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1051,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "432:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1054,
                "name": "underwriterRiskRating",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "455:26:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1053,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "455:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1056,
                "name": "termsContract",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "485:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1055,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "485:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1058,
                "name": "termsContractParameters",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "510:31:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 1057,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "510:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1060,
                "name": "expirationTimestampInSec",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "545:29:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1059,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "545:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1062,
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "578:9:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1061,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "578:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1064,
                "name": "debtorSignature",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "591:48:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                  "typeString": "struct SignaturesLibrary.ECDSASignature"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1063,
                  "name": "SignaturesLibrary.ECDSASignature",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1178,
                  "src": "591:32:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                    "typeString": "struct SignaturesLibrary.ECDSASignature"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1066,
                "name": "creditorSignature",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "643:50:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                  "typeString": "struct SignaturesLibrary.ECDSASignature"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1065,
                  "name": "SignaturesLibrary.ECDSASignature",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1178,
                  "src": "643:32:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                    "typeString": "struct SignaturesLibrary.ECDSASignature"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1068,
                "name": "underwriterSignature",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "697:53:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                  "typeString": "struct SignaturesLibrary.ECDSASignature"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1067,
                  "name": "SignaturesLibrary.ECDSASignature",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1178,
                  "src": "697:32:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                    "typeString": "struct SignaturesLibrary.ECDSASignature"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "DebtOrder",
            "nodeType": "StructDefinition",
            "scope": 1165,
            "src": "120:634:13",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1163,
              "nodeType": "Block",
              "src": "1035:628:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1098,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1052:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1099,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "kernelVersion",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1026,
                            "src": "1052:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1100,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1073:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1101,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "debtor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1038,
                            "src": "1073:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1102,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1087:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1103,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "underwriter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1050,
                            "src": "1087:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1104,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1106:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1105,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "termsContract",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1056,
                            "src": "1106:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1106,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1127:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1107,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "principalToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1032,
                            "src": "1127:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1108,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1149:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1109,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "relayer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1046,
                            "src": "1149:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "id": 1110,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1051:112:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                          "typeString": "address[6] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1111,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1178:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1112,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "underwriterRiskRating",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1054,
                            "src": "1178:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1113,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1207:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1114,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "salt",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1062,
                            "src": "1207:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1115,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1219:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1116,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "principalAmount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1030,
                            "src": "1219:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1117,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1242:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1118,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "underwriterFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1052,
                            "src": "1242:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1119,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1264:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1120,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "relayerFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1048,
                            "src": "1264:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1121,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1282:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1122,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "creditorFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1044,
                            "src": "1282:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1123,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1301:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1124,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "debtorFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1040,
                            "src": "1301:15:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1125,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1318:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1126,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "expirationTimestampInSec",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1060,
                            "src": "1318:30:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 1127,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1177:172:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                          "typeString": "uint256[8] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1128,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1355:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1129,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "termsContractParameters",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1058,
                            "src": "1355:29:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "id": 1130,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1354:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                          "typeString": "bytes32[1] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1131,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1400:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1132,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "debtorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1064,
                              "src": "1400:21:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1133,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "v",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1173,
                            "src": "1400:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1134,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1425:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1135,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creditorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1066,
                              "src": "1425:23:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1136,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "v",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1173,
                            "src": "1425:25:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1137,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1452:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1138,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "underwriterSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1068,
                              "src": "1452:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1139,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "v",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1173,
                            "src": "1452:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "id": 1140,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1399:82:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                          "typeString": "uint8[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1141,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1487:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1142,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "debtorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1064,
                              "src": "1487:21:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1143,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "r",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1175,
                            "src": "1487:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1144,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1512:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1145,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creditorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1066,
                              "src": "1512:23:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1146,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "r",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1175,
                            "src": "1512:25:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1147,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1539:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1148,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "underwriterSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1068,
                              "src": "1539:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1149,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "r",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1175,
                            "src": "1539:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "id": 1150,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1486:82:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1151,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1574:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1152,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "debtorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1064,
                              "src": "1574:21:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1153,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "s",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1177,
                            "src": "1574:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1154,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1599:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1155,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creditorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1066,
                              "src": "1599:23:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1156,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "s",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1177,
                            "src": "1599:25:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1157,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1626:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1158,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "underwriterSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1068,
                              "src": "1626:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1159,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "s",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1177,
                            "src": "1626:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "id": 1160,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1573:82:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      }
                    ],
                    "id": 1161,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1046:613:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                      "typeString": "tuple(address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                    }
                  },
                  "functionReturnParameters": 1097,
                  "id": 1162,
                  "nodeType": "Return",
                  "src": "1039:620:13"
                }
              ]
            },
            "documentation": null,
            "id": 1164,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "unpackDebtOrder",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1072,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1071,
                  "name": "order",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "782:22:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                    "typeString": "struct OrderLibrary.DebtOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1070,
                    "name": "DebtOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1069,
                    "src": "782:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                      "typeString": "struct OrderLibrary.DebtOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "781:24:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 1097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1076,
                  "name": "orderAddresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "843:25:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                    "typeString": "address[6]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1073,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "843:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1075,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "36",
                      "id": 1074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "851:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "6"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "843:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$6_storage_ptr",
                      "typeString": "address[6]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1080,
                  "name": "orderValues",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "879:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                    "typeString": "uint256[8]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1077,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "879:4:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1079,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "38",
                      "id": 1078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "884:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "8"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "879:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
                      "typeString": "uint256[8]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1084,
                  "name": "orderBytes32",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "909:23:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                    "typeString": "bytes32[1]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1081,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "909:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1083,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 1082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "917:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "1"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "909:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$1_storage_ptr",
                      "typeString": "bytes32[1]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1088,
                  "name": "signaturesV",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "943:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                    "typeString": "uint8[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1085,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "943:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 1087,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "33",
                      "id": 1086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "949:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "943:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$3_storage_ptr",
                      "typeString": "uint8[3]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1092,
                  "name": "signaturesR",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "974:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                    "typeString": "bytes32[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1089,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "974:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1091,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "33",
                      "id": 1090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "982:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "974:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                      "typeString": "bytes32[3]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1096,
                  "name": "signaturesS",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "1007:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                    "typeString": "bytes32[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1093,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1007:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1095,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "33",
                      "id": 1094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1015:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "1007:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                      "typeString": "bytes32[3]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "832:201:13"
            },
            "scope": 1165,
            "src": "757:906:13",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1166,
        "src": "95:1570:13"
      }
    ],
    "src": "0:1666:13"
  },
  "legacyAST": {
    "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/libraries/OrderLibrary.sol",
    "exportedSymbols": {
      "OrderLibrary": [
        1165
      ]
    },
    "id": 1166,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1022,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:13"
      },
      {
        "id": 1023,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:13"
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/libraries/SignaturesLibrary.sol",
        "file": "./SignaturesLibrary.sol",
        "id": 1024,
        "nodeType": "ImportDirective",
        "scope": 1166,
        "sourceUnit": 1211,
        "src": "60:33:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1165,
        "linearizedBaseContracts": [
          1165
        ],
        "name": "OrderLibrary",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "OrderLibrary.DebtOrder",
            "id": 1069,
            "members": [
              {
                "constant": false,
                "id": 1026,
                "name": "kernelVersion",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "141:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1025,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "141:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1028,
                "name": "issuanceVersion",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "166:23:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1027,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "166:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1030,
                "name": "principalAmount",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "193:20:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1029,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "193:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1032,
                "name": "principalToken",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "217:22:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1031,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "217:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1034,
                "name": "collateralAmount",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "243:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1033,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "243:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1036,
                "name": "collateralToken",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "268:23:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1035,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "268:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1038,
                "name": "debtor",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "295:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1037,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "295:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1040,
                "name": "debtorFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "313:14:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1039,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "313:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1042,
                "name": "creditor",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "331:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1041,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "331:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1044,
                "name": "creditorFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "351:16:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1043,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "351:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1046,
                "name": "relayer",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "371:15:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1045,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "371:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1048,
                "name": "relayerFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "390:15:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1047,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "390:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1050,
                "name": "underwriter",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "409:19:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1049,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "409:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1052,
                "name": "underwriterFee",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "432:19:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1051,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "432:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1054,
                "name": "underwriterRiskRating",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "455:26:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1053,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "455:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1056,
                "name": "termsContract",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "485:21:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1055,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "485:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1058,
                "name": "termsContractParameters",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "510:31:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 1057,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "510:7:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1060,
                "name": "expirationTimestampInSec",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "545:29:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1059,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "545:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1062,
                "name": "salt",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "578:9:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1061,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "578:4:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1064,
                "name": "debtorSignature",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "591:48:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                  "typeString": "struct SignaturesLibrary.ECDSASignature"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1063,
                  "name": "SignaturesLibrary.ECDSASignature",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1178,
                  "src": "591:32:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                    "typeString": "struct SignaturesLibrary.ECDSASignature"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1066,
                "name": "creditorSignature",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "643:50:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                  "typeString": "struct SignaturesLibrary.ECDSASignature"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1065,
                  "name": "SignaturesLibrary.ECDSASignature",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1178,
                  "src": "643:32:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                    "typeString": "struct SignaturesLibrary.ECDSASignature"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1068,
                "name": "underwriterSignature",
                "nodeType": "VariableDeclaration",
                "scope": 1069,
                "src": "697:53:13",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                  "typeString": "struct SignaturesLibrary.ECDSASignature"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1067,
                  "name": "SignaturesLibrary.ECDSASignature",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1178,
                  "src": "697:32:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ECDSASignature_$1178_storage_ptr",
                    "typeString": "struct SignaturesLibrary.ECDSASignature"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "DebtOrder",
            "nodeType": "StructDefinition",
            "scope": 1165,
            "src": "120:634:13",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1163,
              "nodeType": "Block",
              "src": "1035:628:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1098,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1052:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1099,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "kernelVersion",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1026,
                            "src": "1052:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1100,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1073:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1101,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "debtor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1038,
                            "src": "1073:12:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1102,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1087:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1103,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "underwriter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1050,
                            "src": "1087:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1104,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1106:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1105,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "termsContract",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1056,
                            "src": "1106:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1106,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1127:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1107,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "principalToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1032,
                            "src": "1127:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1108,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1149:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1109,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "relayer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1046,
                            "src": "1149:13:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "id": 1110,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1051:112:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                          "typeString": "address[6] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1111,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1178:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1112,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "underwriterRiskRating",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1054,
                            "src": "1178:27:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1113,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1207:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1114,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "salt",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1062,
                            "src": "1207:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1115,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1219:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1116,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "principalAmount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1030,
                            "src": "1219:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1117,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1242:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1118,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "underwriterFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1052,
                            "src": "1242:20:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1119,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1264:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1120,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "relayerFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1048,
                            "src": "1264:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1121,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1282:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1122,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "creditorFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1044,
                            "src": "1282:17:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1123,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1301:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1124,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "debtorFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1040,
                            "src": "1301:15:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1125,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1318:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1126,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "expirationTimestampInSec",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1060,
                            "src": "1318:30:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 1127,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1177:172:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                          "typeString": "uint256[8] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1128,
                              "name": "order",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1071,
                              "src": "1355:5:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                "typeString": "struct OrderLibrary.DebtOrder memory"
                              }
                            },
                            "id": 1129,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "termsContractParameters",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1058,
                            "src": "1355:29:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "id": 1130,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1354:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                          "typeString": "bytes32[1] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1131,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1400:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1132,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "debtorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1064,
                              "src": "1400:21:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1133,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "v",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1173,
                            "src": "1400:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1134,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1425:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1135,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creditorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1066,
                              "src": "1425:23:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1136,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "v",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1173,
                            "src": "1425:25:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1137,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1452:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1138,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "underwriterSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1068,
                              "src": "1452:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1139,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "v",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1173,
                            "src": "1452:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "id": 1140,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1399:82:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                          "typeString": "uint8[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1141,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1487:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1142,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "debtorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1064,
                              "src": "1487:21:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1143,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "r",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1175,
                            "src": "1487:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1144,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1512:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1145,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creditorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1066,
                              "src": "1512:23:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1146,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "r",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1175,
                            "src": "1512:25:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1147,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1539:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1148,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "underwriterSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1068,
                              "src": "1539:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1149,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "r",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1175,
                            "src": "1539:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "id": 1150,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1486:82:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1151,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1574:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1152,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "debtorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1064,
                              "src": "1574:21:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1153,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "s",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1177,
                            "src": "1574:23:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1154,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1599:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1155,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creditorSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1066,
                              "src": "1599:23:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1156,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "s",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1177,
                            "src": "1599:25:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1157,
                                "name": "order",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1071,
                                "src": "1626:5:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                                  "typeString": "struct OrderLibrary.DebtOrder memory"
                                }
                              },
                              "id": 1158,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "underwriterSignature",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1068,
                              "src": "1626:26:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ECDSASignature_$1178_memory",
                                "typeString": "struct SignaturesLibrary.ECDSASignature memory"
                              }
                            },
                            "id": 1159,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "s",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1177,
                            "src": "1626:28:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "id": 1160,
                        "isConstant": false,
                        "isInlineArray": true,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "1573:82:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      }
                    ],
                    "id": 1161,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1046:613:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                      "typeString": "tuple(address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                    }
                  },
                  "functionReturnParameters": 1097,
                  "id": 1162,
                  "nodeType": "Return",
                  "src": "1039:620:13"
                }
              ]
            },
            "documentation": null,
            "id": 1164,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "unpackDebtOrder",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1072,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1071,
                  "name": "order",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "782:22:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                    "typeString": "struct OrderLibrary.DebtOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1070,
                    "name": "DebtOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1069,
                    "src": "782:9:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                      "typeString": "struct OrderLibrary.DebtOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "781:24:13"
            },
            "payable": false,
            "returnParameters": {
              "id": 1097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1076,
                  "name": "orderAddresses",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "843:25:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                    "typeString": "address[6]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1073,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "843:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1075,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "36",
                      "id": 1074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "851:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "6"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "843:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$6_storage_ptr",
                      "typeString": "address[6]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1080,
                  "name": "orderValues",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "879:19:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                    "typeString": "uint256[8]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1077,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "879:4:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1079,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "38",
                      "id": 1078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "884:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "8"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "879:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
                      "typeString": "uint256[8]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1084,
                  "name": "orderBytes32",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "909:23:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                    "typeString": "bytes32[1]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1081,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "909:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1083,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 1082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "917:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "1"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "909:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$1_storage_ptr",
                      "typeString": "bytes32[1]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1088,
                  "name": "signaturesV",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "943:20:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                    "typeString": "uint8[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1085,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "943:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 1087,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "33",
                      "id": 1086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "949:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "943:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$3_storage_ptr",
                      "typeString": "uint8[3]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1092,
                  "name": "signaturesR",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "974:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                    "typeString": "bytes32[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1089,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "974:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1091,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "33",
                      "id": 1090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "982:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "974:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                      "typeString": "bytes32[3]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1096,
                  "name": "signaturesS",
                  "nodeType": "VariableDeclaration",
                  "scope": 1164,
                  "src": "1007:22:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                    "typeString": "bytes32[3]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1093,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1007:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1095,
                    "length": {
                      "argumentTypes": null,
                      "hexValue": "33",
                      "id": 1094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1015:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": null,
                        "typeString": null
                      },
                      "value": "3"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "1007:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                      "typeString": "bytes32[3]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "832:201:13"
            },
            "scope": 1165,
            "src": "757:906:13",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1166,
        "src": "95:1570:13"
      }
    ],
    "src": "0:1666:13"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-10-16T21:20:58.401Z"
}