{
  "contractName": "CECEncoder",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"decodeAndGetCECTerms(Asset storage)\":{\"details\":\"Decode and loads CECTerms\"},\"encodeAndSetCECTerms(Asset storage,CECTerms)\":{\"details\":\"Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"encodeAndSetCECTerms(Asset storage,CECTerms)\":{\"notice\":\"All non zero values of the overwrittenTerms object are stored. It does not check if overwrittenAttributesMap actually marks attribute as overwritten.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CEC/CECEncoder.sol\":\"CECEncoder\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/BaseRegistryStorage.sol\":{\"keccak256\":\"0x872f4fd27fe80b6b3826bdaeaacdb77fb529d34235735f82e1413a5fe655f68b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c24b8fa53dfb2a11c67053c4b00de83307e45c83229e4b44f71d21eb9b0e5abd\",\"dweb:/ipfs/QmetZ6ptmsueoaCxjBMqpaZYdHgpjqPhjZurKbG2ZudbqY\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/Schedule/ScheduleEncoder.sol\":{\"keccak256\":\"0x887c1085da0a8f7b055ae73bc3337228d70cef2296521103abb5fcb53315313e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cb408a6f3e5f9394eacaeeaeb2d38db05f994b952cfaa6ca896c0af978cf27d7\",\"dweb:/ipfs/QmeDp1TWA1rGijSgQUPwCJoc933gPD8FVTkDTupppxuZhS\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/State/StateEncoder.sol\":{\"keccak256\":\"0x2668d331c79ff3eb189a5fd813fdc77ff9adb82c8c6323f3b09fd72e47674492\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://01ecc394db0ce16d5e415b55dd0bf78d7de70197ed3a60602b11a814451fd5ff\",\"dweb:/ipfs/QmfVdpeeuFXSjnUSMiwp9pS3gAhKE72zwBFdBy29DDLBH4\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/Conversions.sol\":{\"keccak256\":\"0x4482adab804008a2774b11036cc9ff6f42aa7f248d6b8ca922082bf090a736e5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e774c979286649c16d92eb4672c30c06fcbe7ddc053eee70088c4b28fc27e48c\",\"dweb:/ipfs/QmXqfezUnKVaKzA7Qs9BFC9yRKFTMwwxa778ofikE2hC1H\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/SharedTypes.sol\":{\"keccak256\":\"0x5a918fdefe9bd357255bffcf75d325f0d23ccf7074533f8d6a80a62bfd60893e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5c5fc68f47deab5b0cc572a8a1f7dba997e5a8bb13292ce3e4ee29540a3b1fd7\",\"dweb:/ipfs/QmeqcqcDYsgvbBH8XrHzURMuz9jQLEf4F2i5M59wYMCxgt\"]},\"/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CEC/CECEncoder.sol\":{\"keccak256\":\"0xcf9933f47c8a206b2b3d52e823290a6f635cb7a555df24606a8731879b8de4c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0b7ce32068106ec8b5345c043e4c8ea15b53f43829378d2b78db24a1fa6c8b0d\",\"dweb:/ipfs/QmRrGybhJ9qZJERcZ7zkXzEQAt4TVjpWEW94g5Bfitv1Rz\"]},\"@atpar/actus-solidity/contracts/Core/ACTUSConstants.sol\":{\"keccak256\":\"0xd7588866afdab6298dd5b64c5fe0ca63230236538d711932e7a5a17928d1226b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2a0678d5f895239119f463a3ae8a58c5c27b872c91db1cd4253ce5866481c6cd\",\"dweb:/ipfs/QmPXsMXFf1Qar8JCnKTL6Nizf63sZEQQt7XosrdeEnG2CE\"]},\"@atpar/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4374a4c79ef02bb008994431870badedd532d09639fef8d7378039faee88d4dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c0d32929c237f8d04ff4117611292f874bb1dd785b8ec94c04389d608c11481c\",\"dweb:/ipfs/QmVu3awVGWDvqMCjPhmzcCQCRg4VNr5XxcDRWDECTr17TV\"]}},\"version\":1}",
  "bytecode": "0x61142b610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063a5be46bb11610070578063a5be46bb14610138578063bb63c3b5146100ad578063bce57f1b14610158578063cabb242914610178578063f4835d7014610198576100a8565b806326e7daac146100ad57806380e1292c146100d657806381555221146100f6578063856b0d6414610116578063a00aadbc146100ad575b600080fd5b6100c06100bb366004610ff1565b6101b8565b6040516100cd91906111c8565b60405180910390f35b6100e96100e4366004610ff1565b6101d0565b6040516100cd9190611322565b610109610104366004610ff1565b6101ff565b6040516100cd91906112df565b81801561012257600080fd5b50610136610131366004611012565b610228565b005b61014b610146366004610ff1565b610529565b6040516100cd9190611352565b61016b610166366004610ff1565b61071c565b6040516100cd91906112d1565b61018b610186366004610ff1565b610959565b6040516100cd91906111b4565b6101ab6101a6366004610fd9565b610961565b6040516100cd91906111d1565b6000818152600d830160205260409020545b92915050565b6101d8610e4e565b6040805160608101909152600080825260208201905b815260006020909101529392505050565b610207610e71565b604080516080810190915260008082526020820190815260200160006101ee565b61030e8264656e756d7360d81b60c08460e00151600181111561024757fe5b60ff1660001b901b60c88560c00151600581111561026157fe5b60ff1660001b901b60d08660a00151600181111561027b57fe5b60ff1660001b901b60d88760800151600881111561029557fe5b60ff1660001b901b60e0886060015160058111156102af57fe5b60ff1660001b901b60e88960400151600c8111156102c957fe5b60ff1660001b901b60f08a6020015160018111156102e357fe5b60ff1660001b901b60f88b6000015160128111156102fd57fe5b60ff16901b17171717171717610e18565b61032e82697374617475734461746560b01b83610100015160001b610e18565b610350826b6d617475726974794461746560a01b83610120015160001b610e18565b61037782701b9bdd1a5bdb985b141c9a5b98da5c185b607a1b83610140015160001b610e18565b61039482666665655261746560c81b83610160015160001b610e18565b6103c7827f636f7665726167654f66437265646974456e68616e63656d656e74000000000083610180015160001b610e18565b610415826000805160206113b68339815191526008846101a001516060015160048111156103f157fe5b60001b901b6010856101a0015160400151600481111561040d57fe5b901b17610e18565b610446827918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b836101a0015160000151610e18565b61047a827f636f6e74726163745265666572656e63655f315f6f626a656374320000000000836101a0015160200151610e18565b6104c0826000805160206113d68339815191526008846101c001516060015160048111156104a457fe5b60001b901b6010856101c0015160400151600481111561040d57fe5b6104f1827918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b836101c0015160000151610e18565b610525827f636f6e74726163745265666572656e63655f325f6f626a656374320000000000836101c0015160200151610e18565b5050565b6000816b636f6e74726163745479706560a01b1415610565575064656e756d7360d81b6000908152600d8301602052604090205460f81c6101ca565b6731b0b632b73230b960c11b82141561059b575064656e756d7360d81b6000908152600d8301602052604090205460f01c6101ca565b6b636f6e7472616374526f6c6560a01b8214156105d5575064656e756d7360d81b6000908152600d8301602052604090205460e81c6101ca565b713230bca1b7bab73a21b7b73b32b73a34b7b760711b821415610615575064656e756d7360d81b6000908152600d8301602052604090205460e01c6101ca565b74313ab9b4b732b9b9a230bca1b7b73b32b73a34b7b760591b821415610658575064656e756d7360d81b6000908152600d8301602052604090205460d81c6101ca565b7332b73227b326b7b73a3421b7b73b32b73a34b7b760611b82141561069a575064656e756d7360d81b6000908152600d8301602052604090205460d01c6101ca565b7518dc99591a5d115d995b9d151e5c1950dbdd995c995960521b8214156106de575064656e756d7360d81b6000908152600d8301602052604090205460c81c6101ca565b67666565426173697360c01b821415610714575064656e756d7360d81b6000908152600d8301602052604090205460c01c6101ca565b5060006101ca565b610724610e92565b72636f6e74726163745265666572656e63655f3160681b82141561083557604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f315f6f626a656374320000000000835281815284832054818501526000805160206113b683398151915283525282902054909182019060101c60ff1660048111156107d857fe5b60048111156107e357fe5b8152602001600885600d0160006000805160206113b6833981519152815260200190815260200160002054901c60001c60ff16600481111561082157fe5b600481111561082c57fe5b905290506101ca565b7231b7b73a3930b1ba2932b332b932b731b2af9960691b82141561093257604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a656374320000000000835281815284832054818501526000805160206113d683398151915283525282902054909182019060101c60ff1660048111156108e957fe5b60048111156108f457fe5b8152602001600885600d0160006000805160206113d6833981519152815260200190815260200160002054901c60001c60ff16600481111561082157fe5b60408051608081018252600080825260208201819052909182019081526020016000610821565b600092915050565b610969610eba565b604080516101e08101825264656e756d7360d81b6000908152600d85016020529190912054819060f81c601281111561099e57fe5b60128111156109a957fe5b815260200160f084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff1660018111156109e157fe5b60018111156109ec57fe5b815260200160e884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600c811115610a2457fe5b600c811115610a2f57fe5b815260200160e084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166005811115610a6757fe5b6005811115610a7257fe5b815260200160d884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166008811115610aaa57fe5b6008811115610ab557fe5b815260200160d084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166001811115610aed57fe5b6001811115610af857fe5b815260200160c884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166005811115610b3057fe5b6005811115610b3b57fe5b815260200160c084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166001811115610b7357fe5b6001811115610b7e57fe5b8152697374617475734461746560b01b6000908152600d85016020818152604080842054828601526b6d617475726974794461746560a01b84528282528084205481860152701b9bdd1a5bdb985b141c9a5b98da5c185b607a1b8452828252808420546060860152666665655261746560c81b8452828252808420546080808701919091527f636f7665726167654f66437265646974456e68616e63656d656e74000000000085528383528185205460a0870152815190810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b85528383528185205481527f636f6e74726163745265666572656e63655f315f6f626a656374320000000000855283835281852054818401526000805160206113b6833981519152855292909152918290205460c090930192909182019060101c60ff166004811115610cc657fe5b6004811115610cd157fe5b8152602001600886600d0160006000805160206113b6833981519152815260200190815260200160002054901c60001c60ff166004811115610d0f57fe5b6004811115610d1a57fe5b90528152604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d870160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a656374320000000000835281815284832054818501526000805160206113d683398151915283529081529083902054930192909182019060101c60ff166004811115610dba57fe5b6004811115610dc557fe5b8152602001600886600d0160006000805160206113d6833981519152815260200190815260200160002054901c60001c60ff166004811115610e0357fe5b6004811115610e0e57fe5b9052905292915050565b6000828152600d84016020526040902054811415610e3557610e49565b6000828152600d8401602052604090208190555b505050565b6040805160608101909152600080825260208201905b8152600060209091015290565b60408051608081019091526000808252602082019081526020016000610e64565b604080516080810182526000808252602082018190529091820190815260200160005b905290565b604080516101e081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001610f2a610e92565b8152602001610eb5610e92565b8035600981106101ca57600080fd5b8035600281106101ca57600080fd5b8035600681106101ca57600080fd5b8035600d81106101ca57600080fd5b8035601381106101ca57600080fd5b600060808284031215610f93578081fd5b610f9d6080611360565b905081358152602082013560208201526040820135610fbb816113a8565b60408201526060820135610fce816113a8565b606082015292915050565b600060208284031215610fea578081fd5b5035919050565b60008060408385031215611003578081fd5b50508035926020909101359150565b6000808284036102c0811215611026578283fd5b833592506102a0601f198201121561103c578182fd5b506110486101e0611360565b6110558560208601610f73565b81526110648560408601610f46565b60208201526110768560608601610f64565b60408201526110888560808601610f55565b606082015261109a8560a08601610f37565b60808201526110ac8560c08601610f46565b60a08201526110be8560e08601610f55565b60c08201526101006110d286828701610f46565b60e083015261012080860135828401526101409150818601358184015250610160808601358284015261018091508186013581840152506101a080860135828401526101c0915061112587838801610f82565b90830152611137866102408701610f82565b90820152919491935090915050565b6009811061115057fe5b9052565b61115081611387565b61115081611394565b600d811061115057fe5b6013811061115057fe5b805182526020810151602083015260408101516111968161139e565b604083015260608101516111a98161139e565b806060840152505050565b6001600160a01b0391909116815260200190565b90815260200190565b60006102a0820190506111e5828451611170565b60208301516111f76020840182611154565b50604083015161120a6040840182611166565b50606083015161121d606084018261115d565b5060808301516112306080840182611146565b5060a083015161124360a0840182611154565b5060c083015161125660c084018261115d565b5060e083015161126960e0840182611154565b50610100838101519083015261012080840151908301526101408084015190830152610160808401519083015261018080840151908301526101a0808401516112b48285018261117a565b50506101c08301516112ca61022084018261117a565b5092915050565b608081016101ca828461117a565b81518152602082015160808201906112f681611394565b6020830152604083015161130981611387565b8060408401525060608301511515606083015292915050565b815181526020820151606082019061133981611394565b8060208401525060408301511515604083015292915050565b60ff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561137f57600080fd5b604052919050565b6002811061139157fe5b50565b6006811061139157fe5b6005811061139157fe5b6005811061139157600080fdfe636f6e74726163745265666572656e63655f315f747970655f726f6c65000000636f6e74726163745265666572656e63655f325f747970655f726f6c65000000a2646970667358221220d4ac9c20fcb6f25f021ccd76a58c5ba195549b961f0187cd15d0bc900d2bb06c64736f6c634300060b0033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063a5be46bb11610070578063a5be46bb14610138578063bb63c3b5146100ad578063bce57f1b14610158578063cabb242914610178578063f4835d7014610198576100a8565b806326e7daac146100ad57806380e1292c146100d657806381555221146100f6578063856b0d6414610116578063a00aadbc146100ad575b600080fd5b6100c06100bb366004610ff1565b6101b8565b6040516100cd91906111c8565b60405180910390f35b6100e96100e4366004610ff1565b6101d0565b6040516100cd9190611322565b610109610104366004610ff1565b6101ff565b6040516100cd91906112df565b81801561012257600080fd5b50610136610131366004611012565b610228565b005b61014b610146366004610ff1565b610529565b6040516100cd9190611352565b61016b610166366004610ff1565b61071c565b6040516100cd91906112d1565b61018b610186366004610ff1565b610959565b6040516100cd91906111b4565b6101ab6101a6366004610fd9565b610961565b6040516100cd91906111d1565b6000818152600d830160205260409020545b92915050565b6101d8610e4e565b6040805160608101909152600080825260208201905b815260006020909101529392505050565b610207610e71565b604080516080810190915260008082526020820190815260200160006101ee565b61030e8264656e756d7360d81b60c08460e00151600181111561024757fe5b60ff1660001b901b60c88560c00151600581111561026157fe5b60ff1660001b901b60d08660a00151600181111561027b57fe5b60ff1660001b901b60d88760800151600881111561029557fe5b60ff1660001b901b60e0886060015160058111156102af57fe5b60ff1660001b901b60e88960400151600c8111156102c957fe5b60ff1660001b901b60f08a6020015160018111156102e357fe5b60ff1660001b901b60f88b6000015160128111156102fd57fe5b60ff16901b17171717171717610e18565b61032e82697374617475734461746560b01b83610100015160001b610e18565b610350826b6d617475726974794461746560a01b83610120015160001b610e18565b61037782701b9bdd1a5bdb985b141c9a5b98da5c185b607a1b83610140015160001b610e18565b61039482666665655261746560c81b83610160015160001b610e18565b6103c7827f636f7665726167654f66437265646974456e68616e63656d656e74000000000083610180015160001b610e18565b610415826000805160206113b68339815191526008846101a001516060015160048111156103f157fe5b60001b901b6010856101a0015160400151600481111561040d57fe5b901b17610e18565b610446827918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b836101a0015160000151610e18565b61047a827f636f6e74726163745265666572656e63655f315f6f626a656374320000000000836101a0015160200151610e18565b6104c0826000805160206113d68339815191526008846101c001516060015160048111156104a457fe5b60001b901b6010856101c0015160400151600481111561040d57fe5b6104f1827918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b836101c0015160000151610e18565b610525827f636f6e74726163745265666572656e63655f325f6f626a656374320000000000836101c0015160200151610e18565b5050565b6000816b636f6e74726163745479706560a01b1415610565575064656e756d7360d81b6000908152600d8301602052604090205460f81c6101ca565b6731b0b632b73230b960c11b82141561059b575064656e756d7360d81b6000908152600d8301602052604090205460f01c6101ca565b6b636f6e7472616374526f6c6560a01b8214156105d5575064656e756d7360d81b6000908152600d8301602052604090205460e81c6101ca565b713230bca1b7bab73a21b7b73b32b73a34b7b760711b821415610615575064656e756d7360d81b6000908152600d8301602052604090205460e01c6101ca565b74313ab9b4b732b9b9a230bca1b7b73b32b73a34b7b760591b821415610658575064656e756d7360d81b6000908152600d8301602052604090205460d81c6101ca565b7332b73227b326b7b73a3421b7b73b32b73a34b7b760611b82141561069a575064656e756d7360d81b6000908152600d8301602052604090205460d01c6101ca565b7518dc99591a5d115d995b9d151e5c1950dbdd995c995960521b8214156106de575064656e756d7360d81b6000908152600d8301602052604090205460c81c6101ca565b67666565426173697360c01b821415610714575064656e756d7360d81b6000908152600d8301602052604090205460c01c6101ca565b5060006101ca565b610724610e92565b72636f6e74726163745265666572656e63655f3160681b82141561083557604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f315f6f626a656374320000000000835281815284832054818501526000805160206113b683398151915283525282902054909182019060101c60ff1660048111156107d857fe5b60048111156107e357fe5b8152602001600885600d0160006000805160206113b6833981519152815260200190815260200160002054901c60001c60ff16600481111561082157fe5b600481111561082c57fe5b905290506101ca565b7231b7b73a3930b1ba2932b332b932b731b2af9960691b82141561093257604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d860160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a656374320000000000835281815284832054818501526000805160206113d683398151915283525282902054909182019060101c60ff1660048111156108e957fe5b60048111156108f457fe5b8152602001600885600d0160006000805160206113d6833981519152815260200190815260200160002054901c60001c60ff16600481111561082157fe5b60408051608081018252600080825260208201819052909182019081526020016000610821565b600092915050565b610969610eba565b604080516101e08101825264656e756d7360d81b6000908152600d85016020529190912054819060f81c601281111561099e57fe5b60128111156109a957fe5b815260200160f084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff1660018111156109e157fe5b60018111156109ec57fe5b815260200160e884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff16600c811115610a2457fe5b600c811115610a2f57fe5b815260200160e084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166005811115610a6757fe5b6005811115610a7257fe5b815260200160d884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166008811115610aaa57fe5b6008811115610ab557fe5b815260200160d084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166001811115610aed57fe5b6001811115610af857fe5b815260200160c884600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166005811115610b3057fe5b6005811115610b3b57fe5b815260200160c084600d01600064656e756d7360d81b815260200190815260200160002054901c60001c60ff166001811115610b7357fe5b6001811115610b7e57fe5b8152697374617475734461746560b01b6000908152600d85016020818152604080842054828601526b6d617475726974794461746560a01b84528282528084205481860152701b9bdd1a5bdb985b141c9a5b98da5c185b607a1b8452828252808420546060860152666665655261746560c81b8452828252808420546080808701919091527f636f7665726167654f66437265646974456e68616e63656d656e74000000000085528383528185205460a0870152815190810182527918dbdb9d1c9858dd149959995c995b98d957cc57dbd89a9958dd60321b85528383528185205481527f636f6e74726163745265666572656e63655f315f6f626a656374320000000000855283835281852054818401526000805160206113b6833981519152855292909152918290205460c090930192909182019060101c60ff166004811115610cc657fe5b6004811115610cd157fe5b8152602001600886600d0160006000805160206113b6833981519152815260200190815260200160002054901c60001c60ff166004811115610d0f57fe5b6004811115610d1a57fe5b90528152604080516080810182527918dbdb9d1c9858dd149959995c995b98d957cc97dbd89a9958dd60321b6000908152600d870160208181528483205484527f636f6e74726163745265666572656e63655f325f6f626a656374320000000000835281815284832054818501526000805160206113d683398151915283529081529083902054930192909182019060101c60ff166004811115610dba57fe5b6004811115610dc557fe5b8152602001600886600d0160006000805160206113d6833981519152815260200190815260200160002054901c60001c60ff166004811115610e0357fe5b6004811115610e0e57fe5b9052905292915050565b6000828152600d84016020526040902054811415610e3557610e49565b6000828152600d8401602052604090208190555b505050565b6040805160608101909152600080825260208201905b8152600060209091015290565b60408051608081019091526000808252602082019081526020016000610e64565b604080516080810182526000808252602082018190529091820190815260200160005b905290565b604080516101e081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001610f2a610e92565b8152602001610eb5610e92565b8035600981106101ca57600080fd5b8035600281106101ca57600080fd5b8035600681106101ca57600080fd5b8035600d81106101ca57600080fd5b8035601381106101ca57600080fd5b600060808284031215610f93578081fd5b610f9d6080611360565b905081358152602082013560208201526040820135610fbb816113a8565b60408201526060820135610fce816113a8565b606082015292915050565b600060208284031215610fea578081fd5b5035919050565b60008060408385031215611003578081fd5b50508035926020909101359150565b6000808284036102c0811215611026578283fd5b833592506102a0601f198201121561103c578182fd5b506110486101e0611360565b6110558560208601610f73565b81526110648560408601610f46565b60208201526110768560608601610f64565b60408201526110888560808601610f55565b606082015261109a8560a08601610f37565b60808201526110ac8560c08601610f46565b60a08201526110be8560e08601610f55565b60c08201526101006110d286828701610f46565b60e083015261012080860135828401526101409150818601358184015250610160808601358284015261018091508186013581840152506101a080860135828401526101c0915061112587838801610f82565b90830152611137866102408701610f82565b90820152919491935090915050565b6009811061115057fe5b9052565b61115081611387565b61115081611394565b600d811061115057fe5b6013811061115057fe5b805182526020810151602083015260408101516111968161139e565b604083015260608101516111a98161139e565b806060840152505050565b6001600160a01b0391909116815260200190565b90815260200190565b60006102a0820190506111e5828451611170565b60208301516111f76020840182611154565b50604083015161120a6040840182611166565b50606083015161121d606084018261115d565b5060808301516112306080840182611146565b5060a083015161124360a0840182611154565b5060c083015161125660c084018261115d565b5060e083015161126960e0840182611154565b50610100838101519083015261012080840151908301526101408084015190830152610160808401519083015261018080840151908301526101a0808401516112b48285018261117a565b50506101c08301516112ca61022084018261117a565b5092915050565b608081016101ca828461117a565b81518152602082015160808201906112f681611394565b6020830152604083015161130981611387565b8060408401525060608301511515606083015292915050565b815181526020820151606082019061133981611394565b8060208401525060408301511515604083015292915050565b60ff91909116815260200190565b60405181810167ffffffffffffffff8111828210171561137f57600080fd5b604052919050565b6002811061139157fe5b50565b6006811061139157fe5b6005811061139157fe5b6005811061139157600080fdfe636f6e74726163745265666572656e63655f315f747970655f726f6c65000000636f6e74726163745265666572656e63655f325f747970655f726f6c65000000a2646970667358221220d4ac9c20fcb6f25f021ccd76a58c5ba195549b961f0187cd15d0bc900d2bb06c64736f6c634300060b0033",
  "immutableReferences": {},
  "sourceMap": "193:8647:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "193:8647:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6826:213;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7045:210;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7261:217::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;753:2215::-;;;;;;;;;;-1:-1:-1;753:2215:31;;;;;:::i;:::-;;:::i;:::-;;4900:1275;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7484:1354::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6181:201::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3028:1866::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6826:213::-;6964:6;7000:31;;;:17;;;:31;;;;;;6826:213;;;;;:::o;7045:210::-;7198:9;;:::i;:::-;7230:18;;;;;;;;;-1:-1:-1;7230:18:31;;;;;;;;;;7242:5;7230:18;;;;;7223:25;7045:210;-1:-1:-1;;;7045:210:31:o;7261:217::-;7413:10;;:::i;:::-;7446:25;;;;;;;;;-1:-1:-1;7446:25:31;;;;;;;;;;;7461:1;7446:25;;753:2215;846:612;878:5;-1:-1:-1;;;1445:3:31;1424:5;:14;;;1418:21;;;;;;;;1410:30;;1402:39;;:46;;1384:3;1349:5;:28;;;1343:35;;;;;;;;1335:44;;1327:53;;:60;;1309:3;1276:5;:26;;;1270:33;;;;;;;;1262:42;;1254:51;;:58;;1236:3;1202:5;:27;;;1196:34;;;;;;;;1188:43;;1180:52;;:59;;1162:3;1131:5;:24;;;1125:31;;;;;;;;1117:40;;1109:49;;:56;;1091:3;1066:5;:18;;;1060:25;;;;;;;;1052:34;;1044:43;;:50;;1026:3;1005:5;:14;;;999:21;;;;;;;;991:30;;983:39;;:46;;965:3;940:5;:18;;;934:25;;;;;;;;926:34;;918:50;;:111;:176;:247;:321;:394;:469;:530;846:18;:612::i;:::-;1469:66;1488:5;-1:-1:-1;;;1517:5:31;:16;;;1509:25;;1469:18;:66::i;:::-;1545:70;1564:5;-1:-1:-1;;;1595:5:31;:18;;;1587:27;;1545:18;:70::i;:::-;1626:80;1645:5;-1:-1:-1;;;1681:5:31;:23;;;1673:32;;1626:18;:80::i;:::-;1725:60;1744:5;-1:-1:-1;;;1770:5:31;:13;;;1762:22;;1725:18;:60::i;:::-;1795:100;1814:5;1795:100;1860:5;:33;;;1852:42;;1795:18;:100::i;:::-;1906:229;1938:5;-1:-1:-1;;;;;;;;;;;2124:1:31;2088:5;:25;;;:30;;;2080:39;;;;;;;;2072:48;;:53;;2055:2;2018:5;:25;;;:31;;;2010:40;;;;;;;;2002:55;;:123;1906:18;:229::i;:::-;2146:135;2178:5;-1:-1:-1;;;2239:5:31;:25;;;:32;;;2146:18;:135::i;:::-;2291:137;2323:5;2291:137;2385:5;:25;;;:33;;;2291:18;:137::i;:::-;2439:229;2471:5;-1:-1:-1;;;;;;;;;;;2657:1:31;2621:5;:25;;;:30;;;2613:39;;;;;;;;2605:48;;:53;;2588:2;2551:5;:25;;;:31;;;2543:40;;;;;;;2439:229;2679:135;2711:5;-1:-1:-1;;;2772:5:31;:25;;;:32;;;2679:18;:135::i;:::-;2824:137;2856:5;2824:137;2918:5;:25;;;:33;;;2824:18;:137::i;:::-;753:2215;;:::o;4900:1275::-;5036:5;5061:12;-1:-1:-1;;;5061:30:31;5057:1112;;;-1:-1:-1;;;;5128:26:31;;;;:17;;;:26;;;;;;5158:3;5128:33;5107:56;;5057:1112;-1:-1:-1;;;5184:12:31;:35;5180:989;;;-1:-1:-1;;;;5256:26:31;;;;:17;;;:26;;;;;;5286:3;5256:33;5235:56;;5180:989;-1:-1:-1;;;5312:12:31;:39;5308:861;;;-1:-1:-1;;;;5388:26:31;;;;:17;;;:26;;;;;;5418:3;5388:33;5367:56;;5308:861;-1:-1:-1;;;5444:12:31;:45;5440:729;;;-1:-1:-1;;;;5526:26:31;;;;:17;;;:26;;;;;;5556:3;5526:33;5505:56;;5440:729;-1:-1:-1;;;5582:12:31;:48;5578:591;;;-1:-1:-1;;;;5667:26:31;;;;:17;;;:26;;;;;;5697:3;5667:33;5646:56;;5578:591;-1:-1:-1;;;5723:12:31;:47;5719:450;;;-1:-1:-1;;;;5807:26:31;;;;:17;;;:26;;;;;;5837:3;5807:33;5786:56;;5719:450;-1:-1:-1;;;5863:12:31;:49;5859:310;;;-1:-1:-1;;;;5949:26:31;;;;:17;;;:26;;;;;;5979:3;5949:33;5928:56;;5859:310;-1:-1:-1;;;6005:12:31;:35;6001:168;;;-1:-1:-1;;;;6077:26:31;;;;:17;;;:26;;;;;;6107:3;6077:33;6056:56;;6001:168;-1:-1:-1;6156:1:31;6143:15;;7484:1354;7635:24;;:::i;:::-;-1:-1:-1;;;7679:12:31;:46;7675:1157;;;7748:387;;;;;;;;-1:-1:-1;;;;7783:47:31;;;:17;;;:47;;;;;;;;7748:387;;7848:48;;;;;;;;;;7748:387;;;;-1:-1:-1;;;;;;;;;;;7950:50:31;;;;;;;7748:387;;;;;8004:2;7950:56;7914:95;;;;;;;;;;7748:387;;;;;;;;;;;;8117:1;8063:5;:17;;:50;-1:-1:-1;;;;;;;;;;;8063:50:31;;;;;;;;;;;;:55;;8055:64;;8027:94;;;;;;;;;;7748:387;;;;;;;;;;7741:394;-1:-1:-1;7741:394:31;;7675:1157;-1:-1:-1;;;8156:12:31;:46;8152:680;;;8225:387;;;;;;;;-1:-1:-1;;;;8260:47:31;;;:17;;;:47;;;;;;;;8225:387;;8325:48;;;;;;;;;;8225:387;;;;-1:-1:-1;;;;;;;;;;;8427:50:31;;;;;;;8225:387;;;;;8481:2;8427:56;8391:95;;;;;;;;;;8225:387;;;;;;;;;;;;8594:1;8540:5;:17;;:50;-1:-1:-1;;;;;;;;;;;8540:50:31;;;;;;;;;;;;:55;;8532:64;;8504:94;;;;;;;;;8152:680;8650:171;;;;;;;;-1:-1:-1;8650:171:31;;;;;;;;;;;;;;;;;;8805:1;8783:24;;6181:201;6335:7;6181:201;;;;:::o;3028:1866::-;3102:15;;:::i;:::-;3136:1751;;;;;;;;-1:-1:-1;;;;3185:26:31;;;:17;;;:26;;;;;;;3136:1751;;3215:3;3185:33;3158:63;;;;;;;;3136:1751;;;;;;;;;;;;3288:3;3258:5;:17;;:26;-1:-1:-1;;;3258:26:31;;;;;;;;;;;;:33;;3250:42;;3235:59;;;;;;;;;;3136:1751;;;;;;;;;;;;3365:3;3335:5;:17;;:26;-1:-1:-1;;;3335:26:31;;;;;;;;;;;;:33;;3327:42;;3308:63;;;;;;;;;;3136:1751;;;;;;;;;;;;3448:3;3418:5;:17;;:26;-1:-1:-1;;;3418:26:31;;;;;;;;;;;;:33;;3410:42;;3385:69;;;;;;;;;;3136:1751;;;;;;;;;;;;3534:3;3504:5;:17;;:26;-1:-1:-1;;;3504:26:31;;;;;;;;;;;;:33;;3496:42;;3468:72;;;;;;;;;;3136:1751;;;;;;;;;;;;3619:3;3589:5;:17;;:26;-1:-1:-1;;;3589:26:31;;;;;;;;;;;;:33;;3581:42;;3554:71;;;;;;;;;;3136:1751;;;;;;;;;;;;3703:3;3673:5;:17;;:26;-1:-1:-1;;;3673:26:31;;;;;;;;;;;;:33;;3665:42;;3639:70;;;;;;;;;;3136:1751;;;;;;;;;;;;3776:3;3746:5;:17;;:26;-1:-1:-1;;;3746:26:31;;;;;;;;;;;;:33;;3738:42;;3723:59;;;;;;;;;;3136:1751;;;;;;;;;;-1:-1:-1;;;3805:31:31;;;;:17;;;3136:1751;3805:31;;;;;;;;3136:1751;;;;-1:-1:-1;;;3859:33:31;;;;;;;;;3136:1751;;;;-1:-1:-1;;;3915:38:31;;;;;;;;;3136:1751;;;;-1:-1:-1;;;3975:28:31;;;;;;;;;3136:1751;;;;;;;;4025:48;;;;;;;;;;3136:1751;;;;4089:387;;;;;;;-1:-1:-1;;;4124:47:31;;;;;;;;;4089:387;;4189:48;;;;;;;;;;4089:387;;;;-1:-1:-1;;;;;;;;;;;4291:50:31;;;;;;;;;;;3136:1751;;;;;4089:387;;;;;4345:2;4291:56;4255:95;;;;;;;;;;4089:387;;;;;;;;;;;;4458:1;4404:5;:17;;:50;-1:-1:-1;;;;;;;;;;;4404:50:31;;;;;;;;;;;;:55;;4396:64;;4368:94;;;;;;;;;;4089:387;;;;;;;;;;3136:1751;;4490:387;;;;;;;;-1:-1:-1;;;;4525:47:31;;;:17;;;3136:1751;4525:47;;;;;;;4490:387;;4590:48;;;;;;;;;;4490:387;;;;-1:-1:-1;;;;;;;;;;;4692:50:31;;;;;;;;;;3136:1751;;;4490:387;;;;;4746:2;4692:56;4656:95;;;;;;;;;;4490:387;;;;;;;;;;;;4859:1;4805:5;:17;;:50;-1:-1:-1;;;;;;;;;;;4805:50:31;;;;;;;;;;;;:55;;4797:64;;4769:94;;;;;;;;;;4490:387;;;;;;;;;;3136:1751;;3129:1758;3028:1866;-1:-1:-1;;3028:1866:31:o;219:252::-;367:31;;;;:17;;;:31;;;;;;:40;;363:53;;;409:7;;363:53;425:31;;;;:17;;;:31;;;;;:39;;;219:252;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;142:184::-;236:20;;25873:1;25863:12;;25853:2;;25889:1;;25879:12;333:158;414:20;;25988:1;25978:12;;25968:2;;26004:1;;25994:12;498:180;590:20;;26114:1;26104:12;;26094:2;;26130:1;;26120:12;1067:166;1152:20;;26489:2;26479:13;;26469:2;;26506:1;;26496:12;1240:166;1325:20;;26609:2;26599:13;;26589:2;;26626:1;;26616:12;5109:826;;5234:4;5222:9;5217:3;5213:19;5209:30;5206:2;;;-1:-1;;5242:12;5206:2;5270:20;5234:4;5270:20;:::i;:::-;5261:29;;85:6;72:20;5356:16;5349:75;5488:2;5546:9;5542:22;72:20;5488:2;5507:5;5503:16;5496:75;5633:2;5718:9;5714:22;779:20;804:60;858:5;804:60;:::i;:::-;5633:2;5648:16;;5641:102;5804:2;5885:22;;779:20;804:60;779:20;804:60;:::i;:::-;5804:2;5819:16;;5812:102;5823:5;5200:735;-1:-1;;5200:735::o;6079:289::-;;6207:2;6195:9;6186:7;6182:23;6178:32;6175:2;;;-1:-1;;6213:12;6175:2;-1:-1;2178:20;;6169:199;-1:-1;6169:199::o;6375:414::-;;;6520:2;6508:9;6499:7;6495:23;6491:32;6488:2;;;-1:-1;;6526:12;6488:2;-1:-1;;2178:20;;;6702:2;6741:22;;;72:20;;-1:-1;6482:307::o;6796:469::-;;;6956:9;6947:7;6943:23;6968:3;6943:23;6939:33;6936:2;;;-1:-1;;6975:12;6936:2;2178:20;;;-1:-1;2410:6;-1:-1;;2389:19;;2385:32;2382:2;;;-1:-1;;2420:12;2382:2;;2448:22;2463:6;2448:22;:::i;:::-;2560:67;2623:3;7151:2;7221:9;7217:22;2560:67;:::i;:::-;2542:16;2535:93;2726:63;2785:3;2761:22;7221:9;2761:22;2726:63;:::i;:::-;7151:2;2712:5;2708:16;2701:89;2892:67;2955:3;2931:22;7221:9;2931:22;2892:67;:::i;:::-;2761:22;2878:5;2874:16;2867:93;3068:73;3137:3;3113:22;7221:9;3113:22;3068:73;:::i;:::-;2931:22;3054:5;3050:16;3043:99;3254:76;3326:3;3302:22;7221:9;3302:22;3254:76;:::i;:::-;3113:22;3240:5;3236:16;3229:102;3442:75;3513:3;3489:22;7221:9;3489:22;3442:75;:::i;:::-;3302:22;3428:5;3424:16;3417:101;3631:74;3701:3;3677:22;7221:9;3677:22;3631:74;:::i;:::-;3489:22;3617:5;3613:16;3606:100;3840:22;3805:63;3864:3;3840:22;7221:9;3840:22;3805:63;:::i;:::-;3677:22;3791:5;3787:16;3780:89;3993:22;;7221:9;3993:22;6009:20;3840:22;3956:5;3952:18;3945:77;4148:22;;;;7221:9;4148:22;6009:20;3993:22;4111:5;4107:18;4100:77;;4307:22;;7221:9;4307:22;2018:20;4148:22;4271:5;4267:18;4260:76;4456:22;;;;7221:9;4456:22;2018:20;4307:22;4420:5;4416:18;4409:76;;4625:22;;7221:9;4625:22;2018:20;4456:22;4589:5;4585:18;4578:76;4823:22;;;4766:85;4847:3;4823:22;7221:9;4823:22;4766:85;:::i;:::-;4746:18;;;4739:113;4964:85;5045:3;5021:22;;;4964:85;:::i;:::-;4944:18;;;4937:113;6930:335;;4948:5;;-1:-1;6930:335;;-1:-1;;6930:335::o;7755:174::-;24337:1;24330:5;24327:12;24317:2;;24343:9;24317:2;7849:75;;7843:86::o;7936:148::-;20366:47;20407:5;20366:47;:::i;8091:170::-;20518:58;20570:5;20518:58;:::i;8630:156::-;24938:2;24931:5;24928:13;24918:2;;24945:9;8793:156;25055:2;25048:5;25045:13;25035:2;;25062:9;13194:902;13441:16;13435:23;7595:3;7588:37;13617:4;13610:5;13606:16;13600:23;13617:4;13689:3;13685:14;7588:37;13780:4;13773:5;13769:16;13763:23;20683:60;20737:5;20683:60;:::i;:::-;13780:4;13873:14;;8543:75;13967:4;13956:16;;13950:23;20683:60;13950:23;20683:60;:::i;:::-;22992:51;13967:4;14064:3;14060:14;8362:75;;13340:756;;:::o;16965:238::-;-1:-1;;;;;22184:54;;;;7351:37;;17100:2;17085:18;;17071:132::o;17210:238::-;7588:37;;;17345:2;17330:18;;17316:132::o;17696:347::-;;17885:3;17874:9;17870:19;17862:27;;10288:87;10360:14;10265:16;10259:23;10288:87;:::i;:::-;10458:4;10451:5;10447:16;10441:23;10470:83;10458:4;10542:3;10538:14;10524:12;10470:83;:::i;:::-;;10640:4;10633:5;10629:16;10623:23;10652:87;10640:4;10728:3;10724:14;10710:12;10652:87;:::i;:::-;;10832:4;10825:5;10821:16;10815:23;10844:93;10832:4;10926:3;10922:14;10908:12;10844:93;:::i;:::-;;11033:4;11026:5;11022:16;11016:23;11045:96;11033:4;11130:3;11126:14;11112:12;11045:96;:::i;:::-;;11236:4;11229:5;11225:16;11219:23;11248:95;11236:4;11332:3;11328:14;11314:12;11248:95;:::i;:::-;;11440:4;11433:5;11429:16;11423:23;11452:94;11440:4;11535:3;11531:14;11517:12;11452:94;:::i;:::-;;11629:4;11622:5;11618:16;11612:23;11641:83;11629:4;11713:3;11709:14;11695:12;11641:83;:::i;:::-;-1:-1;11809:6;11798:18;;;11792:25;11879:16;;;7588:37;11983:6;11972:18;;;11966:25;12053:16;;;7588:37;12162:6;12151:18;;;12145:25;12230:16;;;7588:37;12329:6;12318:18;;;12312:25;12397:16;;;7588:37;12516:6;12505:18;;;12499:25;12584:16;;;7588:37;12695:6;12684:18;;;12678:25;12709:145;12837:16;;;12678:25;12709:145;:::i;:::-;;;12948:6;12941:5;12937:18;12931:25;12962:145;13099:6;13094:3;13090:16;13076:12;12962:145;:::i;:::-;;17856:187;;;;:::o;18050:383::-;18257:3;18242:19;;18272:151;18246:9;18396:6;18272:151;:::i;18440:327::-;15300:23;;7588:37;;15476:4;15465:16;;15459:23;18619:3;18604:19;;;20518:58;15459:23;20518:58;:::i;:::-;15476:4;15549:14;;8183:73;15640:4;15629:16;;15623:23;20366:47;15623:23;20366:47;:::i;:::-;22675:38;15640:4;15717:3;15713:14;8017:62;;15808:4;15801:5;15797:16;15791:23;20012:13;20005:21;15808:4;15874:3;15870:14;7463:34;18590:177;;;;:::o;18774:322::-;16148:23;;7588:37;;16324:4;16313:16;;16307:23;18951:2;18936:18;;;20518:58;16307:23;20518:58;:::i;:::-;22827:49;16324:4;16401:3;16397:14;8183:73;;16492:4;16485:5;16481:16;16475:23;20012:13;20005:21;16492:4;16558:3;16554:14;7463:34;18922:174;;;;:::o;19348:230::-;22400:4;22389:16;;;;16918:35;;19479:2;19464:18;;19450:128::o;19585:256::-;19647:2;19641:9;19673:17;;;19748:18;19733:34;;19769:22;;;19730:62;19727:2;;;19805:1;;19795:12;19727:2;19647;19814:22;19625:216;;-1:-1;19625:216::o;24366:105::-;24449:1;24442:5;24439:12;24429:2;;24455:9;24429:2;24423:48;:::o;24478:116::-;24572:1;24565:5;24562:12;24552:2;;24578:9;24601:118;24697:1;24690:5;24687:12;24677:2;;24703:9;26146:121;26242:1;26235:5;26232:12;26222:2;;26258:1;;26248:12",
  "source": "// \"SPDX-License-Identifier: Apache-2.0\"\npragma solidity ^0.6.11;\npragma experimental ABIEncoderV2;\n\nimport \"../Base/SharedTypes.sol\";\nimport \"../Base/AssetRegistry/BaseRegistryStorage.sol\";\n\n\nlibrary CECEncoder {\n\n    function storeInPackedTerms(Asset storage asset, bytes32 attributeKey, bytes32 value) private {\n        // skip if value did not change\n        if (asset.packedTerms[attributeKey] == value) return;\n        asset.packedTerms[attributeKey] = value;\n    }\n    \n    /**\n     * @dev Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\n     * @notice All non zero values of the overwrittenTerms object are stored.\n     * It does not check if overwrittenAttributesMap actually marks attribute as overwritten.\n     */\n    function encodeAndSetCECTerms(Asset storage asset, CECTerms memory terms) external {\n        storeInPackedTerms(\n            asset,\n            \"enums\",\n            bytes32(uint256(uint8(terms.contractType))) << 248 |\n            bytes32(uint256(uint8(terms.calendar))) << 240 |\n            bytes32(uint256(uint8(terms.contractRole))) << 232 |\n            bytes32(uint256(uint8(terms.dayCountConvention))) << 224 |\n            bytes32(uint256(uint8(terms.businessDayConvention))) << 216 |\n            bytes32(uint256(uint8(terms.endOfMonthConvention))) << 208 |\n            bytes32(uint256(uint8(terms.creditEventTypeCovered))) << 200 |\n            bytes32(uint256(uint8(terms.feeBasis))) << 192\n        );\n\n        storeInPackedTerms(asset, \"statusDate\", bytes32(terms.statusDate));\n        storeInPackedTerms(asset, \"maturityDate\", bytes32(terms.maturityDate));\n\n        storeInPackedTerms(asset, \"notionalPrincipal\", bytes32(terms.notionalPrincipal));\n        \n        storeInPackedTerms(asset, \"feeRate\", bytes32(terms.feeRate));\n        storeInPackedTerms(asset, \"coverageOfCreditEnhancement\", bytes32(terms.coverageOfCreditEnhancement));\n\n        storeInPackedTerms(\n            asset,\n            \"contractReference_1_type_role\",\n            bytes32(uint256(terms.contractReference_1._type)) << 16 |\n            bytes32(uint256(terms.contractReference_1.role)) << 8\n        );\n\n        storeInPackedTerms(\n            asset,\n            \"contractReference_1_object\",\n            terms.contractReference_1.object\n        );\n        storeInPackedTerms(\n            asset,\n            \"contractReference_1_object2\",\n            terms.contractReference_1.object2\n        );\n\n        storeInPackedTerms(\n            asset,\n            \"contractReference_2_type_role\",\n            bytes32(uint256(terms.contractReference_2._type)) << 16 |\n            bytes32(uint256(terms.contractReference_2.role)) << 8\n        );\n\n        storeInPackedTerms(\n            asset,\n            \"contractReference_2_object\",\n            terms.contractReference_2.object\n        );\n        storeInPackedTerms(\n            asset,\n            \"contractReference_2_object2\",\n            terms.contractReference_2.object2\n        );\n    }\n\n    /**\n     * @dev Decode and loads CECTerms\n     */\n    function decodeAndGetCECTerms(Asset storage asset) external view returns (CECTerms memory) {\n        return CECTerms(\n            ContractType(uint8(uint256(asset.packedTerms[\"enums\"] >> 248))),\n            Calendar(uint8(uint256(asset.packedTerms[\"enums\"] >> 240))),\n            ContractRole(uint8(uint256(asset.packedTerms[\"enums\"] >> 232))),\n            DayCountConvention(uint8(uint256(asset.packedTerms[\"enums\"] >> 224))),\n            BusinessDayConvention(uint8(uint256(asset.packedTerms[\"enums\"] >> 216))),\n            EndOfMonthConvention(uint8(uint256(asset.packedTerms[\"enums\"] >> 208))),\n            ContractPerformance(uint8(uint256(asset.packedTerms[\"enums\"] >> 200))),\n            FeeBasis(uint8(uint256(asset.packedTerms[\"enums\"] >> 192))),\n\n            uint256(asset.packedTerms[\"statusDate\"]),\n            uint256(asset.packedTerms[\"maturityDate\"]),\n\n            int256(asset.packedTerms[\"notionalPrincipal\"]),\n            int256(asset.packedTerms[\"feeRate\"]),\n            int256(asset.packedTerms[\"coverageOfCreditEnhancement\"]),\n\n            ContractReference(\n                asset.packedTerms[\"contractReference_1_object\"],\n                asset.packedTerms[\"contractReference_1_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 8)))\n            ),\n            ContractReference(\n                asset.packedTerms[\"contractReference_2_object\"],\n                asset.packedTerms[\"contractReference_2_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 8)))\n            )\n        );\n    }\n\n    function decodeAndGetEnumValueForCECAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (uint8)\n    {\n        if (attributeKey == \"contractType\") {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 248));\n        } else if (attributeKey == bytes32(\"calendar\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 240));\n        } else if (attributeKey == bytes32(\"contractRole\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 232));\n        } else if (attributeKey == bytes32(\"dayCountConvention\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 224));\n        } else if (attributeKey == bytes32(\"businessDayConvention\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 216));\n        } else if (attributeKey == bytes32(\"endOfMonthConvention\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 208));\n        } else if (attributeKey == bytes32(\"creditEventTypeCovered\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 200));\n        } else if (attributeKey == bytes32(\"feeBasis\")) {\n            return uint8(uint256(asset.packedTerms[\"enums\"] >> 192));\n        } else {\n            return uint8(0);\n        }\n    }\n\n    function decodeAndGetAddressValueForForCECAttribute(Asset storage /* asset */, bytes32 /* attributeKey */)\n        external\n        pure\n        returns (address)\n    {\n        return address(0);\n    }\n\n    function decodeAndGetBytes32ValueForForCECAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (bytes32)\n    {\n        return asset.packedTerms[attributeKey];\n    }\n\n    function decodeAndGetUIntValueForForCECAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (uint256)\n    {\n        return uint256(asset.packedTerms[attributeKey]);\n    }\n\n    function decodeAndGetIntValueForForCECAttribute(Asset storage asset, bytes32 attributeKey)\n        external\n        view\n        returns (int256)\n    {\n        return int256(asset.packedTerms[attributeKey]);\n    }\n\n    function decodeAndGetPeriodValueForForCECAttribute(Asset storage /* asset */, bytes32 /* attributeKey */)\n        external\n        pure\n        returns (IP memory)\n    {\n        return IP(0, P(0), false);\n    }\n\n    function decodeAndGetCycleValueForForCECAttribute(Asset storage /* asset */, bytes32 /* attributeKey */)\n        external\n        pure\n        returns (IPS memory)\n    {\n        return IPS(0, P(0), S(0), false);\n    }\n\n    function decodeAndGetContractReferenceValueForCECAttribute(Asset storage asset , bytes32 attributeKey )\n        external\n        view\n        returns (ContractReference memory)\n    {\n        if (attributeKey == bytes32(\"contractReference_1\")) {\n            return ContractReference(\n                asset.packedTerms[\"contractReference_1_object\"],\n                asset.packedTerms[\"contractReference_1_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_1_type_role\"] >> 8)))\n            );\n        } else if (attributeKey == bytes32(\"contractReference_2\")) {\n            return ContractReference(\n                asset.packedTerms[\"contractReference_2_object\"],\n                asset.packedTerms[\"contractReference_2_object2\"],\n                ContractReferenceType(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 16))),\n                ContractReferenceRole(uint8(uint256(asset.packedTerms[\"contractReference_2_type_role\"] >> 8)))\n            );\n        } else {\n            return ContractReference(\n                bytes32(0),\n                bytes32(0),\n                ContractReferenceType(0),\n                ContractReferenceRole(0)\n            );\n        }\n    }\n}",
  "sourcePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CEC/CECEncoder.sol",
  "ast": {
    "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CEC/CECEncoder.sol",
    "exportedSymbols": {
      "CECEncoder": [
        9157
      ]
    },
    "id": 9158,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 8221,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:31"
      },
      {
        "id": 8222,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "66:33:31"
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/SharedTypes.sol",
        "file": "../Base/SharedTypes.sol",
        "id": 8223,
        "nodeType": "ImportDirective",
        "scope": 9158,
        "sourceUnit": 7865,
        "src": "101:33:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/BaseRegistryStorage.sol",
        "file": "../Base/AssetRegistry/BaseRegistryStorage.sol",
        "id": 8224,
        "nodeType": "ImportDirective",
        "scope": 9158,
        "sourceUnit": 4479,
        "src": "135:55:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 9157,
        "linearizedBaseContracts": [
          9157
        ],
        "name": "CECEncoder",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 8249,
              "nodeType": "Block",
              "src": "313:158:31",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 8238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8233,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8226,
                          "src": "367:5:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 8234,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "367:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 8236,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8235,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8228,
                        "src": "385:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "367:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8237,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8230,
                      "src": "402:5:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "367:40:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8240,
                  "nodeType": "IfStatement",
                  "src": "363:53:31",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 8232,
                    "id": 8239,
                    "nodeType": "Return",
                    "src": "409:7:31"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8241,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8226,
                          "src": "425:5:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 8244,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "425:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 8245,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8243,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8228,
                        "src": "443:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "425:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8246,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8230,
                      "src": "459:5:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "425:39:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8248,
                  "nodeType": "ExpressionStatement",
                  "src": "425:39:31"
                }
              ]
            },
            "documentation": null,
            "id": 8250,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "storeInPackedTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8231,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8226,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8250,
                  "src": "247:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8225,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "247:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8228,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8250,
                  "src": "268:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "268:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8230,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8250,
                  "src": "290:13:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8229,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "290:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "246:58:31"
            },
            "returnParameters": {
              "id": 8232,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "313:0:31"
            },
            "scope": 9157,
            "src": "219:252:31",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 8512,
              "nodeType": "Block",
              "src": "836:2132:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8259,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "878:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "656e756d73",
                        "id": 8260,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "897:7:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        "value": "enums"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 8343,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 8329,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 8315,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8301,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8287,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 8273,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "arguments": [
                                                  {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                      "argumentTypes": null,
                                                      "id": 8267,
                                                      "name": "terms",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 8255,
                                                      "src": "940:5:31",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                        "typeString": "struct CECTerms memory"
                                                      }
                                                    },
                                                    "id": 8268,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "contractType",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 22770,
                                                    "src": "940:18:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_enum$_ContractType_$22559",
                                                      "typeString": "enum ContractType"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_enum$_ContractType_$22559",
                                                      "typeString": "enum ContractType"
                                                    }
                                                  ],
                                                  "id": 8266,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "nodeType": "ElementaryTypeNameExpression",
                                                  "src": "934:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                  },
                                                  "typeName": {
                                                    "id": 8265,
                                                    "name": "uint8",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "934:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": null,
                                                      "typeString": null
                                                    }
                                                  }
                                                },
                                                "id": 8269,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "934:25:31",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              ],
                                              "id": 8264,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "926:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 8263,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "926:7:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8270,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "926:34:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 8262,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "918:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 8261,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "918:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8271,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "918:43:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<<",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323438",
                                        "id": 8272,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "965:3:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_248_by_1",
                                          "typeString": "int_const 248"
                                        },
                                        "value": "248"
                                      },
                                      "src": "918:50:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "|",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 8286,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "arguments": [
                                                  {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                      "argumentTypes": null,
                                                      "id": 8280,
                                                      "name": "terms",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 8255,
                                                      "src": "1005:5:31",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                        "typeString": "struct CECTerms memory"
                                                      }
                                                    },
                                                    "id": 8281,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "calendar",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 22772,
                                                    "src": "1005:14:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_enum$_Calendar_$22506",
                                                      "typeString": "enum Calendar"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_enum$_Calendar_$22506",
                                                      "typeString": "enum Calendar"
                                                    }
                                                  ],
                                                  "id": 8279,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "nodeType": "ElementaryTypeNameExpression",
                                                  "src": "999:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                  },
                                                  "typeName": {
                                                    "id": 8278,
                                                    "name": "uint8",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "999:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": null,
                                                      "typeString": null
                                                    }
                                                  }
                                                },
                                                "id": 8282,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "999:21:31",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              ],
                                              "id": 8277,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "991:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 8276,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "991:7:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8283,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "991:30:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 8275,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "983:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 8274,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "983:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8284,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "983:39:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<<",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323430",
                                        "id": 8285,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1026:3:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_240_by_1",
                                          "typeString": "int_const 240"
                                        },
                                        "value": "240"
                                      },
                                      "src": "983:46:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "918:111:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "|",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8300,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8294,
                                                    "name": "terms",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8255,
                                                    "src": "1066:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                      "typeString": "struct CECTerms memory"
                                                    }
                                                  },
                                                  "id": 8295,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "contractRole",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 22774,
                                                  "src": "1066:18:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                    "typeString": "enum ContractRole"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                    "typeString": "enum ContractRole"
                                                  }
                                                ],
                                                "id": 8293,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "1060:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint8_$",
                                                  "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                  "id": 8292,
                                                  "name": "uint8",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "1060:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 8296,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "1060:25:31",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            ],
                                            "id": 8291,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "1052:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 8290,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "1052:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 8297,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "1052:34:31",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 8289,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1044:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 8288,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1044:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8298,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1044:43:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<<",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323332",
                                      "id": 8299,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1091:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_232_by_1",
                                        "typeString": "int_const 232"
                                      },
                                      "value": "232"
                                    },
                                    "src": "1044:50:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "918:176:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "|",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8314,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 8308,
                                                  "name": "terms",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 8255,
                                                  "src": "1131:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                    "typeString": "struct CECTerms memory"
                                                  }
                                                },
                                                "id": 8309,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "dayCountConvention",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 22776,
                                                "src": "1131:24:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                  "typeString": "enum DayCountConvention"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                  "typeString": "enum DayCountConvention"
                                                }
                                              ],
                                              "id": 8307,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "1125:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint8_$",
                                                "typeString": "type(uint8)"
                                              },
                                              "typeName": {
                                                "id": 8306,
                                                "name": "uint8",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1125:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8310,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1125:31:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          ],
                                          "id": 8305,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1117:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 8304,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1117:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8311,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1117:40:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 8303,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1109:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 8302,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1109:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8312,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1109:49:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323234",
                                    "id": 8313,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1162:3:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_224_by_1",
                                      "typeString": "int_const 224"
                                    },
                                    "value": "224"
                                  },
                                  "src": "1109:56:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "918:247:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "|",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 8328,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 8322,
                                                "name": "terms",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8255,
                                                "src": "1202:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                  "typeString": "struct CECTerms memory"
                                                }
                                              },
                                              "id": 8323,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "businessDayConvention",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 22778,
                                              "src": "1202:27:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                                "typeString": "enum BusinessDayConvention"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                                "typeString": "enum BusinessDayConvention"
                                              }
                                            ],
                                            "id": 8321,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "1196:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint8_$",
                                              "typeString": "type(uint8)"
                                            },
                                            "typeName": {
                                              "id": 8320,
                                              "name": "uint8",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "1196:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 8324,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "1196:34:31",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 8319,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1188:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 8318,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1188:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8325,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1188:43:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 8317,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1180:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 8316,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1180:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8326,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1180:52:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "323136",
                                  "id": 8327,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1236:3:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_216_by_1",
                                    "typeString": "int_const 216"
                                  },
                                  "value": "216"
                                },
                                "src": "1180:59:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "918:321:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 8342,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8336,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8255,
                                              "src": "1276:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                "typeString": "struct CECTerms memory"
                                              }
                                            },
                                            "id": 8337,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "endOfMonthConvention",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22780,
                                            "src": "1276:26:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                              "typeString": "enum EndOfMonthConvention"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                              "typeString": "enum EndOfMonthConvention"
                                            }
                                          ],
                                          "id": 8335,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1270:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 8334,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1270:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8338,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1270:33:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 8333,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1262:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8332,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1262:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8339,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1262:42:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8331,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1254:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 8330,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1254:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8340,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1254:51:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "323038",
                                "id": 8341,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1309:3:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_208_by_1",
                                  "typeString": "int_const 208"
                                },
                                "value": "208"
                              },
                              "src": "1254:58:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "918:394:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 8356,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 8350,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8255,
                                            "src": "1349:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                              "typeString": "struct CECTerms memory"
                                            }
                                          },
                                          "id": 8351,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "creditEventTypeCovered",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22782,
                                          "src": "1349:28:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                                            "typeString": "enum ContractPerformance"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                                            "typeString": "enum ContractPerformance"
                                          }
                                        ],
                                        "id": 8349,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1343:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 8348,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1343:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8352,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1343:35:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 8347,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1335:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 8346,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1335:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8353,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1335:44:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 8345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1327:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 8344,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1327:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8354,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1327:53:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "323030",
                              "id": 8355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1384:3:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_200_by_1",
                                "typeString": "int_const 200"
                              },
                              "value": "200"
                            },
                            "src": "1327:60:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "918:469:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8364,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8255,
                                          "src": "1424:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                            "typeString": "struct CECTerms memory"
                                          }
                                        },
                                        "id": 8365,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "feeBasis",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22784,
                                        "src": "1424:14:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                                          "typeString": "enum FeeBasis"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                                          "typeString": "enum FeeBasis"
                                        }
                                      ],
                                      "id": 8363,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1418:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 8362,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1418:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8366,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1418:21:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 8361,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1410:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8360,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1410:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1410:30:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8359,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1402:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8358,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1402:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8368,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1402:39:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313932",
                            "id": 8369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1445:3:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_192_by_1",
                              "typeString": "int_const 192"
                            },
                            "value": "192"
                          },
                          "src": "1402:46:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "918:530:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8258,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "846:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "846:612:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8373,
                  "nodeType": "ExpressionStatement",
                  "src": "846:612:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8375,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1488:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73746174757344617465",
                        "id": 8376,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1495:12:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        "value": "statusDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8379,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1517:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8380,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "statusDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22786,
                            "src": "1517:16:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 8378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1509:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8377,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1509:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8381,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1509:25:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8374,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1469:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1469:66:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8383,
                  "nodeType": "ExpressionStatement",
                  "src": "1469:66:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8385,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1564:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d6174757269747944617465",
                        "id": 8386,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1571:14:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        "value": "maturityDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8389,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1595:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8390,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "maturityDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22788,
                            "src": "1595:18:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 8388,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1587:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8387,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1587:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1587:27:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8384,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1545:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1545:70:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8393,
                  "nodeType": "ExpressionStatement",
                  "src": "1545:70:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8395,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1645:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f74696f6e616c5072696e636970616c",
                        "id": 8396,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1652:19:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e2fff6dcb62db100a261b355ab60197116fe802903e74d960566f166da38c4d7",
                          "typeString": "literal_string \"notionalPrincipal\""
                        },
                        "value": "notionalPrincipal"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8399,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1681:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8400,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "notionalPrincipal",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22790,
                            "src": "1681:23:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1673:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8397,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1673:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1673:32:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e2fff6dcb62db100a261b355ab60197116fe802903e74d960566f166da38c4d7",
                          "typeString": "literal_string \"notionalPrincipal\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8394,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1626:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1626:80:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8403,
                  "nodeType": "ExpressionStatement",
                  "src": "1626:80:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8405,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1744:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66656552617465",
                        "id": 8406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1751:9:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e28ff25eecd957b59620dec953bb5a027809a429a6ead72fcb63f660885d43d8",
                          "typeString": "literal_string \"feeRate\""
                        },
                        "value": "feeRate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8409,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1770:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8410,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeRate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22792,
                            "src": "1770:13:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1762:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8407,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1762:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8411,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1762:22:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e28ff25eecd957b59620dec953bb5a027809a429a6ead72fcb63f660885d43d8",
                          "typeString": "literal_string \"feeRate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8404,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1725:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1725:60:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8413,
                  "nodeType": "ExpressionStatement",
                  "src": "1725:60:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8415,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1814:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f7665726167654f66437265646974456e68616e63656d656e74",
                        "id": 8416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1821:29:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1b214bd93ac9c3e8210b162cd3e338e0bb02590d48c24e65020091fe827b9b63",
                          "typeString": "literal_string \"coverageOfCreditEnhancement\""
                        },
                        "value": "coverageOfCreditEnhancement"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8419,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1860:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8420,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "coverageOfCreditEnhancement",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22794,
                            "src": "1860:33:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8418,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1852:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8417,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1852:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1852:42:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1b214bd93ac9c3e8210b162cd3e338e0bb02590d48c24e65020091fe827b9b63",
                          "typeString": "literal_string \"coverageOfCreditEnhancement\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8414,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1795:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1795:100:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8423,
                  "nodeType": "ExpressionStatement",
                  "src": "1795:100:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8425,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1938:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                        "id": 8426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1957:31:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        "value": "contractReference_1_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8449,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8437,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8431,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2018:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8432,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22796,
                                      "src": "2018:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8433,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "2018:31:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 8430,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2010:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8429,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2010:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8434,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2010:40:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8428,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2002:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8427,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2002:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8435,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2002:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 8436,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2055:2:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "2002:55:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8442,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2088:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8443,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22796,
                                      "src": "2088:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8444,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "2088:30:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 8441,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2080:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8440,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2080:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8445,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2080:39:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8439,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2072:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8438,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2072:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8446,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2072:48:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 8447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2124:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "2072:53:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2002:123:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8424,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1906:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1906:229:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8451,
                  "nodeType": "ExpressionStatement",
                  "src": "1906:229:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8453,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2178:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                        "id": 8454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2197:28:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        "value": "contractReference_1_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8455,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2239:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8456,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22796,
                          "src": "2239:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8457,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "2239:32:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8452,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2146:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2146:135:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8459,
                  "nodeType": "ExpressionStatement",
                  "src": "2146:135:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8461,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2323:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                        "id": 8462,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2342:29:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        "value": "contractReference_1_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8463,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2385:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8464,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22796,
                          "src": "2385:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8465,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "2385:33:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8460,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2291:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2291:137:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8467,
                  "nodeType": "ExpressionStatement",
                  "src": "2291:137:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8469,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2471:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                        "id": 8470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2490:31:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        "value": "contractReference_2_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8475,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2551:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8476,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22798,
                                      "src": "2551:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8477,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "2551:31:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 8474,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2543:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8473,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2543:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2543:40:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8472,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2535:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8471,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2535:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8479,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2535:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 8480,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2588:2:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "2535:55:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8486,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2621:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8487,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22798,
                                      "src": "2621:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8488,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "2621:30:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 8485,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2613:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8484,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2613:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8489,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2613:39:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8483,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2605:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8482,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2605:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8490,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2605:48:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 8491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2657:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "2605:53:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2535:123:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8468,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2439:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2439:229:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8495,
                  "nodeType": "ExpressionStatement",
                  "src": "2439:229:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8497,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2711:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                        "id": 8498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2730:28:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        "value": "contractReference_2_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8499,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2772:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8500,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22798,
                          "src": "2772:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8501,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "2772:32:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8496,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2679:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2679:135:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8503,
                  "nodeType": "ExpressionStatement",
                  "src": "2679:135:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8505,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2856:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                        "id": 8506,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2875:29:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        "value": "contractReference_2_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8507,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2918:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8508,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22798,
                          "src": "2918:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8509,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "2918:33:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8504,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2824:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2824:137:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8511,
                  "nodeType": "ExpressionStatement",
                  "src": "2824:137:31"
                }
              ]
            },
            "documentation": {
              "id": 8251,
              "nodeType": "StructuredDocumentation",
              "src": "481:267:31",
              "text": " @dev Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\n @notice All non zero values of the overwrittenTerms object are stored.\n It does not check if overwrittenAttributesMap actually marks attribute as overwritten."
            },
            "functionSelector": "856b0d64",
            "id": 8513,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeAndSetCECTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8256,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8253,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8513,
                  "src": "783:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8252,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "783:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8255,
                  "mutability": "mutable",
                  "name": "terms",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8513,
                  "src": "804:21:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                    "typeString": "struct CECTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8254,
                    "name": "CECTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22799,
                    "src": "804:8:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CECTerms_$22799_storage_ptr",
                      "typeString": "struct CECTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "782:44:31"
            },
            "returnParameters": {
              "id": 8257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "836:0:31"
            },
            "scope": 9157,
            "src": "753:2215:31",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8747,
              "nodeType": "Block",
              "src": "3119:1775:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8532,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8527,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3185:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8528,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3185:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8530,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8529,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3203:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3185:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323438",
                                      "id": 8531,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3215:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_248_by_1",
                                        "typeString": "int_const 248"
                                      },
                                      "value": "248"
                                    },
                                    "src": "3185:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3177:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8525,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3177:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8533,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3177:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3171:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8523,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3171:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8534,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3171:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8522,
                          "name": "ContractType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22559,
                          "src": "3158:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractType_$22559_$",
                            "typeString": "type(enum ContractType)"
                          }
                        },
                        "id": 8535,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3158:63:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8546,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8541,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3258:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8542,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3258:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8544,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8543,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3276:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3258:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 8545,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3288:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "3258:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8540,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3250:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8539,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3250:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8547,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3250:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8538,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3244:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8537,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3244:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8548,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3244:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8536,
                          "name": "Calendar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22506,
                          "src": "3235:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Calendar_$22506_$",
                            "typeString": "type(enum Calendar)"
                          }
                        },
                        "id": 8549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3235:59:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8560,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8555,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3335:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8556,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3335:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8558,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8557,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3353:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3335:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323332",
                                      "id": 8559,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3365:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_232_by_1",
                                        "typeString": "int_const 232"
                                      },
                                      "value": "232"
                                    },
                                    "src": "3335:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8554,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3327:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8553,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3327:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8561,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3327:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8552,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3321:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8551,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3321:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8562,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3321:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8550,
                          "name": "ContractRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22539,
                          "src": "3308:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractRole_$22539_$",
                            "typeString": "type(enum ContractRole)"
                          }
                        },
                        "id": 8563,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3308:63:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8574,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8569,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3418:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8570,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3418:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8572,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8571,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3436:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3418:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323234",
                                      "id": 8573,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3448:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_224_by_1",
                                        "typeString": "int_const 224"
                                      },
                                      "value": "224"
                                    },
                                    "src": "3418:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8568,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3410:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8567,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3410:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8575,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3410:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3404:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8565,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3404:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8576,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3404:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8564,
                          "name": "DayCountConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22577,
                          "src": "3385:18:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                            "typeString": "type(enum DayCountConvention)"
                          }
                        },
                        "id": 8577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3385:69:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8588,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8583,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3504:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8584,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3504:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8586,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8585,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3522:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3504:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323136",
                                      "id": 8587,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3534:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_216_by_1",
                                        "typeString": "int_const 216"
                                      },
                                      "value": "216"
                                    },
                                    "src": "3504:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8582,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3496:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8581,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3496:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8589,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3496:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3490:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8579,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3490:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8590,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3490:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8578,
                          "name": "BusinessDayConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22503,
                          "src": "3468:21:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_BusinessDayConvention_$22503_$",
                            "typeString": "type(enum BusinessDayConvention)"
                          }
                        },
                        "id": 8591,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3468:72:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8602,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8597,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3589:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8598,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3589:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8600,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8599,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3607:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3589:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323038",
                                      "id": 8601,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3619:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_208_by_1",
                                        "typeString": "int_const 208"
                                      },
                                      "value": "208"
                                    },
                                    "src": "3589:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3581:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8595,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3581:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8603,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3581:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8594,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3575:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8593,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3575:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8604,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3575:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8592,
                          "name": "EndOfMonthConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22580,
                          "src": "3554:20:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_EndOfMonthConvention_$22580_$",
                            "typeString": "type(enum EndOfMonthConvention)"
                          }
                        },
                        "id": 8605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3554:71:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8616,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8611,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3673:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8612,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3673:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8614,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8613,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3691:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3673:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323030",
                                      "id": 8615,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3703:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_200_by_1",
                                        "typeString": "int_const 200"
                                      },
                                      "value": "200"
                                    },
                                    "src": "3673:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8610,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3665:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8609,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3665:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8617,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3665:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8608,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3659:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8607,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3659:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8618,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3659:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8606,
                          "name": "ContractPerformance",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22513,
                          "src": "3639:19:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractPerformance_$22513_$",
                            "typeString": "type(enum ContractPerformance)"
                          }
                        },
                        "id": 8619,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3639:70:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                          "typeString": "enum ContractPerformance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8630,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8625,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3746:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8626,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3746:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8628,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8627,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3764:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3746:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "313932",
                                      "id": 8629,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3776:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_192_by_1",
                                        "typeString": "int_const 192"
                                      },
                                      "value": "192"
                                    },
                                    "src": "3746:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8624,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3738:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8623,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3738:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8631,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3738:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8622,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3732:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8621,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3732:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8632,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3732:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8620,
                          "name": "FeeBasis",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22613,
                          "src": "3723:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_FeeBasis_$22613_$",
                            "typeString": "type(enum FeeBasis)"
                          }
                        },
                        "id": 8633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3723:59:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                          "typeString": "enum FeeBasis"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8636,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3805:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8637,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3805:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8639,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "73746174757344617465",
                              "id": 8638,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3823:12:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                                "typeString": "literal_string \"statusDate\""
                              },
                              "value": "statusDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3805:31:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8635,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3797:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 8634,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3797:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8640,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3797:40:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8643,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3859:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8644,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3859:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8646,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6d6174757269747944617465",
                              "id": 8645,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3877:14:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                                "typeString": "literal_string \"maturityDate\""
                              },
                              "value": "maturityDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3859:33:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3851:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 8641,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3851:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8647,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3851:42:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8650,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3915:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8651,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3915:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8653,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6e6f74696f6e616c5072696e636970616c",
                              "id": 8652,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3933:19:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e2fff6dcb62db100a261b355ab60197116fe802903e74d960566f166da38c4d7",
                                "typeString": "literal_string \"notionalPrincipal\""
                              },
                              "value": "notionalPrincipal"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3915:38:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3908:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8648,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3908:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3908:46:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8657,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3975:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8658,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3975:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8660,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "66656552617465",
                              "id": 8659,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3993:9:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e28ff25eecd957b59620dec953bb5a027809a429a6ead72fcb63f660885d43d8",
                                "typeString": "literal_string \"feeRate\""
                              },
                              "value": "feeRate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3975:28:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8656,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3968:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8655,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3968:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8661,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3968:36:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8664,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4025:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8665,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4025:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8667,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f7665726167654f66437265646974456e68616e63656d656e74",
                              "id": 8666,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4043:29:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_1b214bd93ac9c3e8210b162cd3e338e0bb02590d48c24e65020091fe827b9b63",
                                "typeString": "literal_string \"coverageOfCreditEnhancement\""
                              },
                              "value": "coverageOfCreditEnhancement"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4025:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8663,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4018:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8662,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4018:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8668,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4018:56:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8670,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4124:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8671,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4124:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8673,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                              "id": 8672,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4142:28:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                "typeString": "literal_string \"contractReference_1_object\""
                              },
                              "value": "contractReference_1_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4124:47:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8674,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4189:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8675,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4189:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8677,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                              "id": 8676,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4207:29:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                "typeString": "literal_string \"contractReference_1_object2\""
                              },
                              "value": "contractReference_1_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4189:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8688,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8683,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4291:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8684,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4291:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8686,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 8685,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4309:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4291:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 8687,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4345:2:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "4291:56:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8682,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4283:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8681,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4283:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8689,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4283:65:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8680,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4277:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8679,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4277:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8690,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4277:72:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8678,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "4255:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 8691,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4255:95:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8702,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8697,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4404:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8698,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4404:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8700,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 8699,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4422:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4404:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 8701,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4458:1:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "4404:55:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8696,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4396:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8695,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4396:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8703,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4396:64:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8694,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4390:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8693,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4390:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8704,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4390:71:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8692,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "4368:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 8705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4368:94:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 8669,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "4089:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 8706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4089:387:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8708,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4525:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8709,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4525:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8711,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                              "id": 8710,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4543:28:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                "typeString": "literal_string \"contractReference_2_object\""
                              },
                              "value": "contractReference_2_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4525:47:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8712,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4590:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8713,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4590:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8715,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                              "id": 8714,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4608:29:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                "typeString": "literal_string \"contractReference_2_object2\""
                              },
                              "value": "contractReference_2_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4590:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8726,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8721,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4692:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8722,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4692:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8724,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 8723,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4710:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4692:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 8725,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4746:2:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "4692:56:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8720,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4684:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8719,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4684:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8727,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4684:65:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8718,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4678:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8717,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4678:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8728,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4678:72:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8716,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "4656:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 8729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4656:95:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8740,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8735,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4805:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8736,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4805:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8738,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 8737,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4823:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4805:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 8739,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4859:1:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "4805:55:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8734,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4797:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8733,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4797:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8741,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4797:64:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8732,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4791:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8731,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4791:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8742,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4791:71:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8730,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "4769:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 8743,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4769:94:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 8707,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "4490:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 8744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4490:387:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        },
                        {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        },
                        {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        },
                        {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                          "typeString": "enum ContractPerformance"
                        },
                        {
                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                          "typeString": "enum FeeBasis"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      ],
                      "id": 8521,
                      "name": "CECTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22799,
                      "src": "3136:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CECTerms_$22799_storage_ptr_$",
                        "typeString": "type(struct CECTerms storage pointer)"
                      }
                    },
                    "id": 8745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3136:1751:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                      "typeString": "struct CECTerms memory"
                    }
                  },
                  "functionReturnParameters": 8520,
                  "id": 8746,
                  "nodeType": "Return",
                  "src": "3129:1758:31"
                }
              ]
            },
            "documentation": {
              "id": 8514,
              "nodeType": "StructuredDocumentation",
              "src": "2974:49:31",
              "text": " @dev Decode and loads CECTerms"
            },
            "functionSelector": "f4835d70",
            "id": 8748,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCECTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8516,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8748,
                  "src": "3058:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8515,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "3058:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3057:21:31"
            },
            "returnParameters": {
              "id": 8520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8519,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8748,
                  "src": "3102:15:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                    "typeString": "struct CECTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8518,
                    "name": "CECTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22799,
                    "src": "3102:8:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CECTerms_$22799_storage_ptr",
                      "typeString": "struct CECTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3101:17:31"
            },
            "scope": 9157,
            "src": "3028:1866:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8928,
              "nodeType": "Block",
              "src": "5047:1128:31",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 8759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8757,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8752,
                      "src": "5061:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "636f6e747261637454797065",
                      "id": 8758,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5077:14:31",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_3475328024b9533bb8cb87784de4e84b80d2bc2aa2f3af3c4e764c21f93cbb94",
                        "typeString": "literal_string \"contractType\""
                      },
                      "value": "contractType"
                    },
                    "src": "5061:30:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 8779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 8774,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8752,
                        "src": "5184:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "63616c656e646172",
                            "id": 8777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5208:10:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            },
                            "value": "calendar"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            }
                          ],
                          "id": 8776,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5200:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8775,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "5200:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5200:19:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "5184:35:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8794,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8752,
                          "src": "5312:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "636f6e7472616374526f6c65",
                              "id": 8797,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5336:14:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              },
                              "value": "contractRole"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              }
                            ],
                            "id": 8796,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5328:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 8795,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "5328:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 8798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5328:23:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "5312:39:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8819,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8814,
                            "name": "attributeKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8752,
                            "src": "5444:12:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "646179436f756e74436f6e76656e74696f6e",
                                "id": 8817,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5468:20:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                },
                                "value": "dayCountConvention"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                }
                              ],
                              "id": 8816,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5460:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8815,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5460:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8818,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5460:29:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5444:45:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 8839,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 8834,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8752,
                              "src": "5582:12:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "627573696e657373446179436f6e76656e74696f6e",
                                  "id": 8837,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5606:23:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  },
                                  "value": "businessDayConvention"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  }
                                ],
                                "id": 8836,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5598:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 8835,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5598:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8838,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5598:32:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "5582:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 8859,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 8854,
                                "name": "attributeKey",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8752,
                                "src": "5723:12:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "656e644f664d6f6e7468436f6e76656e74696f6e",
                                    "id": 8857,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5747:22:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    },
                                    "value": "endOfMonthConvention"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    }
                                  ],
                                  "id": 8856,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5739:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 8855,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5739:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8858,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5739:31:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "5723:47:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 8879,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 8874,
                                  "name": "attributeKey",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8752,
                                  "src": "5863:12:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "6372656469744576656e7454797065436f7665726564",
                                      "id": 8877,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5887:24:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_c7b2f9f1b113c1196d37a64fa1165104e45cc1c0437de39637a650ec56598dc5",
                                        "typeString": "literal_string \"creditEventTypeCovered\""
                                      },
                                      "value": "creditEventTypeCovered"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_c7b2f9f1b113c1196d37a64fa1165104e45cc1c0437de39637a650ec56598dc5",
                                        "typeString": "literal_string \"creditEventTypeCovered\""
                                      }
                                    ],
                                    "id": 8876,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5879:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 8875,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5879:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8878,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5879:33:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5863:49:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8899,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 8894,
                                    "name": "attributeKey",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8752,
                                    "src": "6005:12:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "6665654261736973",
                                        "id": 8897,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6029:10:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_eea180da691d6edf78efe2cd615a7555e8eac40a1a495599793625bfb3ba04ba",
                                          "typeString": "literal_string \"feeBasis\""
                                        },
                                        "value": "feeBasis"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_eea180da691d6edf78efe2cd615a7555e8eac40a1a495599793625bfb3ba04ba",
                                          "typeString": "literal_string \"feeBasis\""
                                        }
                                      ],
                                      "id": 8896,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "6021:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 8895,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6021:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8898,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "6021:19:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "6005:35:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 8919,
                                  "nodeType": "Block",
                                  "src": "6129:40:31",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 8916,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6156:1:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 8915,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "6150:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 8914,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6150:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8917,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6150:8:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "functionReturnParameters": 8756,
                                      "id": 8918,
                                      "nodeType": "Return",
                                      "src": "6143:15:31"
                                    }
                                  ]
                                },
                                "id": 8920,
                                "nodeType": "IfStatement",
                                "src": "6001:168:31",
                                "trueBody": {
                                  "id": 8913,
                                  "nodeType": "Block",
                                  "src": "6042:81:31",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "commonType": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                },
                                                "id": 8909,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                  "argumentTypes": null,
                                                  "baseExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                      "argumentTypes": null,
                                                      "id": 8904,
                                                      "name": "asset",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 8750,
                                                      "src": "6077:5:31",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                        "typeString": "struct Asset storage pointer"
                                                      }
                                                    },
                                                    "id": 8905,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "packedTerms",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 4457,
                                                    "src": "6077:17:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                      "typeString": "mapping(bytes32 => bytes32)"
                                                    }
                                                  },
                                                  "id": 8907,
                                                  "indexExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "656e756d73",
                                                    "id": 8906,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "6095:7:31",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                      "typeString": "literal_string \"enums\""
                                                    },
                                                    "value": "enums"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "nodeType": "IndexAccess",
                                                  "src": "6077:26:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                  }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">>",
                                                "rightExpression": {
                                                  "argumentTypes": null,
                                                  "hexValue": "313932",
                                                  "id": 8908,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "number",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "6107:3:31",
                                                  "subdenomination": null,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_192_by_1",
                                                    "typeString": "int_const 192"
                                                  },
                                                  "value": "192"
                                                },
                                                "src": "6077:33:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              ],
                                              "id": 8903,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "6069:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 8902,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "6069:7:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8910,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "6069:42:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 8901,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "6063:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 8900,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6063:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8911,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6063:49:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "functionReturnParameters": 8756,
                                      "id": 8912,
                                      "nodeType": "Return",
                                      "src": "6056:56:31"
                                    }
                                  ]
                                }
                              },
                              "id": 8921,
                              "nodeType": "IfStatement",
                              "src": "5859:310:31",
                              "trueBody": {
                                "id": 8893,
                                "nodeType": "Block",
                                "src": "5914:81:31",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              },
                                              "id": 8889,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8884,
                                                    "name": "asset",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8750,
                                                    "src": "5949:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                      "typeString": "struct Asset storage pointer"
                                                    }
                                                  },
                                                  "id": 8885,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "packedTerms",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 4457,
                                                  "src": "5949:17:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                    "typeString": "mapping(bytes32 => bytes32)"
                                                  }
                                                },
                                                "id": 8887,
                                                "indexExpression": {
                                                  "argumentTypes": null,
                                                  "hexValue": "656e756d73",
                                                  "id": 8886,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "string",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "5967:7:31",
                                                  "subdenomination": null,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                    "typeString": "literal_string \"enums\""
                                                  },
                                                  "value": "enums"
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5949:26:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": ">>",
                                              "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "323030",
                                                "id": 8888,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5979:3:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_200_by_1",
                                                  "typeString": "int_const 200"
                                                },
                                                "value": "200"
                                              },
                                              "src": "5949:33:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            ],
                                            "id": 8883,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "5941:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 8882,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "5941:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 8890,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "5941:42:31",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 8881,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "5935:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 8880,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "5935:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8891,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5935:49:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "functionReturnParameters": 8756,
                                    "id": 8892,
                                    "nodeType": "Return",
                                    "src": "5928:56:31"
                                  }
                                ]
                              }
                            },
                            "id": 8922,
                            "nodeType": "IfStatement",
                            "src": "5719:450:31",
                            "trueBody": {
                              "id": 8873,
                              "nodeType": "Block",
                              "src": "5772:81:31",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 8869,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 8864,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 8750,
                                                  "src": "5807:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 8865,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "5807:17:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 8867,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "656e756d73",
                                                "id": 8866,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5825:7:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                  "typeString": "literal_string \"enums\""
                                                },
                                                "value": "enums"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "5807:26:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "323038",
                                              "id": 8868,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "5837:3:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_208_by_1",
                                                "typeString": "int_const 208"
                                              },
                                              "value": "208"
                                            },
                                            "src": "5807:33:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 8863,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5799:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 8862,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "5799:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8870,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5799:42:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 8861,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5793:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 8860,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5793:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8871,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5793:49:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "functionReturnParameters": 8756,
                                  "id": 8872,
                                  "nodeType": "Return",
                                  "src": "5786:56:31"
                                }
                              ]
                            }
                          },
                          "id": 8923,
                          "nodeType": "IfStatement",
                          "src": "5578:591:31",
                          "trueBody": {
                            "id": 8853,
                            "nodeType": "Block",
                            "src": "5632:81:31",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 8849,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 8844,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8750,
                                                "src": "5667:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 8845,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "5667:17:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 8847,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "656e756d73",
                                              "id": 8846,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "5685:7:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                "typeString": "literal_string \"enums\""
                                              },
                                              "value": "enums"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "5667:26:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "323136",
                                            "id": 8848,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5697:3:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_216_by_1",
                                              "typeString": "int_const 216"
                                            },
                                            "value": "216"
                                          },
                                          "src": "5667:33:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 8843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "5659:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 8842,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "5659:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8850,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5659:42:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 8841,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5653:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 8840,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5653:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8851,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5653:49:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "functionReturnParameters": 8756,
                                "id": 8852,
                                "nodeType": "Return",
                                "src": "5646:56:31"
                              }
                            ]
                          }
                        },
                        "id": 8924,
                        "nodeType": "IfStatement",
                        "src": "5440:729:31",
                        "trueBody": {
                          "id": 8833,
                          "nodeType": "Block",
                          "src": "5491:81:31",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8829,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8824,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8750,
                                              "src": "5526:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8825,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "5526:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8827,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "656e756d73",
                                            "id": 8826,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5544:7:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                              "typeString": "literal_string \"enums\""
                                            },
                                            "value": "enums"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "5526:26:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "323234",
                                          "id": 8828,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5556:3:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_224_by_1",
                                            "typeString": "int_const 224"
                                          },
                                          "value": "224"
                                        },
                                        "src": "5526:33:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8823,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5518:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8822,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5518:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8830,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5518:42:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8821,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5512:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8820,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5512:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8831,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5512:49:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "functionReturnParameters": 8756,
                              "id": 8832,
                              "nodeType": "Return",
                              "src": "5505:56:31"
                            }
                          ]
                        }
                      },
                      "id": 8925,
                      "nodeType": "IfStatement",
                      "src": "5308:861:31",
                      "trueBody": {
                        "id": 8813,
                        "nodeType": "Block",
                        "src": "5353:81:31",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 8809,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 8804,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8750,
                                            "src": "5388:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 8805,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "5388:17:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 8807,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "656e756d73",
                                          "id": 8806,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5406:7:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                            "typeString": "literal_string \"enums\""
                                          },
                                          "value": "enums"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5388:26:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323332",
                                        "id": 8808,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5418:3:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_232_by_1",
                                          "typeString": "int_const 232"
                                        },
                                        "value": "232"
                                      },
                                      "src": "5388:33:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 8803,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5380:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 8802,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5380:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8810,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5380:42:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 8801,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5374:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 8800,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5374:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8811,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5374:49:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "functionReturnParameters": 8756,
                            "id": 8812,
                            "nodeType": "Return",
                            "src": "5367:56:31"
                          }
                        ]
                      }
                    },
                    "id": 8926,
                    "nodeType": "IfStatement",
                    "src": "5180:989:31",
                    "trueBody": {
                      "id": 8793,
                      "nodeType": "Block",
                      "src": "5221:81:31",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8789,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8784,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8750,
                                          "src": "5256:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8785,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "5256:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8787,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8786,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5274:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "5256:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 8788,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5286:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "5256:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8783,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5248:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8782,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5248:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8790,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5248:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8781,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5242:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8780,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "5242:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8791,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5242:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "functionReturnParameters": 8756,
                          "id": 8792,
                          "nodeType": "Return",
                          "src": "5235:56:31"
                        }
                      ]
                    }
                  },
                  "id": 8927,
                  "nodeType": "IfStatement",
                  "src": "5057:1112:31",
                  "trueBody": {
                    "id": 8773,
                    "nodeType": "Block",
                    "src": "5093:81:31",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8769,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8764,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8750,
                                        "src": "5128:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 8765,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "5128:17:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 8767,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "656e756d73",
                                      "id": 8766,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5146:7:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                        "typeString": "literal_string \"enums\""
                                      },
                                      "value": "enums"
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5128:26:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323438",
                                    "id": 8768,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5158:3:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_248_by_1",
                                      "typeString": "int_const 248"
                                    },
                                    "value": "248"
                                  },
                                  "src": "5128:33:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 8763,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5120:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 8762,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5120:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8770,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5120:42:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 8761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5114:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 8760,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "5114:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 8771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5114:49:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 8756,
                        "id": 8772,
                        "nodeType": "Return",
                        "src": "5107:56:31"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a5be46bb",
            "id": 8929,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetEnumValueForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8750,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8929,
                  "src": "4946:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8749,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "4946:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8752,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8929,
                  "src": "4967:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8751,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4967:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4945:43:31"
            },
            "returnParameters": {
              "id": 8756,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8755,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8929,
                  "src": "5036:5:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 8754,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5036:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5035:7:31"
            },
            "scope": 9157,
            "src": "4900:1275:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8943,
              "nodeType": "Block",
              "src": "6348:34:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 8940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6373:1:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 8939,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6365:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 8938,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "6365:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 8941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6365:10:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 8937,
                  "id": 8942,
                  "nodeType": "Return",
                  "src": "6358:17:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "cabb2429",
            "id": 8944,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetAddressValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8931,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8944,
                  "src": "6233:13:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8930,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6233:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8933,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8944,
                  "src": "6260:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8932,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6260:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6232:55:31"
            },
            "returnParameters": {
              "id": 8937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8936,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8944,
                  "src": "6335:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8935,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6335:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6334:9:31"
            },
            "scope": 9157,
            "src": "6181:201:31",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8958,
              "nodeType": "Block",
              "src": "6543:55:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8953,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8946,
                        "src": "6560:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      "id": 8954,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "packedTerms",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4457,
                      "src": "6560:17:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 8956,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8955,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8948,
                      "src": "6578:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6560:31:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 8952,
                  "id": 8957,
                  "nodeType": "Return",
                  "src": "6553:38:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a00aadbc",
            "id": 8959,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetBytes32ValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8946,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8959,
                  "src": "6440:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8945,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6440:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8948,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8959,
                  "src": "6461:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8947,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6461:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6439:43:31"
            },
            "returnParameters": {
              "id": 8952,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8951,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8959,
                  "src": "6530:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8950,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6530:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6529:9:31"
            },
            "scope": 9157,
            "src": "6388:210:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8976,
              "nodeType": "Block",
              "src": "6756:64:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8970,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8961,
                            "src": "6781:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 8971,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "6781:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 8973,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8972,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8963,
                          "src": "6799:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6781:31:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6773:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 8968,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6773:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 8974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6773:40:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8967,
                  "id": 8975,
                  "nodeType": "Return",
                  "src": "6766:47:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bb63c3b5",
            "id": 8977,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetUIntValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8961,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8977,
                  "src": "6653:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8960,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6653:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8963,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8977,
                  "src": "6674:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8962,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6674:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6652:43:31"
            },
            "returnParameters": {
              "id": 8967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8966,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8977,
                  "src": "6743:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8965,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6743:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6742:9:31"
            },
            "scope": 9157,
            "src": "6604:216:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8994,
              "nodeType": "Block",
              "src": "6976:63:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8988,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8979,
                            "src": "7000:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 8989,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "7000:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 8991,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8990,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8981,
                          "src": "7018:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7000:31:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6993:6:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": {
                        "id": 8986,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6993:6:31",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 8992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6993:39:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 8985,
                  "id": 8993,
                  "nodeType": "Return",
                  "src": "6986:46:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "26e7daac",
            "id": 8995,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetIntValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8979,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8995,
                  "src": "6874:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8978,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6874:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8981,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8995,
                  "src": "6895:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8980,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6895:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6873:43:31"
            },
            "returnParameters": {
              "id": 8985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8984,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8995,
                  "src": "6964:6:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 8983,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6964:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6963:8:31"
            },
            "scope": 9157,
            "src": "6826:213:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9012,
              "nodeType": "Block",
              "src": "7213:42:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 9005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7233:1:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7238:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 9006,
                          "name": "P",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22474,
                          "src": "7236:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                            "typeString": "type(enum P)"
                          }
                        },
                        "id": 9008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7236:4:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 9009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7242:5:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9004,
                      "name": "IP",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22493,
                      "src": "7230:2:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                        "typeString": "type(struct IP storage pointer)"
                      }
                    },
                    "id": 9010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7230:18:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                      "typeString": "struct IP memory"
                    }
                  },
                  "functionReturnParameters": 9003,
                  "id": 9011,
                  "nodeType": "Return",
                  "src": "7223:25:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "80e1292c",
            "id": 9013,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetPeriodValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8997,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9013,
                  "src": "7096:13:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8996,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "7096:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8999,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9013,
                  "src": "7123:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7123:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7095:55:31"
            },
            "returnParameters": {
              "id": 9003,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9002,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9013,
                  "src": "7198:9:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                    "typeString": "struct IP"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9001,
                    "name": "IP",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22493,
                    "src": "7198:2:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IP_$22493_storage_ptr",
                      "typeString": "struct IP"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7197:11:31"
            },
            "scope": 9157,
            "src": "7045:210:31",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9033,
              "nodeType": "Block",
              "src": "7429:49:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 9023,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7450:1:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7455:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 9024,
                          "name": "P",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22474,
                          "src": "7453:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                            "typeString": "type(enum P)"
                          }
                        },
                        "id": 9026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7453:4:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7461:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 9027,
                          "name": "S",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22477,
                          "src": "7459:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                            "typeString": "type(enum S)"
                          }
                        },
                        "id": 9029,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7459:4:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_S_$22477",
                          "typeString": "enum S"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 9030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7465:5:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        },
                        {
                          "typeIdentifier": "t_enum$_S_$22477",
                          "typeString": "enum S"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9022,
                      "name": "IPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22486,
                      "src": "7446:3:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                        "typeString": "type(struct IPS storage pointer)"
                      }
                    },
                    "id": 9031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7446:25:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                      "typeString": "struct IPS memory"
                    }
                  },
                  "functionReturnParameters": 9021,
                  "id": 9032,
                  "nodeType": "Return",
                  "src": "7439:32:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "81555221",
            "id": 9034,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCycleValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9015,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9034,
                  "src": "7311:13:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9014,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "7311:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9017,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9034,
                  "src": "7338:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9016,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7338:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7310:55:31"
            },
            "returnParameters": {
              "id": 9021,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9020,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9034,
                  "src": "7413:10:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                    "typeString": "struct IPS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9019,
                    "name": "IPS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22486,
                    "src": "7413:3:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IPS_$22486_storage_ptr",
                      "typeString": "struct IPS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7412:12:31"
            },
            "scope": 9157,
            "src": "7261:217:31",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9155,
              "nodeType": "Block",
              "src": "7665:1173:31",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 9048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 9043,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9038,
                      "src": "7679:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "636f6e74726163745265666572656e63655f31",
                          "id": 9046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7703:21:31",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          },
                          "value": "contractReference_1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          }
                        ],
                        "id": 9045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7695:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 9044,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "7695:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 9047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7695:30:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7679:46:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 9094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 9089,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9038,
                        "src": "8156:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "636f6e74726163745265666572656e63655f32",
                            "id": 9092,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8180:21:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            },
                            "value": "contractReference_2"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            }
                          ],
                          "id": 9091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8172:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 9090,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8172:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 9093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8172:30:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "8156:46:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 9152,
                      "nodeType": "Block",
                      "src": "8629:203:31",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9138,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8693:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9137,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8685:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 9136,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8685:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 9139,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8685:10:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9142,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8721:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9141,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8713:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 9140,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8713:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 9143,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8713:10:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9145,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8763:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9144,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "8741:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 9146,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8741:24:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9148,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8805:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9147,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "8783:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 9149,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8783:24:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 9135,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "8650:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 9150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8650:171:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 9042,
                          "id": 9151,
                          "nodeType": "Return",
                          "src": "8643:178:31"
                        }
                      ]
                    },
                    "id": 9153,
                    "nodeType": "IfStatement",
                    "src": "8152:680:31",
                    "trueBody": {
                      "id": 9134,
                      "nodeType": "Block",
                      "src": "8204:419:31",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 9096,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9036,
                                    "src": "8260:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 9097,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "8260:17:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 9099,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                                  "id": 9098,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8278:28:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                    "typeString": "literal_string \"contractReference_2_object\""
                                  },
                                  "value": "contractReference_2_object"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8260:47:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 9100,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9036,
                                    "src": "8325:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 9101,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "8325:17:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 9103,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                                  "id": 9102,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8343:29:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                    "typeString": "literal_string \"contractReference_2_object2\""
                                  },
                                  "value": "contractReference_2_object2"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8325:48:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 9114,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 9109,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 9036,
                                                  "src": "8427:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 9110,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "8427:17:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 9112,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 9111,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8445:31:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "8427:50:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "3136",
                                              "id": 9113,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8481:2:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "8427:56:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 9108,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8419:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 9107,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8419:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 9115,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8419:65:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 9106,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8413:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 9105,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8413:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 9116,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8413:72:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 9104,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "8391:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 9117,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8391:95:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 9128,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 9123,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 9036,
                                                  "src": "8540:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 9124,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "8540:17:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 9126,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 9125,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8558:31:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "8540:50:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "38",
                                              "id": 9127,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8594:1:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "8540:55:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 9122,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8532:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 9121,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8532:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 9129,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8532:64:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 9120,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8526:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 9119,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8526:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 9130,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8526:71:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 9118,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "8504:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 9131,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8504:94:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 9095,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "8225:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 9132,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8225:387:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 9042,
                          "id": 9133,
                          "nodeType": "Return",
                          "src": "8218:394:31"
                        }
                      ]
                    }
                  },
                  "id": 9154,
                  "nodeType": "IfStatement",
                  "src": "7675:1157:31",
                  "trueBody": {
                    "id": 9088,
                    "nodeType": "Block",
                    "src": "7727:419:31",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9050,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9036,
                                  "src": "7783:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 9051,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "7783:17:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 9053,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                                "id": 9052,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7801:28:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                  "typeString": "literal_string \"contractReference_1_object\""
                                },
                                "value": "contractReference_1_object"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7783:47:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9054,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9036,
                                  "src": "7848:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 9055,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "7848:17:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 9057,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                                "id": 9056,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7866:29:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                  "typeString": "literal_string \"contractReference_1_object2\""
                                },
                                "value": "contractReference_1_object2"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7848:48:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 9068,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 9063,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9036,
                                                "src": "7950:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 9064,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "7950:17:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 9066,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 9065,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7968:31:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "7950:50:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 9067,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8004:2:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "7950:56:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 9062,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "7942:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 9061,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "7942:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 9069,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "7942:65:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 9060,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7936:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 9059,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7936:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 9070,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7936:72:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 9058,
                                "name": "ContractReferenceType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22519,
                                "src": "7914:21:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                  "typeString": "type(enum ContractReferenceType)"
                                }
                              },
                              "id": 9071,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7914:95:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 9082,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 9077,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9036,
                                                "src": "8063:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 9078,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "8063:17:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 9080,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 9079,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8081:31:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8063:50:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "38",
                                            "id": 9081,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8117:1:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            },
                                            "value": "8"
                                          },
                                          "src": "8063:55:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 9076,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8055:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 9075,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8055:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 9083,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8055:64:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 9074,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "8049:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 9073,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "8049:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 9084,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "8049:71:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 9072,
                                "name": "ContractReferenceRole",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22525,
                                "src": "8027:21:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                  "typeString": "type(enum ContractReferenceRole)"
                                }
                              },
                              "id": 9085,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8027:94:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            ],
                            "id": 9049,
                            "name": "ContractReference",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22632,
                            "src": "7748:17:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                              "typeString": "type(struct ContractReference storage pointer)"
                            }
                          },
                          "id": 9086,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7748:387:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "functionReturnParameters": 9042,
                        "id": 9087,
                        "nodeType": "Return",
                        "src": "7741:394:31"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bce57f1b",
            "id": 9156,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetContractReferenceValueForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9039,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9036,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9156,
                  "src": "7543:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9035,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "7543:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9038,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9156,
                  "src": "7565:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9037,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7565:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7542:45:31"
            },
            "returnParameters": {
              "id": 9042,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9041,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9156,
                  "src": "7635:24:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                    "typeString": "struct ContractReference"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9040,
                    "name": "ContractReference",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22632,
                    "src": "7635:17:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ContractReference_$22632_storage_ptr",
                      "typeString": "struct ContractReference"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7634:26:31"
            },
            "scope": 9157,
            "src": "7484:1354:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 9158,
        "src": "193:8647:31"
      }
    ],
    "src": "41:8799:31"
  },
  "legacyAST": {
    "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/CEC/CECEncoder.sol",
    "exportedSymbols": {
      "CECEncoder": [
        9157
      ]
    },
    "id": 9158,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 8221,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:31"
      },
      {
        "id": 8222,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "66:33:31"
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/SharedTypes.sol",
        "file": "../Base/SharedTypes.sol",
        "id": 8223,
        "nodeType": "ImportDirective",
        "scope": 9158,
        "sourceUnit": 7865,
        "src": "101:33:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/johannes/Documents/dev/actus-protocol/ap-monorepo/packages/ap-contracts/contracts/Core/Base/AssetRegistry/BaseRegistryStorage.sol",
        "file": "../Base/AssetRegistry/BaseRegistryStorage.sol",
        "id": 8224,
        "nodeType": "ImportDirective",
        "scope": 9158,
        "sourceUnit": 4479,
        "src": "135:55:31",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 9157,
        "linearizedBaseContracts": [
          9157
        ],
        "name": "CECEncoder",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 8249,
              "nodeType": "Block",
              "src": "313:158:31",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 8238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8233,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8226,
                          "src": "367:5:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 8234,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "367:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 8236,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8235,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8228,
                        "src": "385:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "367:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8237,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8230,
                      "src": "402:5:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "367:40:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8240,
                  "nodeType": "IfStatement",
                  "src": "363:53:31",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 8232,
                    "id": 8239,
                    "nodeType": "Return",
                    "src": "409:7:31"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8241,
                          "name": "asset",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8226,
                          "src": "425:5:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                            "typeString": "struct Asset storage pointer"
                          }
                        },
                        "id": 8244,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "packedTerms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4457,
                        "src": "425:17:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                          "typeString": "mapping(bytes32 => bytes32)"
                        }
                      },
                      "id": 8245,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8243,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8228,
                        "src": "443:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "425:31:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8246,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8230,
                      "src": "459:5:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "425:39:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8248,
                  "nodeType": "ExpressionStatement",
                  "src": "425:39:31"
                }
              ]
            },
            "documentation": null,
            "id": 8250,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "storeInPackedTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8231,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8226,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8250,
                  "src": "247:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8225,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "247:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8228,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8250,
                  "src": "268:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "268:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8230,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8250,
                  "src": "290:13:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8229,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "290:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "246:58:31"
            },
            "returnParameters": {
              "id": 8232,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "313:0:31"
            },
            "scope": 9157,
            "src": "219:252:31",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 8512,
              "nodeType": "Block",
              "src": "836:2132:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8259,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "878:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "656e756d73",
                        "id": 8260,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "897:7:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        "value": "enums"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 8343,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 8329,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 8315,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8301,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8287,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 8273,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "arguments": [
                                                  {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                      "argumentTypes": null,
                                                      "id": 8267,
                                                      "name": "terms",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 8255,
                                                      "src": "940:5:31",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                        "typeString": "struct CECTerms memory"
                                                      }
                                                    },
                                                    "id": 8268,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "contractType",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 22770,
                                                    "src": "940:18:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_enum$_ContractType_$22559",
                                                      "typeString": "enum ContractType"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_enum$_ContractType_$22559",
                                                      "typeString": "enum ContractType"
                                                    }
                                                  ],
                                                  "id": 8266,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "nodeType": "ElementaryTypeNameExpression",
                                                  "src": "934:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                  },
                                                  "typeName": {
                                                    "id": 8265,
                                                    "name": "uint8",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "934:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": null,
                                                      "typeString": null
                                                    }
                                                  }
                                                },
                                                "id": 8269,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "934:25:31",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              ],
                                              "id": 8264,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "926:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 8263,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "926:7:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8270,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "926:34:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 8262,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "918:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 8261,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "918:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8271,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "918:43:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<<",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323438",
                                        "id": 8272,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "965:3:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_248_by_1",
                                          "typeString": "int_const 248"
                                        },
                                        "value": "248"
                                      },
                                      "src": "918:50:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "|",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 8286,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "arguments": [
                                                  {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                      "argumentTypes": null,
                                                      "id": 8280,
                                                      "name": "terms",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 8255,
                                                      "src": "1005:5:31",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                        "typeString": "struct CECTerms memory"
                                                      }
                                                    },
                                                    "id": 8281,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "calendar",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 22772,
                                                    "src": "1005:14:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_enum$_Calendar_$22506",
                                                      "typeString": "enum Calendar"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_enum$_Calendar_$22506",
                                                      "typeString": "enum Calendar"
                                                    }
                                                  ],
                                                  "id": 8279,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "nodeType": "ElementaryTypeNameExpression",
                                                  "src": "999:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                  },
                                                  "typeName": {
                                                    "id": 8278,
                                                    "name": "uint8",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "999:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": null,
                                                      "typeString": null
                                                    }
                                                  }
                                                },
                                                "id": 8282,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "999:21:31",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              ],
                                              "id": 8277,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "991:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 8276,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "991:7:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8283,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "991:30:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 8275,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "983:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 8274,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "983:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8284,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "983:39:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<<",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323430",
                                        "id": 8285,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1026:3:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_240_by_1",
                                          "typeString": "int_const 240"
                                        },
                                        "value": "240"
                                      },
                                      "src": "983:46:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "918:111:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "|",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8300,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8294,
                                                    "name": "terms",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8255,
                                                    "src": "1066:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                      "typeString": "struct CECTerms memory"
                                                    }
                                                  },
                                                  "id": 8295,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "contractRole",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 22774,
                                                  "src": "1066:18:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                    "typeString": "enum ContractRole"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_enum$_ContractRole_$22539",
                                                    "typeString": "enum ContractRole"
                                                  }
                                                ],
                                                "id": 8293,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "1060:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint8_$",
                                                  "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                  "id": 8292,
                                                  "name": "uint8",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "1060:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 8296,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "1060:25:31",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            ],
                                            "id": 8291,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "1052:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 8290,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "1052:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 8297,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "1052:34:31",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 8289,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1044:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes32_$",
                                          "typeString": "type(bytes32)"
                                        },
                                        "typeName": {
                                          "id": 8288,
                                          "name": "bytes32",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1044:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8298,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1044:43:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<<",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323332",
                                      "id": 8299,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1091:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_232_by_1",
                                        "typeString": "int_const 232"
                                      },
                                      "value": "232"
                                    },
                                    "src": "1044:50:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "918:176:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "|",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8314,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 8308,
                                                  "name": "terms",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 8255,
                                                  "src": "1131:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                    "typeString": "struct CECTerms memory"
                                                  }
                                                },
                                                "id": 8309,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "dayCountConvention",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 22776,
                                                "src": "1131:24:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                  "typeString": "enum DayCountConvention"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                                  "typeString": "enum DayCountConvention"
                                                }
                                              ],
                                              "id": 8307,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "1125:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint8_$",
                                                "typeString": "type(uint8)"
                                              },
                                              "typeName": {
                                                "id": 8306,
                                                "name": "uint8",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1125:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8310,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1125:31:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          ],
                                          "id": 8305,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1117:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 8304,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1117:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8311,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1117:40:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 8303,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1109:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 8302,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1109:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8312,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1109:49:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323234",
                                    "id": 8313,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1162:3:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_224_by_1",
                                      "typeString": "int_const 224"
                                    },
                                    "value": "224"
                                  },
                                  "src": "1109:56:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "918:247:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "|",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 8328,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 8322,
                                                "name": "terms",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8255,
                                                "src": "1202:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                  "typeString": "struct CECTerms memory"
                                                }
                                              },
                                              "id": 8323,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "businessDayConvention",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 22778,
                                              "src": "1202:27:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                                "typeString": "enum BusinessDayConvention"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                                                "typeString": "enum BusinessDayConvention"
                                              }
                                            ],
                                            "id": 8321,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "1196:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint8_$",
                                              "typeString": "type(uint8)"
                                            },
                                            "typeName": {
                                              "id": 8320,
                                              "name": "uint8",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "1196:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 8324,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "1196:34:31",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 8319,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1188:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 8318,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1188:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8325,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1188:43:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 8317,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1180:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 8316,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1180:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8326,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1180:52:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "323136",
                                  "id": 8327,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1236:3:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_216_by_1",
                                    "typeString": "int_const 216"
                                  },
                                  "value": "216"
                                },
                                "src": "1180:59:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "918:321:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 8342,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8336,
                                              "name": "terms",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8255,
                                              "src": "1276:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                                "typeString": "struct CECTerms memory"
                                              }
                                            },
                                            "id": 8337,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "endOfMonthConvention",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 22780,
                                            "src": "1276:26:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                              "typeString": "enum EndOfMonthConvention"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                                              "typeString": "enum EndOfMonthConvention"
                                            }
                                          ],
                                          "id": 8335,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "1270:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 8334,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1270:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8338,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1270:33:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 8333,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1262:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8332,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1262:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8339,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1262:42:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8331,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1254:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 8330,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1254:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8340,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1254:51:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "323038",
                                "id": 8341,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1309:3:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_208_by_1",
                                  "typeString": "int_const 208"
                                },
                                "value": "208"
                              },
                              "src": "1254:58:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "918:394:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "|",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 8356,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 8350,
                                            "name": "terms",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8255,
                                            "src": "1349:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                              "typeString": "struct CECTerms memory"
                                            }
                                          },
                                          "id": 8351,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "creditEventTypeCovered",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22782,
                                          "src": "1349:28:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                                            "typeString": "enum ContractPerformance"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                                            "typeString": "enum ContractPerformance"
                                          }
                                        ],
                                        "id": 8349,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1343:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 8348,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1343:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8352,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1343:35:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 8347,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1335:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 8346,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1335:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8353,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1335:44:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 8345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1327:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 8344,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1327:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8354,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1327:53:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "323030",
                              "id": 8355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1384:3:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_200_by_1",
                                "typeString": "int_const 200"
                              },
                              "value": "200"
                            },
                            "src": "1327:60:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "918:469:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8364,
                                          "name": "terms",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8255,
                                          "src": "1424:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                            "typeString": "struct CECTerms memory"
                                          }
                                        },
                                        "id": 8365,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "feeBasis",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22784,
                                        "src": "1424:14:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                                          "typeString": "enum FeeBasis"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                                          "typeString": "enum FeeBasis"
                                        }
                                      ],
                                      "id": 8363,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1418:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 8362,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1418:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8366,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1418:21:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 8361,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1410:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8360,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1410:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1410:30:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8359,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1402:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8358,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1402:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8368,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1402:39:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313932",
                            "id": 8369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1445:3:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_192_by_1",
                              "typeString": "int_const 192"
                            },
                            "value": "192"
                          },
                          "src": "1402:46:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "918:530:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                          "typeString": "literal_string \"enums\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8258,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "846:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "846:612:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8373,
                  "nodeType": "ExpressionStatement",
                  "src": "846:612:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8375,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1488:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73746174757344617465",
                        "id": 8376,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1495:12:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        "value": "statusDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8379,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1517:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8380,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "statusDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22786,
                            "src": "1517:16:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 8378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1509:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8377,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1509:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8381,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1509:25:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                          "typeString": "literal_string \"statusDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8374,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1469:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1469:66:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8383,
                  "nodeType": "ExpressionStatement",
                  "src": "1469:66:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8385,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1564:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6d6174757269747944617465",
                        "id": 8386,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1571:14:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        "value": "maturityDate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8389,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1595:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8390,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "maturityDate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22788,
                            "src": "1595:18:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 8388,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1587:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8387,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1587:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1587:27:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                          "typeString": "literal_string \"maturityDate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8384,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1545:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1545:70:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8393,
                  "nodeType": "ExpressionStatement",
                  "src": "1545:70:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8395,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1645:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f74696f6e616c5072696e636970616c",
                        "id": 8396,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1652:19:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e2fff6dcb62db100a261b355ab60197116fe802903e74d960566f166da38c4d7",
                          "typeString": "literal_string \"notionalPrincipal\""
                        },
                        "value": "notionalPrincipal"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8399,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1681:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8400,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "notionalPrincipal",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22790,
                            "src": "1681:23:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1673:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8397,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1673:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1673:32:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e2fff6dcb62db100a261b355ab60197116fe802903e74d960566f166da38c4d7",
                          "typeString": "literal_string \"notionalPrincipal\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8394,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1626:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1626:80:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8403,
                  "nodeType": "ExpressionStatement",
                  "src": "1626:80:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8405,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1744:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66656552617465",
                        "id": 8406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1751:9:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e28ff25eecd957b59620dec953bb5a027809a429a6ead72fcb63f660885d43d8",
                          "typeString": "literal_string \"feeRate\""
                        },
                        "value": "feeRate"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8409,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1770:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8410,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeRate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22792,
                            "src": "1770:13:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1762:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8407,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1762:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8411,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1762:22:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e28ff25eecd957b59620dec953bb5a027809a429a6ead72fcb63f660885d43d8",
                          "typeString": "literal_string \"feeRate\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8404,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1725:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1725:60:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8413,
                  "nodeType": "ExpressionStatement",
                  "src": "1725:60:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8415,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1814:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f7665726167654f66437265646974456e68616e63656d656e74",
                        "id": 8416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1821:29:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1b214bd93ac9c3e8210b162cd3e338e0bb02590d48c24e65020091fe827b9b63",
                          "typeString": "literal_string \"coverageOfCreditEnhancement\""
                        },
                        "value": "coverageOfCreditEnhancement"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8419,
                              "name": "terms",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8255,
                              "src": "1860:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                "typeString": "struct CECTerms memory"
                              }
                            },
                            "id": 8420,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "coverageOfCreditEnhancement",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22794,
                            "src": "1860:33:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8418,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1852:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8417,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1852:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1852:42:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1b214bd93ac9c3e8210b162cd3e338e0bb02590d48c24e65020091fe827b9b63",
                          "typeString": "literal_string \"coverageOfCreditEnhancement\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8414,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1795:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1795:100:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8423,
                  "nodeType": "ExpressionStatement",
                  "src": "1795:100:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8425,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "1938:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                        "id": 8426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1957:31:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        "value": "contractReference_1_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8449,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8437,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8431,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2018:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8432,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22796,
                                      "src": "2018:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8433,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "2018:31:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 8430,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2010:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8429,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2010:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8434,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2010:40:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8428,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2002:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8427,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2002:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8435,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2002:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 8436,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2055:2:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "2002:55:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8442,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2088:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8443,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_1",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22796,
                                      "src": "2088:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8444,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "2088:30:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 8441,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2080:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8440,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2080:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8445,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2080:39:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8439,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2072:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8438,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2072:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8446,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2072:48:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 8447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2124:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "2072:53:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2002:123:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                          "typeString": "literal_string \"contractReference_1_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8424,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "1906:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1906:229:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8451,
                  "nodeType": "ExpressionStatement",
                  "src": "1906:229:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8453,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2178:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                        "id": 8454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2197:28:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        "value": "contractReference_1_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8455,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2239:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8456,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22796,
                          "src": "2239:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8457,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "2239:32:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                          "typeString": "literal_string \"contractReference_1_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8452,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2146:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2146:135:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8459,
                  "nodeType": "ExpressionStatement",
                  "src": "2146:135:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8461,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2323:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                        "id": 8462,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2342:29:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        "value": "contractReference_1_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8463,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2385:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8464,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_1",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22796,
                          "src": "2385:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8465,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "2385:33:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                          "typeString": "literal_string \"contractReference_1_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8460,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2291:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2291:137:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8467,
                  "nodeType": "ExpressionStatement",
                  "src": "2291:137:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8469,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2471:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                        "id": 8470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2490:31:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        "value": "contractReference_2_type_role"
                      },
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8475,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2551:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8476,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22798,
                                      "src": "2551:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8477,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_type",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22629,
                                    "src": "2551:31:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                      "typeString": "enum ContractReferenceType"
                                    }
                                  ],
                                  "id": 8474,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2543:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8473,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2543:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2543:40:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8472,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2535:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8471,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2535:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8479,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2535:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "3136",
                            "id": 8480,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2588:2:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "2535:55:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "|",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8486,
                                        "name": "terms",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8255,
                                        "src": "2621:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                                          "typeString": "struct CECTerms memory"
                                        }
                                      },
                                      "id": 8487,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "contractReference_2",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22798,
                                      "src": "2621:25:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                                        "typeString": "struct ContractReference memory"
                                      }
                                    },
                                    "id": 8488,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "role",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 22631,
                                    "src": "2621:30:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                      "typeString": "enum ContractReferenceRole"
                                    }
                                  ],
                                  "id": 8485,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2613:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8484,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2613:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8489,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2613:39:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8483,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2605:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8482,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "2605:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8490,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2605:48:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "38",
                            "id": 8491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2657:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "2605:53:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2535:123:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                          "typeString": "literal_string \"contractReference_2_type_role\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8468,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2439:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2439:229:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8495,
                  "nodeType": "ExpressionStatement",
                  "src": "2439:229:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8497,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2711:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                        "id": 8498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2730:28:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        "value": "contractReference_2_object"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8499,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2772:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8500,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22798,
                          "src": "2772:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8501,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22625,
                        "src": "2772:32:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                          "typeString": "literal_string \"contractReference_2_object\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8496,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2679:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2679:135:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8503,
                  "nodeType": "ExpressionStatement",
                  "src": "2679:135:31"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8505,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8253,
                        "src": "2856:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                        "id": 8506,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2875:29:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        "value": "contractReference_2_object2"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8507,
                            "name": "terms",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8255,
                            "src": "2918:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                              "typeString": "struct CECTerms memory"
                            }
                          },
                          "id": 8508,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contractReference_2",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22798,
                          "src": "2918:25:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "id": 8509,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "object2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22627,
                        "src": "2918:33:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                          "typeString": "literal_string \"contractReference_2_object2\""
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8504,
                      "name": "storeInPackedTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "2824:18:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Asset_$4466_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (struct Asset storage pointer,bytes32,bytes32)"
                      }
                    },
                    "id": 8510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2824:137:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8511,
                  "nodeType": "ExpressionStatement",
                  "src": "2824:137:31"
                }
              ]
            },
            "documentation": {
              "id": 8251,
              "nodeType": "StructuredDocumentation",
              "src": "481:267:31",
              "text": " @dev Tightly pack and store only non-zero overwritten terms (LifecycleTerms)\n @notice All non zero values of the overwrittenTerms object are stored.\n It does not check if overwrittenAttributesMap actually marks attribute as overwritten."
            },
            "functionSelector": "856b0d64",
            "id": 8513,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeAndSetCECTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8256,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8253,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8513,
                  "src": "783:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8252,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "783:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8255,
                  "mutability": "mutable",
                  "name": "terms",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8513,
                  "src": "804:21:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                    "typeString": "struct CECTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8254,
                    "name": "CECTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22799,
                    "src": "804:8:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CECTerms_$22799_storage_ptr",
                      "typeString": "struct CECTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "782:44:31"
            },
            "returnParameters": {
              "id": 8257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "836:0:31"
            },
            "scope": 9157,
            "src": "753:2215:31",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8747,
              "nodeType": "Block",
              "src": "3119:1775:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8532,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8527,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3185:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8528,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3185:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8530,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8529,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3203:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3185:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323438",
                                      "id": 8531,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3215:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_248_by_1",
                                        "typeString": "int_const 248"
                                      },
                                      "value": "248"
                                    },
                                    "src": "3185:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3177:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8525,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3177:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8533,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3177:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3171:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8523,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3171:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8534,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3171:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8522,
                          "name": "ContractType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22559,
                          "src": "3158:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractType_$22559_$",
                            "typeString": "type(enum ContractType)"
                          }
                        },
                        "id": 8535,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3158:63:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8546,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8541,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3258:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8542,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3258:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8544,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8543,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3276:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3258:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 8545,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3288:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "3258:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8540,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3250:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8539,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3250:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8547,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3250:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8538,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3244:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8537,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3244:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8548,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3244:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8536,
                          "name": "Calendar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22506,
                          "src": "3235:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Calendar_$22506_$",
                            "typeString": "type(enum Calendar)"
                          }
                        },
                        "id": 8549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3235:59:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8560,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8555,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3335:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8556,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3335:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8558,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8557,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3353:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3335:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323332",
                                      "id": 8559,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3365:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_232_by_1",
                                        "typeString": "int_const 232"
                                      },
                                      "value": "232"
                                    },
                                    "src": "3335:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8554,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3327:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8553,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3327:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8561,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3327:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8552,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3321:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8551,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3321:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8562,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3321:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8550,
                          "name": "ContractRole",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22539,
                          "src": "3308:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractRole_$22539_$",
                            "typeString": "type(enum ContractRole)"
                          }
                        },
                        "id": 8563,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3308:63:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8574,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8569,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3418:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8570,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3418:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8572,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8571,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3436:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3418:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323234",
                                      "id": 8573,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3448:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_224_by_1",
                                        "typeString": "int_const 224"
                                      },
                                      "value": "224"
                                    },
                                    "src": "3418:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8568,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3410:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8567,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3410:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8575,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3410:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3404:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8565,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3404:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8576,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3404:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8564,
                          "name": "DayCountConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22577,
                          "src": "3385:18:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                            "typeString": "type(enum DayCountConvention)"
                          }
                        },
                        "id": 8577,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3385:69:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8588,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8583,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3504:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8584,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3504:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8586,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8585,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3522:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3504:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323136",
                                      "id": 8587,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3534:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_216_by_1",
                                        "typeString": "int_const 216"
                                      },
                                      "value": "216"
                                    },
                                    "src": "3504:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8582,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3496:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8581,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3496:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8589,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3496:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3490:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8579,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3490:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8590,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3490:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8578,
                          "name": "BusinessDayConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22503,
                          "src": "3468:21:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_BusinessDayConvention_$22503_$",
                            "typeString": "type(enum BusinessDayConvention)"
                          }
                        },
                        "id": 8591,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3468:72:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8602,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8597,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3589:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8598,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3589:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8600,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8599,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3607:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3589:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323038",
                                      "id": 8601,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3619:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_208_by_1",
                                        "typeString": "int_const 208"
                                      },
                                      "value": "208"
                                    },
                                    "src": "3589:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3581:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8595,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3581:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8603,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3581:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8594,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3575:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8593,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3575:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8604,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3575:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8592,
                          "name": "EndOfMonthConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22580,
                          "src": "3554:20:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_EndOfMonthConvention_$22580_$",
                            "typeString": "type(enum EndOfMonthConvention)"
                          }
                        },
                        "id": 8605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3554:71:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8616,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8611,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3673:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8612,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3673:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8614,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8613,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3691:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3673:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323030",
                                      "id": 8615,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3703:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_200_by_1",
                                        "typeString": "int_const 200"
                                      },
                                      "value": "200"
                                    },
                                    "src": "3673:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8610,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3665:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8609,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3665:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8617,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3665:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8608,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3659:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8607,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3659:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8618,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3659:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8606,
                          "name": "ContractPerformance",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22513,
                          "src": "3639:19:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_ContractPerformance_$22513_$",
                            "typeString": "type(enum ContractPerformance)"
                          }
                        },
                        "id": 8619,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3639:70:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                          "typeString": "enum ContractPerformance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8630,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8625,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8516,
                                          "src": "3746:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8626,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "3746:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8628,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8627,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3764:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "3746:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "313932",
                                      "id": 8629,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3776:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_192_by_1",
                                        "typeString": "int_const 192"
                                      },
                                      "value": "192"
                                    },
                                    "src": "3746:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8624,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3738:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8623,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3738:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8631,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3738:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8622,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3732:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8621,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "3732:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8632,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3732:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 8620,
                          "name": "FeeBasis",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22613,
                          "src": "3723:8:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_FeeBasis_$22613_$",
                            "typeString": "type(enum FeeBasis)"
                          }
                        },
                        "id": 8633,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3723:59:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                          "typeString": "enum FeeBasis"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8636,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3805:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8637,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3805:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8639,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "73746174757344617465",
                              "id": 8638,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3823:12:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9005b4ac566705c576206d61b3f8a201b309a998de78f53bc07894e24ec9c1f1",
                                "typeString": "literal_string \"statusDate\""
                              },
                              "value": "statusDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3805:31:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8635,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3797:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 8634,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3797:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8640,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3797:40:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8643,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3859:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8644,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3859:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8646,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6d6174757269747944617465",
                              "id": 8645,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3877:14:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_aa070e2b1c6cf838992192c95948c4af5c0f288b14767f418b56f7fd57e3c29e",
                                "typeString": "literal_string \"maturityDate\""
                              },
                              "value": "maturityDate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3859:33:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3851:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 8641,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3851:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8647,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3851:42:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8650,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3915:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8651,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3915:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8653,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "6e6f74696f6e616c5072696e636970616c",
                              "id": 8652,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3933:19:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e2fff6dcb62db100a261b355ab60197116fe802903e74d960566f166da38c4d7",
                                "typeString": "literal_string \"notionalPrincipal\""
                              },
                              "value": "notionalPrincipal"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3915:38:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3908:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8648,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3908:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3908:46:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8657,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "3975:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8658,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "3975:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8660,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "66656552617465",
                              "id": 8659,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3993:9:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e28ff25eecd957b59620dec953bb5a027809a429a6ead72fcb63f660885d43d8",
                                "typeString": "literal_string \"feeRate\""
                              },
                              "value": "feeRate"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3975:28:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8656,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3968:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8655,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3968:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8661,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3968:36:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8664,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4025:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8665,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4025:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8667,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f7665726167654f66437265646974456e68616e63656d656e74",
                              "id": 8666,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4043:29:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_1b214bd93ac9c3e8210b162cd3e338e0bb02590d48c24e65020091fe827b9b63",
                                "typeString": "literal_string \"coverageOfCreditEnhancement\""
                              },
                              "value": "coverageOfCreditEnhancement"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4025:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8663,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4018:6:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8662,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4018:6:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8668,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4018:56:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8670,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4124:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8671,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4124:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8673,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                              "id": 8672,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4142:28:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                "typeString": "literal_string \"contractReference_1_object\""
                              },
                              "value": "contractReference_1_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4124:47:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8674,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4189:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8675,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4189:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8677,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                              "id": 8676,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4207:29:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                "typeString": "literal_string \"contractReference_1_object2\""
                              },
                              "value": "contractReference_1_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4189:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8688,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8683,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4291:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8684,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4291:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8686,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 8685,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4309:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4291:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 8687,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4345:2:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "4291:56:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8682,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4283:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8681,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4283:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8689,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4283:65:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8680,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4277:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8679,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4277:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8690,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4277:72:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8678,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "4255:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 8691,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4255:95:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8702,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8697,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4404:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8698,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4404:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8700,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                            "id": 8699,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4422:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                              "typeString": "literal_string \"contractReference_1_type_role\""
                                            },
                                            "value": "contractReference_1_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4404:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 8701,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4458:1:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "4404:55:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8696,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4396:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8695,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4396:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8703,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4396:64:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8694,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4390:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8693,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4390:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8704,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4390:71:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8692,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "4368:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 8705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4368:94:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 8669,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "4089:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 8706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4089:387:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8708,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4525:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8709,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4525:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8711,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                              "id": 8710,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4543:28:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                "typeString": "literal_string \"contractReference_2_object\""
                              },
                              "value": "contractReference_2_object"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4525:47:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8712,
                                "name": "asset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8516,
                                "src": "4590:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                  "typeString": "struct Asset storage pointer"
                                }
                              },
                              "id": 8713,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "packedTerms",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4457,
                              "src": "4590:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                "typeString": "mapping(bytes32 => bytes32)"
                              }
                            },
                            "id": 8715,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                              "id": 8714,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4608:29:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                "typeString": "literal_string \"contractReference_2_object2\""
                              },
                              "value": "contractReference_2_object2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4590:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8726,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8721,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4692:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8722,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4692:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8724,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 8723,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4710:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4692:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "3136",
                                          "id": 8725,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4746:2:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_16_by_1",
                                            "typeString": "int_const 16"
                                          },
                                          "value": "16"
                                        },
                                        "src": "4692:56:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8720,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4684:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8719,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4684:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8727,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4684:65:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8718,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4678:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8717,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4678:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8728,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4678:72:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8716,
                              "name": "ContractReferenceType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22519,
                              "src": "4656:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                "typeString": "type(enum ContractReferenceType)"
                              }
                            },
                            "id": 8729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4656:95:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8740,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8735,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8516,
                                              "src": "4805:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8736,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "4805:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8738,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                            "id": 8737,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4823:31:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                              "typeString": "literal_string \"contractReference_2_type_role\""
                                            },
                                            "value": "contractReference_2_type_role"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "4805:50:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "38",
                                          "id": 8739,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "4859:1:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_8_by_1",
                                            "typeString": "int_const 8"
                                          },
                                          "value": "8"
                                        },
                                        "src": "4805:55:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8734,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "4797:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8733,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4797:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8741,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4797:64:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8732,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "4791:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8731,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4791:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8742,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4791:71:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 8730,
                              "name": "ContractReferenceRole",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22525,
                              "src": "4769:21:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                "typeString": "type(enum ContractReferenceRole)"
                              }
                            },
                            "id": 8743,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4769:94:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                              "typeString": "enum ContractReferenceType"
                            },
                            {
                              "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                              "typeString": "enum ContractReferenceRole"
                            }
                          ],
                          "id": 8707,
                          "name": "ContractReference",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22632,
                          "src": "4490:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                            "typeString": "type(struct ContractReference storage pointer)"
                          }
                        },
                        "id": 8744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4490:387:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_enum$_ContractType_$22559",
                          "typeString": "enum ContractType"
                        },
                        {
                          "typeIdentifier": "t_enum$_Calendar_$22506",
                          "typeString": "enum Calendar"
                        },
                        {
                          "typeIdentifier": "t_enum$_ContractRole_$22539",
                          "typeString": "enum ContractRole"
                        },
                        {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_BusinessDayConvention_$22503",
                          "typeString": "enum BusinessDayConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_EndOfMonthConvention_$22580",
                          "typeString": "enum EndOfMonthConvention"
                        },
                        {
                          "typeIdentifier": "t_enum$_ContractPerformance_$22513",
                          "typeString": "enum ContractPerformance"
                        },
                        {
                          "typeIdentifier": "t_enum$_FeeBasis_$22613",
                          "typeString": "enum FeeBasis"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                          "typeString": "struct ContractReference memory"
                        }
                      ],
                      "id": 8521,
                      "name": "CECTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22799,
                      "src": "3136:8:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CECTerms_$22799_storage_ptr_$",
                        "typeString": "type(struct CECTerms storage pointer)"
                      }
                    },
                    "id": 8745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3136:1751:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                      "typeString": "struct CECTerms memory"
                    }
                  },
                  "functionReturnParameters": 8520,
                  "id": 8746,
                  "nodeType": "Return",
                  "src": "3129:1758:31"
                }
              ]
            },
            "documentation": {
              "id": 8514,
              "nodeType": "StructuredDocumentation",
              "src": "2974:49:31",
              "text": " @dev Decode and loads CECTerms"
            },
            "functionSelector": "f4835d70",
            "id": 8748,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCECTerms",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8516,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8748,
                  "src": "3058:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8515,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "3058:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3057:21:31"
            },
            "returnParameters": {
              "id": 8520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8519,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8748,
                  "src": "3102:15:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CECTerms_$22799_memory_ptr",
                    "typeString": "struct CECTerms"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8518,
                    "name": "CECTerms",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22799,
                    "src": "3102:8:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CECTerms_$22799_storage_ptr",
                      "typeString": "struct CECTerms"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3101:17:31"
            },
            "scope": 9157,
            "src": "3028:1866:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8928,
              "nodeType": "Block",
              "src": "5047:1128:31",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 8759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8757,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8752,
                      "src": "5061:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "636f6e747261637454797065",
                      "id": 8758,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5077:14:31",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_3475328024b9533bb8cb87784de4e84b80d2bc2aa2f3af3c4e764c21f93cbb94",
                        "typeString": "literal_string \"contractType\""
                      },
                      "value": "contractType"
                    },
                    "src": "5061:30:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 8779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 8774,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8752,
                        "src": "5184:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "63616c656e646172",
                            "id": 8777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5208:10:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            },
                            "value": "calendar"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_f12295c6cff7c66c50482f7bee8dd63da0f387f76819ffea278d69c8f37485d1",
                              "typeString": "literal_string \"calendar\""
                            }
                          ],
                          "id": 8776,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5200:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 8775,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "5200:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 8778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5200:19:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "5184:35:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8794,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8752,
                          "src": "5312:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "636f6e7472616374526f6c65",
                              "id": 8797,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5336:14:31",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              },
                              "value": "contractRole"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_25827de09a431c20bbdc36b82f2598bebb6f799c13d479cbb6f07f3bb9ca40e8",
                                "typeString": "literal_string \"contractRole\""
                              }
                            ],
                            "id": 8796,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5328:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 8795,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "5328:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 8798,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5328:23:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "5312:39:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 8819,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8814,
                            "name": "attributeKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8752,
                            "src": "5444:12:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "646179436f756e74436f6e76656e74696f6e",
                                "id": 8817,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5468:20:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                },
                                "value": "dayCountConvention"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_fc7b88308ccbe85b1c4b2d02d6a35f6739a1bfca4c24367f2d327257de151e96",
                                  "typeString": "literal_string \"dayCountConvention\""
                                }
                              ],
                              "id": 8816,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5460:7:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 8815,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5460:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8818,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5460:29:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5444:45:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 8839,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 8834,
                              "name": "attributeKey",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8752,
                              "src": "5582:12:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "627573696e657373446179436f6e76656e74696f6e",
                                  "id": 8837,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5606:23:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  },
                                  "value": "businessDayConvention"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_stringliteral_905a4d95a2e27644bcaa74baefc28eed7d59efaa13569ee390a0c0252275c4b4",
                                    "typeString": "literal_string \"businessDayConvention\""
                                  }
                                ],
                                "id": 8836,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5598:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": {
                                  "id": 8835,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5598:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8838,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5598:32:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "5582:48:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 8859,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 8854,
                                "name": "attributeKey",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8752,
                                "src": "5723:12:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "656e644f664d6f6e7468436f6e76656e74696f6e",
                                    "id": 8857,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5747:22:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    },
                                    "value": "endOfMonthConvention"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_stringliteral_7346c59f41f8cf08825274933d2bc7789dd950b46f0976fd052a58183cd5a811",
                                      "typeString": "literal_string \"endOfMonthConvention\""
                                    }
                                  ],
                                  "id": 8856,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5739:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 8855,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5739:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8858,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5739:31:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "5723:47:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 8879,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 8874,
                                  "name": "attributeKey",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8752,
                                  "src": "5863:12:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "6372656469744576656e7454797065436f7665726564",
                                      "id": 8877,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5887:24:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_c7b2f9f1b113c1196d37a64fa1165104e45cc1c0437de39637a650ec56598dc5",
                                        "typeString": "literal_string \"creditEventTypeCovered\""
                                      },
                                      "value": "creditEventTypeCovered"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_c7b2f9f1b113c1196d37a64fa1165104e45cc1c0437de39637a650ec56598dc5",
                                        "typeString": "literal_string \"creditEventTypeCovered\""
                                      }
                                    ],
                                    "id": 8876,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5879:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 8875,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5879:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8878,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5879:33:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5863:49:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8899,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 8894,
                                    "name": "attributeKey",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8752,
                                    "src": "6005:12:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "6665654261736973",
                                        "id": 8897,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6029:10:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_eea180da691d6edf78efe2cd615a7555e8eac40a1a495599793625bfb3ba04ba",
                                          "typeString": "literal_string \"feeBasis\""
                                        },
                                        "value": "feeBasis"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_eea180da691d6edf78efe2cd615a7555e8eac40a1a495599793625bfb3ba04ba",
                                          "typeString": "literal_string \"feeBasis\""
                                        }
                                      ],
                                      "id": 8896,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "6021:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 8895,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6021:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8898,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "6021:19:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "6005:35:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 8919,
                                  "nodeType": "Block",
                                  "src": "6129:40:31",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 8916,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6156:1:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 8915,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "6150:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 8914,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6150:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8917,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6150:8:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "functionReturnParameters": 8756,
                                      "id": 8918,
                                      "nodeType": "Return",
                                      "src": "6143:15:31"
                                    }
                                  ]
                                },
                                "id": 8920,
                                "nodeType": "IfStatement",
                                "src": "6001:168:31",
                                "trueBody": {
                                  "id": 8913,
                                  "nodeType": "Block",
                                  "src": "6042:81:31",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "commonType": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                },
                                                "id": 8909,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                  "argumentTypes": null,
                                                  "baseExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                      "argumentTypes": null,
                                                      "id": 8904,
                                                      "name": "asset",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 8750,
                                                      "src": "6077:5:31",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                        "typeString": "struct Asset storage pointer"
                                                      }
                                                    },
                                                    "id": 8905,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "packedTerms",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 4457,
                                                    "src": "6077:17:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                      "typeString": "mapping(bytes32 => bytes32)"
                                                    }
                                                  },
                                                  "id": 8907,
                                                  "indexExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "656e756d73",
                                                    "id": 8906,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "6095:7:31",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                      "typeString": "literal_string \"enums\""
                                                    },
                                                    "value": "enums"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "nodeType": "IndexAccess",
                                                  "src": "6077:26:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                  }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">>",
                                                "rightExpression": {
                                                  "argumentTypes": null,
                                                  "hexValue": "313932",
                                                  "id": 8908,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "number",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "6107:3:31",
                                                  "subdenomination": null,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_192_by_1",
                                                    "typeString": "int_const 192"
                                                  },
                                                  "value": "192"
                                                },
                                                "src": "6077:33:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              ],
                                              "id": 8903,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "ElementaryTypeNameExpression",
                                              "src": "6069:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_uint256_$",
                                                "typeString": "type(uint256)"
                                              },
                                              "typeName": {
                                                "id": 8902,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "6069:7:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": null,
                                                  "typeString": null
                                                }
                                              }
                                            },
                                            "id": 8910,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "6069:42:31",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 8901,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "6063:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 8900,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6063:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8911,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6063:49:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "functionReturnParameters": 8756,
                                      "id": 8912,
                                      "nodeType": "Return",
                                      "src": "6056:56:31"
                                    }
                                  ]
                                }
                              },
                              "id": 8921,
                              "nodeType": "IfStatement",
                              "src": "5859:310:31",
                              "trueBody": {
                                "id": 8893,
                                "nodeType": "Block",
                                "src": "5914:81:31",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              },
                                              "id": 8889,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                  "argumentTypes": null,
                                                  "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8884,
                                                    "name": "asset",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8750,
                                                    "src": "5949:5:31",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                      "typeString": "struct Asset storage pointer"
                                                    }
                                                  },
                                                  "id": 8885,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberName": "packedTerms",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 4457,
                                                  "src": "5949:17:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                    "typeString": "mapping(bytes32 => bytes32)"
                                                  }
                                                },
                                                "id": 8887,
                                                "indexExpression": {
                                                  "argumentTypes": null,
                                                  "hexValue": "656e756d73",
                                                  "id": 8886,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "string",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "5967:7:31",
                                                  "subdenomination": null,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                    "typeString": "literal_string \"enums\""
                                                  },
                                                  "value": "enums"
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5949:26:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": ">>",
                                              "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "323030",
                                                "id": 8888,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5979:3:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_200_by_1",
                                                  "typeString": "int_const 200"
                                                },
                                                "value": "200"
                                              },
                                              "src": "5949:33:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            ],
                                            "id": 8883,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "ElementaryTypeNameExpression",
                                            "src": "5941:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_uint256_$",
                                              "typeString": "type(uint256)"
                                            },
                                            "typeName": {
                                              "id": 8882,
                                              "name": "uint256",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "5941:7:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": null,
                                                "typeString": null
                                              }
                                            }
                                          },
                                          "id": 8890,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "typeConversion",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "5941:42:31",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        ],
                                        "id": 8881,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "5935:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 8880,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "5935:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8891,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5935:49:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "functionReturnParameters": 8756,
                                    "id": 8892,
                                    "nodeType": "Return",
                                    "src": "5928:56:31"
                                  }
                                ]
                              }
                            },
                            "id": 8922,
                            "nodeType": "IfStatement",
                            "src": "5719:450:31",
                            "trueBody": {
                              "id": 8873,
                              "nodeType": "Block",
                              "src": "5772:81:31",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 8869,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 8864,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 8750,
                                                  "src": "5807:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 8865,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "5807:17:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 8867,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "656e756d73",
                                                "id": 8866,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5825:7:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                  "typeString": "literal_string \"enums\""
                                                },
                                                "value": "enums"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "5807:26:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "323038",
                                              "id": 8868,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "5837:3:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_208_by_1",
                                                "typeString": "int_const 208"
                                              },
                                              "value": "208"
                                            },
                                            "src": "5807:33:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 8863,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5799:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 8862,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "5799:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 8870,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5799:42:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 8861,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5793:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 8860,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5793:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8871,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5793:49:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "functionReturnParameters": 8756,
                                  "id": 8872,
                                  "nodeType": "Return",
                                  "src": "5786:56:31"
                                }
                              ]
                            }
                          },
                          "id": 8923,
                          "nodeType": "IfStatement",
                          "src": "5578:591:31",
                          "trueBody": {
                            "id": 8853,
                            "nodeType": "Block",
                            "src": "5632:81:31",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 8849,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 8844,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8750,
                                                "src": "5667:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 8845,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "5667:17:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 8847,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "656e756d73",
                                              "id": 8846,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "5685:7:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                                "typeString": "literal_string \"enums\""
                                              },
                                              "value": "enums"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "5667:26:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "323136",
                                            "id": 8848,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5697:3:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_216_by_1",
                                              "typeString": "int_const 216"
                                            },
                                            "value": "216"
                                          },
                                          "src": "5667:33:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 8843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "5659:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 8842,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "5659:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 8850,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5659:42:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 8841,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5653:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 8840,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5653:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8851,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5653:49:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "functionReturnParameters": 8756,
                                "id": 8852,
                                "nodeType": "Return",
                                "src": "5646:56:31"
                              }
                            ]
                          }
                        },
                        "id": 8924,
                        "nodeType": "IfStatement",
                        "src": "5440:729:31",
                        "trueBody": {
                          "id": 8833,
                          "nodeType": "Block",
                          "src": "5491:81:31",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        "id": 8829,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 8824,
                                              "name": "asset",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8750,
                                              "src": "5526:5:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                "typeString": "struct Asset storage pointer"
                                              }
                                            },
                                            "id": 8825,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "packedTerms",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 4457,
                                            "src": "5526:17:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                              "typeString": "mapping(bytes32 => bytes32)"
                                            }
                                          },
                                          "id": 8827,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "656e756d73",
                                            "id": 8826,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5544:7:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                              "typeString": "literal_string \"enums\""
                                            },
                                            "value": "enums"
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "5526:26:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "323234",
                                          "id": 8828,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5556:3:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_224_by_1",
                                            "typeString": "int_const 224"
                                          },
                                          "value": "224"
                                        },
                                        "src": "5526:33:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 8823,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5518:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 8822,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5518:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 8830,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5518:42:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8821,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5512:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 8820,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5512:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8831,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5512:49:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "functionReturnParameters": 8756,
                              "id": 8832,
                              "nodeType": "Return",
                              "src": "5505:56:31"
                            }
                          ]
                        }
                      },
                      "id": 8925,
                      "nodeType": "IfStatement",
                      "src": "5308:861:31",
                      "trueBody": {
                        "id": 8813,
                        "nodeType": "Block",
                        "src": "5353:81:31",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 8809,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 8804,
                                            "name": "asset",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8750,
                                            "src": "5388:5:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                              "typeString": "struct Asset storage pointer"
                                            }
                                          },
                                          "id": 8805,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "packedTerms",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 4457,
                                          "src": "5388:17:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "mapping(bytes32 => bytes32)"
                                          }
                                        },
                                        "id": 8807,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "hexValue": "656e756d73",
                                          "id": 8806,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5406:7:31",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                            "typeString": "literal_string \"enums\""
                                          },
                                          "value": "enums"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5388:26:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "323332",
                                        "id": 8808,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5418:3:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_232_by_1",
                                          "typeString": "int_const 232"
                                        },
                                        "value": "232"
                                      },
                                      "src": "5388:33:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 8803,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5380:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 8802,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5380:7:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 8810,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5380:42:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 8801,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5374:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 8800,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5374:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8811,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5374:49:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "functionReturnParameters": 8756,
                            "id": 8812,
                            "nodeType": "Return",
                            "src": "5367:56:31"
                          }
                        ]
                      }
                    },
                    "id": 8926,
                    "nodeType": "IfStatement",
                    "src": "5180:989:31",
                    "trueBody": {
                      "id": 8793,
                      "nodeType": "Block",
                      "src": "5221:81:31",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 8789,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8784,
                                          "name": "asset",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8750,
                                          "src": "5256:5:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                            "typeString": "struct Asset storage pointer"
                                          }
                                        },
                                        "id": 8785,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "packedTerms",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 4457,
                                        "src": "5256:17:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                          "typeString": "mapping(bytes32 => bytes32)"
                                        }
                                      },
                                      "id": 8787,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "656e756d73",
                                        "id": 8786,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5274:7:31",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                          "typeString": "literal_string \"enums\""
                                        },
                                        "value": "enums"
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "5256:26:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "323430",
                                      "id": 8788,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5286:3:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_240_by_1",
                                        "typeString": "int_const 240"
                                      },
                                      "value": "240"
                                    },
                                    "src": "5256:33:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 8783,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5248:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 8782,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5248:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 8790,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5248:42:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8781,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5242:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint8_$",
                                "typeString": "type(uint8)"
                              },
                              "typeName": {
                                "id": 8780,
                                "name": "uint8",
                                "nodeType": "ElementaryTypeName",
                                "src": "5242:5:31",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 8791,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5242:49:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "functionReturnParameters": 8756,
                          "id": 8792,
                          "nodeType": "Return",
                          "src": "5235:56:31"
                        }
                      ]
                    }
                  },
                  "id": 8927,
                  "nodeType": "IfStatement",
                  "src": "5057:1112:31",
                  "trueBody": {
                    "id": 8773,
                    "nodeType": "Block",
                    "src": "5093:81:31",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 8769,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8764,
                                        "name": "asset",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8750,
                                        "src": "5128:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                          "typeString": "struct Asset storage pointer"
                                        }
                                      },
                                      "id": 8765,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "packedTerms",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4457,
                                      "src": "5128:17:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                        "typeString": "mapping(bytes32 => bytes32)"
                                      }
                                    },
                                    "id": 8767,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "656e756d73",
                                      "id": 8766,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5146:7:31",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_b278827544161623100c7ba534fdbb66740db0b19d9030750980e623bf3b03aa",
                                        "typeString": "literal_string \"enums\""
                                      },
                                      "value": "enums"
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5128:26:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">>",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "323438",
                                    "id": 8768,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5158:3:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_248_by_1",
                                      "typeString": "int_const 248"
                                    },
                                    "value": "248"
                                  },
                                  "src": "5128:33:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 8763,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5120:7:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 8762,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5120:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 8770,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5120:42:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 8761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5114:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 8760,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "5114:5:31",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 8771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5114:49:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 8756,
                        "id": 8772,
                        "nodeType": "Return",
                        "src": "5107:56:31"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a5be46bb",
            "id": 8929,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetEnumValueForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8750,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8929,
                  "src": "4946:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8749,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "4946:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8752,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8929,
                  "src": "4967:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8751,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4967:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4945:43:31"
            },
            "returnParameters": {
              "id": 8756,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8755,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8929,
                  "src": "5036:5:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 8754,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5036:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5035:7:31"
            },
            "scope": 9157,
            "src": "4900:1275:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8943,
              "nodeType": "Block",
              "src": "6348:34:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 8940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6373:1:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 8939,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6365:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 8938,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "6365:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 8941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6365:10:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 8937,
                  "id": 8942,
                  "nodeType": "Return",
                  "src": "6358:17:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "cabb2429",
            "id": 8944,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetAddressValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8931,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8944,
                  "src": "6233:13:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8930,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6233:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8933,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8944,
                  "src": "6260:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8932,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6260:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6232:55:31"
            },
            "returnParameters": {
              "id": 8937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8936,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8944,
                  "src": "6335:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8935,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6335:7:31",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6334:9:31"
            },
            "scope": 9157,
            "src": "6181:201:31",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8958,
              "nodeType": "Block",
              "src": "6543:55:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8953,
                        "name": "asset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8946,
                        "src": "6560:5:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                          "typeString": "struct Asset storage pointer"
                        }
                      },
                      "id": 8954,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "packedTerms",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4457,
                      "src": "6560:17:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                        "typeString": "mapping(bytes32 => bytes32)"
                      }
                    },
                    "id": 8956,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8955,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8948,
                      "src": "6578:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6560:31:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 8952,
                  "id": 8957,
                  "nodeType": "Return",
                  "src": "6553:38:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a00aadbc",
            "id": 8959,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetBytes32ValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8946,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8959,
                  "src": "6440:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8945,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6440:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8948,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8959,
                  "src": "6461:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8947,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6461:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6439:43:31"
            },
            "returnParameters": {
              "id": 8952,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8951,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8959,
                  "src": "6530:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8950,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6530:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6529:9:31"
            },
            "scope": 9157,
            "src": "6388:210:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8976,
              "nodeType": "Block",
              "src": "6756:64:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8970,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8961,
                            "src": "6781:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 8971,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "6781:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 8973,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8972,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8963,
                          "src": "6799:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6781:31:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6773:7:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 8968,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6773:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 8974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6773:40:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8967,
                  "id": 8975,
                  "nodeType": "Return",
                  "src": "6766:47:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bb63c3b5",
            "id": 8977,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetUIntValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8961,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8977,
                  "src": "6653:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8960,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6653:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8963,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8977,
                  "src": "6674:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8962,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6674:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6652:43:31"
            },
            "returnParameters": {
              "id": 8967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8966,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8977,
                  "src": "6743:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8965,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6743:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6742:9:31"
            },
            "scope": 9157,
            "src": "6604:216:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8994,
              "nodeType": "Block",
              "src": "6976:63:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8988,
                            "name": "asset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8979,
                            "src": "7000:5:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                              "typeString": "struct Asset storage pointer"
                            }
                          },
                          "id": 8989,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "packedTerms",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4457,
                          "src": "7000:17:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                            "typeString": "mapping(bytes32 => bytes32)"
                          }
                        },
                        "id": 8991,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8990,
                          "name": "attributeKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8981,
                          "src": "7018:12:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7000:31:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6993:6:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": {
                        "id": 8986,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6993:6:31",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 8992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6993:39:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 8985,
                  "id": 8993,
                  "nodeType": "Return",
                  "src": "6986:46:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "26e7daac",
            "id": 8995,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetIntValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 8982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8979,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8995,
                  "src": "6874:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8978,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "6874:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8981,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8995,
                  "src": "6895:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8980,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6895:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6873:43:31"
            },
            "returnParameters": {
              "id": 8985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8984,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8995,
                  "src": "6964:6:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 8983,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6964:6:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6963:8:31"
            },
            "scope": 9157,
            "src": "6826:213:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9012,
              "nodeType": "Block",
              "src": "7213:42:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 9005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7233:1:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7238:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 9006,
                          "name": "P",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22474,
                          "src": "7236:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                            "typeString": "type(enum P)"
                          }
                        },
                        "id": 9008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7236:4:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 9009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7242:5:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9004,
                      "name": "IP",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22493,
                      "src": "7230:2:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_IP_$22493_storage_ptr_$",
                        "typeString": "type(struct IP storage pointer)"
                      }
                    },
                    "id": 9010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7230:18:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                      "typeString": "struct IP memory"
                    }
                  },
                  "functionReturnParameters": 9003,
                  "id": 9011,
                  "nodeType": "Return",
                  "src": "7223:25:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "80e1292c",
            "id": 9013,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetPeriodValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8997,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9013,
                  "src": "7096:13:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8996,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "7096:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8999,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9013,
                  "src": "7123:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7123:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7095:55:31"
            },
            "returnParameters": {
              "id": 9003,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9002,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9013,
                  "src": "7198:9:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IP_$22493_memory_ptr",
                    "typeString": "struct IP"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9001,
                    "name": "IP",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22493,
                    "src": "7198:2:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IP_$22493_storage_ptr",
                      "typeString": "struct IP"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7197:11:31"
            },
            "scope": 9157,
            "src": "7045:210:31",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9033,
              "nodeType": "Block",
              "src": "7429:49:31",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 9023,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7450:1:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7455:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 9024,
                          "name": "P",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22474,
                          "src": "7453:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_P_$22474_$",
                            "typeString": "type(enum P)"
                          }
                        },
                        "id": 9026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7453:4:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7461:1:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 9027,
                          "name": "S",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22477,
                          "src": "7459:1:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_S_$22477_$",
                            "typeString": "type(enum S)"
                          }
                        },
                        "id": 9029,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7459:4:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_S_$22477",
                          "typeString": "enum S"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 9030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7465:5:31",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_enum$_P_$22474",
                          "typeString": "enum P"
                        },
                        {
                          "typeIdentifier": "t_enum$_S_$22477",
                          "typeString": "enum S"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9022,
                      "name": "IPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22486,
                      "src": "7446:3:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_IPS_$22486_storage_ptr_$",
                        "typeString": "type(struct IPS storage pointer)"
                      }
                    },
                    "id": 9031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7446:25:31",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                      "typeString": "struct IPS memory"
                    }
                  },
                  "functionReturnParameters": 9021,
                  "id": 9032,
                  "nodeType": "Return",
                  "src": "7439:32:31"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "81555221",
            "id": 9034,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetCycleValueForForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9015,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9034,
                  "src": "7311:13:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9014,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "7311:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9017,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9034,
                  "src": "7338:7:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9016,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7338:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7310:55:31"
            },
            "returnParameters": {
              "id": 9021,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9020,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9034,
                  "src": "7413:10:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IPS_$22486_memory_ptr",
                    "typeString": "struct IPS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9019,
                    "name": "IPS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22486,
                    "src": "7413:3:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IPS_$22486_storage_ptr",
                      "typeString": "struct IPS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7412:12:31"
            },
            "scope": 9157,
            "src": "7261:217:31",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9155,
              "nodeType": "Block",
              "src": "7665:1173:31",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 9048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 9043,
                      "name": "attributeKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9038,
                      "src": "7679:12:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "636f6e74726163745265666572656e63655f31",
                          "id": 9046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7703:21:31",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          },
                          "value": "contractReference_1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_fccc1e0ba97688e4461de29822b04128d8dc5fa1732f7c98f11aef3737c54c21",
                            "typeString": "literal_string \"contractReference_1\""
                          }
                        ],
                        "id": 9045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7695:7:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 9044,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "7695:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 9047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7695:30:31",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7679:46:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 9094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 9089,
                        "name": "attributeKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9038,
                        "src": "8156:12:31",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "636f6e74726163745265666572656e63655f32",
                            "id": 9092,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8180:21:31",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            },
                            "value": "contractReference_2"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_01acef38074a0e0d5976473f7e34539badf35a9665d3e6a9e9fe377f17f1ea4f",
                              "typeString": "literal_string \"contractReference_2\""
                            }
                          ],
                          "id": 9091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8172:7:31",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 9090,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8172:7:31",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 9093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8172:30:31",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "8156:46:31",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 9152,
                      "nodeType": "Block",
                      "src": "8629:203:31",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9138,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8693:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9137,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8685:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 9136,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8685:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 9139,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8685:10:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9142,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8721:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9141,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8713:7:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 9140,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8713:7:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": null,
                                      "typeString": null
                                    }
                                  }
                                },
                                "id": 9143,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8713:10:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9145,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8763:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9144,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "8741:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 9146,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8741:24:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 9148,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8805:1:31",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 9147,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "8783:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 9149,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8783:24:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 9135,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "8650:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 9150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8650:171:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 9042,
                          "id": 9151,
                          "nodeType": "Return",
                          "src": "8643:178:31"
                        }
                      ]
                    },
                    "id": 9153,
                    "nodeType": "IfStatement",
                    "src": "8152:680:31",
                    "trueBody": {
                      "id": 9134,
                      "nodeType": "Block",
                      "src": "8204:419:31",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 9096,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9036,
                                    "src": "8260:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 9097,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "8260:17:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 9099,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a656374",
                                  "id": 9098,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8278:28:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_9bb96f9c290116f4d022b4186bd9f5b6fa13273cc416c832e118c3ccac41749f",
                                    "typeString": "literal_string \"contractReference_2_object\""
                                  },
                                  "value": "contractReference_2_object"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8260:47:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 9100,
                                    "name": "asset",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9036,
                                    "src": "8325:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                      "typeString": "struct Asset storage pointer"
                                    }
                                  },
                                  "id": 9101,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "packedTerms",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4457,
                                  "src": "8325:17:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                    "typeString": "mapping(bytes32 => bytes32)"
                                  }
                                },
                                "id": 9103,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "636f6e74726163745265666572656e63655f325f6f626a65637432",
                                  "id": 9102,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "string",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8343:29:31",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_stringliteral_db495cf7cb2ad3ae62b2d115466ba0e84837dc00122d71420e5c14042cb08969",
                                    "typeString": "literal_string \"contractReference_2_object2\""
                                  },
                                  "value": "contractReference_2_object2"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8325:48:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 9114,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 9109,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 9036,
                                                  "src": "8427:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 9110,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "8427:17:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 9112,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 9111,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8445:31:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "8427:50:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "3136",
                                              "id": 9113,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8481:2:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "8427:56:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 9108,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8419:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 9107,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8419:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 9115,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8419:65:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 9106,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8413:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 9105,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8413:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 9116,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8413:72:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 9104,
                                  "name": "ContractReferenceType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22519,
                                  "src": "8391:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                    "typeString": "type(enum ContractReferenceType)"
                                  }
                                },
                                "id": 9117,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8391:95:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            "id": 9128,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 9123,
                                                  "name": "asset",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 9036,
                                                  "src": "8540:5:31",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                    "typeString": "struct Asset storage pointer"
                                                  }
                                                },
                                                "id": 9124,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "packedTerms",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 4457,
                                                "src": "8540:17:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                  "typeString": "mapping(bytes32 => bytes32)"
                                                }
                                              },
                                              "id": 9126,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "636f6e74726163745265666572656e63655f325f747970655f726f6c65",
                                                "id": 9125,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8558:31:31",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_stringliteral_dac765d874e621e7e94f4432698dfe74a4a4da2feb84a2392f0c93a861b3cccf",
                                                  "typeString": "literal_string \"contractReference_2_type_role\""
                                                },
                                                "value": "contractReference_2_type_role"
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "8540:50:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">>",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "38",
                                              "id": 9127,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8594:1:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "8540:55:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 9122,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8532:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 9121,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "8532:7:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 9129,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8532:64:31",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 9120,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "8526:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 9119,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8526:5:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 9130,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8526:71:31",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 9118,
                                  "name": "ContractReferenceRole",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22525,
                                  "src": "8504:21:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                    "typeString": "type(enum ContractReferenceRole)"
                                  }
                                },
                                "id": 9131,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8504:94:31",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                  "typeString": "enum ContractReferenceType"
                                },
                                {
                                  "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                  "typeString": "enum ContractReferenceRole"
                                }
                              ],
                              "id": 9095,
                              "name": "ContractReference",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22632,
                              "src": "8225:17:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                                "typeString": "type(struct ContractReference storage pointer)"
                              }
                            },
                            "id": 9132,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8225:387:31",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                              "typeString": "struct ContractReference memory"
                            }
                          },
                          "functionReturnParameters": 9042,
                          "id": 9133,
                          "nodeType": "Return",
                          "src": "8218:394:31"
                        }
                      ]
                    }
                  },
                  "id": 9154,
                  "nodeType": "IfStatement",
                  "src": "7675:1157:31",
                  "trueBody": {
                    "id": 9088,
                    "nodeType": "Block",
                    "src": "7727:419:31",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9050,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9036,
                                  "src": "7783:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 9051,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "7783:17:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 9053,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a656374",
                                "id": 9052,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7801:28:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_7c1933bdc2ba2dc8293b0bad1a30e92cfbae736e282746b218544ab4bd64526e",
                                  "typeString": "literal_string \"contractReference_1_object\""
                                },
                                "value": "contractReference_1_object"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7783:47:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9054,
                                  "name": "asset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9036,
                                  "src": "7848:5:31",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                    "typeString": "struct Asset storage pointer"
                                  }
                                },
                                "id": 9055,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "packedTerms",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4457,
                                "src": "7848:17:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                  "typeString": "mapping(bytes32 => bytes32)"
                                }
                              },
                              "id": 9057,
                              "indexExpression": {
                                "argumentTypes": null,
                                "hexValue": "636f6e74726163745265666572656e63655f315f6f626a65637432",
                                "id": 9056,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7866:29:31",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_e8b517926b19f8aefd619f1aaef8f5b092b0c45cc08c9dcc8c764a15b7bf2b52",
                                  "typeString": "literal_string \"contractReference_1_object2\""
                                },
                                "value": "contractReference_1_object2"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7848:48:31",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 9068,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 9063,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9036,
                                                "src": "7950:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 9064,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "7950:17:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 9066,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 9065,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7968:31:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "7950:50:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3136",
                                            "id": 9067,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8004:2:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_16_by_1",
                                              "typeString": "int_const 16"
                                            },
                                            "value": "16"
                                          },
                                          "src": "7950:56:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 9062,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "7942:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 9061,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "7942:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 9069,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "7942:65:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 9060,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7936:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 9059,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7936:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 9070,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7936:72:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 9058,
                                "name": "ContractReferenceType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22519,
                                "src": "7914:21:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceType_$22519_$",
                                  "typeString": "type(enum ContractReferenceType)"
                                }
                              },
                              "id": 9071,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7914:95:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          "id": 9082,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 9077,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9036,
                                                "src": "8063:5:31",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                                                  "typeString": "struct Asset storage pointer"
                                                }
                                              },
                                              "id": 9078,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "packedTerms",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 4457,
                                              "src": "8063:17:31",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "mapping(bytes32 => bytes32)"
                                              }
                                            },
                                            "id": 9080,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "636f6e74726163745265666572656e63655f315f747970655f726f6c65",
                                              "id": 9079,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8081:31:31",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_a35214ff074a6fa25ee101086c1892d430f3ce8761d4c7fd122b057fd36f5c29",
                                                "typeString": "literal_string \"contractReference_1_type_role\""
                                              },
                                              "value": "contractReference_1_type_role"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8063:50:31",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">>",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "38",
                                            "id": 9081,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8117:1:31",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            },
                                            "value": "8"
                                          },
                                          "src": "8063:55:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 9076,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "8055:7:31",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": {
                                          "id": 9075,
                                          "name": "uint256",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "8055:7:31",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 9083,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "8055:64:31",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 9074,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "8049:5:31",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 9073,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "8049:5:31",
                                      "typeDescriptions": {
                                        "typeIdentifier": null,
                                        "typeString": null
                                      }
                                    }
                                  },
                                  "id": 9084,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "8049:71:31",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 9072,
                                "name": "ContractReferenceRole",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22525,
                                "src": "8027:21:31",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ContractReferenceRole_$22525_$",
                                  "typeString": "type(enum ContractReferenceRole)"
                                }
                              },
                              "id": 9085,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8027:94:31",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceType_$22519",
                                "typeString": "enum ContractReferenceType"
                              },
                              {
                                "typeIdentifier": "t_enum$_ContractReferenceRole_$22525",
                                "typeString": "enum ContractReferenceRole"
                              }
                            ],
                            "id": 9049,
                            "name": "ContractReference",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22632,
                            "src": "7748:17:31",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_ContractReference_$22632_storage_ptr_$",
                              "typeString": "type(struct ContractReference storage pointer)"
                            }
                          },
                          "id": 9086,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7748:387:31",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                            "typeString": "struct ContractReference memory"
                          }
                        },
                        "functionReturnParameters": 9042,
                        "id": 9087,
                        "nodeType": "Return",
                        "src": "7741:394:31"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bce57f1b",
            "id": 9156,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeAndGetContractReferenceValueForCECAttribute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 9039,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9036,
                  "mutability": "mutable",
                  "name": "asset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9156,
                  "src": "7543:19:31",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                    "typeString": "struct Asset"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9035,
                    "name": "Asset",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4466,
                    "src": "7543:5:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Asset_$4466_storage_ptr",
                      "typeString": "struct Asset"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9038,
                  "mutability": "mutable",
                  "name": "attributeKey",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9156,
                  "src": "7565:20:31",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9037,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7565:7:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7542:45:31"
            },
            "returnParameters": {
              "id": 9042,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9041,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 9156,
                  "src": "7635:24:31",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ContractReference_$22632_memory_ptr",
                    "typeString": "struct ContractReference"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 9040,
                    "name": "ContractReference",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22632,
                    "src": "7635:17:31",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ContractReference_$22632_storage_ptr",
                      "typeString": "struct ContractReference"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7634:26:31"
            },
            "scope": 9157,
            "src": "7484:1354:31",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 9158,
        "src": "193:8647:31"
      }
    ],
    "src": "41:8799:31"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.11+commit.5ef660b1.Emscripten.clang"
  },
  "networks": {
    "4": {
      "events": {},
      "links": {},
      "address": "0xE2A368e30ea6e44751CB0F40bA2933d8aA0f2df8",
      "transactionHash": "0x558924eaf0f39f44d8b0103f50fc224e1cf198f6bc1ea6e66ac0648b26fa5f8b"
    },
    "5": {
      "events": {},
      "links": {},
      "address": "0x1b627A7dFd81bB6d6dc293FF5146503FEc36DA60",
      "transactionHash": "0x35bb278d3ac71c510de31122e9aec442b9546429c09e9f46d61ff332c2335476"
    },
    "1994": {
      "events": {},
      "links": {},
      "address": "0xeBEABDe323B77c0f6EBc01e5C61d586D201636F3",
      "transactionHash": "0x2061075f206c2ada4b02bfc7c0f443d313aff4c324c94eaf3a77dd77d94ceb13"
    }
  },
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-08-12T09:47:17.787Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "decodeAndGetCECTerms(Asset storage)": {
        "details": "Decode and loads CECTerms"
      },
      "encodeAndSetCECTerms(Asset storage,CECTerms)": {
        "details": "Tightly pack and store only non-zero overwritten terms (LifecycleTerms)"
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "encodeAndSetCECTerms(Asset storage,CECTerms)": {
        "notice": "All non zero values of the overwrittenTerms object are stored. It does not check if overwrittenAttributesMap actually marks attribute as overwritten."
      }
    },
    "version": 1
  }
}