diff options
-rw-r--r-- | doc/sample_json_model/RBAModel.json | 1159 |
1 files changed, 1159 insertions, 0 deletions
diff --git a/doc/sample_json_model/RBAModel.json b/doc/sample_json_model/RBAModel.json new file mode 100644 index 0000000..12e884e --- /dev/null +++ b/doc/sample_json_model/RBAModel.json @@ -0,0 +1,1159 @@ +{ + "root":{ + "model":"", + "template":"02.00.00", + "areas":[ + { + "name":"SpeedMeterArea", + "visibility":-1, + "arbitrationPolicy":"LAST_COME_FIRST", + "zorder":0, + "size":[ + { + "name":"SpeedMeterSize", + "width":300, + "height":200 + } + ] + }, + { + "name":"TachometerArea", + "visibility":-1, + "arbitrationPolicy":"LAST_COME_FIRST", + "zorder":0, + "size":[ + { + "name":"TachometerSize", + "width":200, + "height":100 + } + ] + }, + { + "name":"IntMessageArea", + "visibility":1, + "arbitrationPolicy":"PRIORITY_LAST_COME_FIRST", + "zorder":2, + "size":[ + { + "name":"IntMessageSize", + "width":400, + "height":100 + } + ] + }, + { + "name":"OutsideTemperatureArea", + "visibility":0, + "arbitrationPolicy":"PRIORITY_LAST_COME_FIRST", + "zorder":1, + "size":[ + { + "name":"OutsideTemperatureSize", + "width":100, + "height":100 + } + ] + }, + { + "name":"AudioArea", + "visibility":-1, + "arbitrationPolicy":"LAST_COME_FIRST", + "zorder":0, + "size":[ + { + "name":"AudioSize", + "width":300, + "height":100 + } + ] + }, + { + "name":"HUD_OutsideTemperatureArea", + "visibility":-1, + "arbitrationPolicy":"LAST_COME_FIRST", + "zorder":0, + "size":[ + { + "name":"HUD_OutsideTemperatureSize", + "width":100, + "height":50 + } + ] + }, + { + "name":"HUD_SpeedMeterArea", + "visibility":0, + "arbitrationPolicy":"PRIORITY_LAST_COME_FIRST", + "zorder":1, + "size":[ + { + "name":"HUD_SpeedMeterSize", + "width":150, + "height":50 + } + ] + }, + { + "name":"HUD_TachometerArea", + "visibility":-1, + "arbitrationPolicy":"PRIORITY_LAST_COME_FIRST", + "zorder":0, + "size":[ + { + "name":"HUD_TachometerSize", + "width":100, + "height":50 + } + ] + }, + { + "name":"HUD_IntMessageArea", + "visibility":1, + "arbitrationPolicy":"PRIORITY_LAST_COME_FIRST", + "zorder":2, + "size":[ + { + "name":"HUD_IntMessageSize", + "width":400, + "height":50 + } + ] + } + ], + "zones":[ + { + "name":"IntSoundZone", + "arbitrationPolicy":"DEFAULT", + "priority":10 + }, + { + "name":"BaseSoundZone", + "arbitrationPolicy":"DEFAULT", + "priority":10 + } + ], + "viewcontents":[ + { + "name":"SpeedMeter", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"SpeedMeterSize", + "width":300, + "height":200 + }, + { + "name":"HUD_SpeedMeterSize", + "width":150, + "height":50 + } + ], + "states":[ + { + "name":"NORMAL", + "priority":10 + } + ], + "allocatable":[ + "SpeedMeterArea:Area", + "HUD_SpeedMeterArea:Area" + ] + }, + { + "name":"Tachometer", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"TachometerSize", + "width":200, + "height":100 + }, + { + "name":"HUD_TachometerSize", + "width":100, + "height":50 + } + ], + "states":[ + { + "name":"NORMAL", + "priority":10 + } + ], + "allocatable":[ + "TachometerArea:Area", + "HUD_TachometerArea:Area" + ] + }, + { + "name":"OutsideTemperature", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"OutsideTemperatureSize", + "width":100, + "height":100 + }, + { + "name":"HUD_OutsideTemperatureSize", + "width":100, + "height":50 + } + ], + "states":[ + { + "name":"NORMAL", + "priority":10 + } + ], + "allocatable":[ + "OutsideTemperatureArea:Area", + "HUD_OutsideTemperatureArea:Area" + ] + }, + { + "name":"RoadFreezing", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"OutsideTemperatureSize", + "width":100, + "height":100 + } + ], + "states":[ + { + "name":"Caution", + "priority":10 + } + ], + "allocatable":[ + "OutsideTemperatureArea:Area" + ] + }, + { + "name":"PCS", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"IntMessageSize", + "width":400, + "height":100 + } + ], + "states":[ + { + "name":"BrakeWarning", + "priority":13 + }, + { + "name":"BrakeCaution", + "priority":12 + } + ], + "allocatable":[ + "IntMessageArea:Area", + "HUD_IntMessageArea:Area" + ] + }, + { + "name":"TEL", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"IntMessageSize", + "width":400, + "height":100 + } + ], + "states":[ + { + "name":"IncomingCall", + "priority":11 + } + ], + "allocatable":[ + "IntMessageArea:Area", + "HUD_IntMessageArea:Area" + ] + }, + { + "name":"InfraCoordination", + "loserType":"GOOD_LOSER", + "size":[ + { + "name":"IntMessageSize", + "width":400, + "height":100 + } + ], + "states":[ + { + "name":"EncounterCaution", + "priority":10 + } + ], + "allocatable":[ + "IntMessageArea:Area", + "HUD_IntMessageArea:Area" + ] + }, + { + "name":"WeatherForecast", + "loserType":"DO_NOT_GIVEUP_UNTIL_WIN", + "size":[ + { + "name":"IntMessageSize", + "width":400, + "height":100 + } + ], + "states":[ + { + "name":"Vicinity", + "priority":10 + } + ], + "allocatable":[ + "IntMessageArea:Area", + "HUD_IntMessageArea:Area" + ] + }, + { + "name":"Audio", + "loserType":"NEVER_GIVEUP", + "size":[ + { + "name":"AudioSize", + "width":300, + "height":100 + } + ], + "states":[ + { + "name":"NORMAL", + "priority":10 + } + ], + "allocatable":[ + "AudioArea:Area" + ] + } + ], + "soundcontents":[ + { + "name":"GuideVoice", + "loserType":"NEVER_GIVEUP", + "states":[ + { + "name":"NORMAL", + "priority":11 + } + ], + "allocatable":[ + "IntSoundZone:Zone" + ] + }, + { + "name":"Music", + "loserType":"NEVER_GIVEUP", + "states":[ + { + "name":"NORMAL", + "priority":10 + } + ], + "allocatable":[ + "BaseSoundZone:Zone" + ] + }, + { + "name":"Ringtone", + "loserType":"NEVER_GIVEUP", + "states":[ + { + "name":"NORMAL", + "priority":12 + } + ], + "allocatable":[ + "IntSoundZone:Zone" + ] + }, + { + "name":"AlertSound", + "loserType":"NEVER_GIVEUP", + "states":[ + { + "name":"NORMAL", + "priority":9999 + } + ], + "allocatable":[ + "IntSoundZone:Zone" + ] + } + ], + "displays":[ + { + "name":"Sample_METER", + "size":{ + "name":"Sample_METER_FULLSCREEN", + "width":500, + "height":400 + }, + "PositionContainer":[ + { + "x":100, + "y":100, + "basePoint":"LEFT_TOP", + "areaReference":"SpeedMeterArea" + }, + { + "x":300, + "y":0, + "basePoint":"LEFT_TOP", + "areaReference":"TachometerArea" + }, + { + "x":50, + "y":250, + "basePoint":"LEFT_TOP", + "areaReference":"IntMessageArea" + }, + { + "x":50, + "y":50, + "basePoint":"LEFT_TOP", + "areaReference":"OutsideTemperatureArea" + }, + { + "x":100, + "y":300, + "basePoint":"LEFT_TOP", + "areaReference":"AudioArea" + } + ] + }, + { + "name":"Sample_HUD", + "size":{ + "name":"Sample_HUD_FULLSCREEN", + "width":500, + "height":150 + }, + "PositionContainer":[ + { + "x":50, + "y":50, + "basePoint":"LEFT_TOP", + "areaReference":"HUD_SpeedMeterArea" + }, + { + "x":225, + "y":50, + "basePoint":"LEFT_TOP", + "areaReference":"HUD_TachometerArea" + }, + { + "x":350, + "y":50, + "basePoint":"LEFT_TOP", + "areaReference":"HUD_OutsideTemperatureArea" + }, + { + "x":50, + "y":75, + "basePoint":"LEFT_TOP", + "areaReference":"HUD_IntMessageArea" + } + ] + } + ], + "areasets":[ + { + "name":"OtherArea", + "target":[ + "OutsideTemperatureArea", + "SpeedMeterArea", + "TachometerArea" + ] + }, + { + "name":"AllHUDArea", + "target":[ + "HUD_SpeedMeterArea", + "HUD_OutsideTemperatureArea", + "HUD_TachometerArea", + "HUD_IntMessageArea" + ] + }, + { + "name":"SpeedMeterAreaGroup", + "target":[ + "SpeedMeterArea", + "HUD_SpeedMeterArea" + ] + }, + { + "name":"TachometerAreaGroup", + "target":[ + "TachometerArea", + "HUD_TachometerArea" + ] + }, + { + "name":"OutsideTemperatureAreaGroup", + "target":[ + "OutsideTemperatureArea", + "HUD_OutsideTemperatureArea" + ] + }, + { + "name":"InterruptMessageAreaGroup", + "target":[ + "IntMessageArea", + "HUD_IntMessageArea" + ] + } + ], + "viewcontentsets":[ + { + "name":"InterruptContentGroup", + "target":[ + "PCS", + "TEL", + "InfraCoordination", + "WeatherForecast" + ] + } + ], + "soundcontentsets":[ + { + "name":"IntSoundContentsGroup", + "target":[ + "GuideVoice", + "Ringtone", + "AlertSound" + ] + } + ], + "scenes":[ + { + "name":"AutoDriveScene", + "global":"false" + }, + { + "name":"HUDoffScene", + "global":"false" + } + ], + "constraints":[ + { + "class":"Constraint", + "name":"Hidden_area_for_PCS_interrupts", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsVisible", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"PCS" + }] + }, + { + "class":"ForAllOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SET_OF_AREA", + "refObject":"OtherArea" + }], + "lambda": + { + "class":"LambdaExpression", + "type":"LAMBDA", + "x": + { + "class":"Variable", + "name":"x" + }, + "bodyText": + { + "class":"IsHidden", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"x" + }] + } + } + }] + } + }, + { + "class":"Constraint", + "name":"Duplicate_display_of_outside_temperatures", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsDisplayed", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"OutsideTemperatureArea" + }] + }, + { + "class":"IsHidden", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"HUD_OutsideTemperatureArea" + }] + }] + } + }, + { + "class":"Constraint", + "name":"Hidden_HUD_when_HUD_is_power_off", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsOn", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SCENE", + "refObject":"HUDoffScene" + }] + }, + { + "class":"ForAllOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SET_OF_AREA", + "refObject":"AllHUDArea" + }], + "lambda": + { + "class":"LambdaExpression", + "type":"LAMBDA", + "x": + { + "class":"Variable", + "name":"x" + }, + "bodyText": + { + "class":"IsHidden", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"x" + }] + } + } + }] + } + }, + { + "class":"Constraint", + "name":"PCS_is_not_displayed_while_TEL_is_displayed", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsVisible", + "type":"BOOLEAN", + "operand":[ + { + "class":"PreviousModifier", + "type":"CONTENT", + "objReference": + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"TEL" + } + }] + }, + { + "class":"NotOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsVisible", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"PCS" + }] + }] + }] + } + }, + { + "class":"Constraint", + "name":"Navigation_voice_ringtone_priority_constraint", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"OrOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsSounding", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SOUND", + "refObject":"GuideVoice" + }] + }, + { + "class":"IsSounding", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SOUND", + "refObject":"Ringtone" + }] + }] + }, + { + "class":"IsAttenuated", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"ZONE", + "refObject":"BaseSoundZone" + }] + }] + } + }, + { + "class":"Constraint", + "name":"Warning_sound_top_priority_constraint", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsSounding", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SOUND", + "refObject":"AlertSound" + }] + }, + { + "class":"IsMuted", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"ZONE", + "refObject":"BaseSoundZone" + }] + }] + } + }, + { + "class":"Constraint", + "name":"View_and_sound_synchronization_constraints", + "runtime":"true", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsVisible", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"Audio" + }] + }, + { + "class":"IsSounding", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"SOUND", + "refObject":"Music" + }] + }] + } + }, + { + "class":"Constraint", + "name":"Offline_constraints_to_detect_unintended_behavior", + "runtime":"false", + "expression": + { + "class":"ForAllOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"AllInstanceOfViewContent", + "type":"SET_OF_CONTENT" + }], + "lambda": + { + "class":"LambdaExpression", + "type":"LAMBDA", + "x": + { + "class":"Variable", + "name":"x" + }, + "bodyText": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"AndOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"NotOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsVisible", + "type":"BOOLEAN", + "operand":[ + { + "class":"PreviousModifier", + "type":"CONTENT", + "objReference": + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"x" + } + }] + }] + }, + { + "class":"IsVisible", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"x" + }] + }] + }, + { + "class":"OrOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"NotOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsActive", + "type":"BOOLEAN", + "operand":[ + { + "class":"PreviousModifier", + "type":"CONTENT", + "objReference": + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"x" + } + }] + }] + }, + { + "class":"ExistsOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"GetAllocatables", + "type":"SET_OF_AREA", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"x" + }] + }], + "lambda": + { + "class":"LambdaExpression", + "type":"LAMBDA", + "x": + { + "class":"Variable", + "name":"a" + }, + "bodyText": + { + "class":"AndOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectCompare", + "type":"BOOLEAN", + "operand":[ + { + "class":"DisplayingContent", + "type":"CONTENT", + "operand":[ + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"a" + }] + }, + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"x" + }] + }, + { + "class":"OrOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"AndOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsDisplayed", + "type":"BOOLEAN", + "operand":[ + { + "class":"PreviousModifier", + "type":"AREA", + "objReference": + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"a" + } + }] + }, + { + "class":"NotOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsActive", + "type":"BOOLEAN", + "operand":[ + { + "class":"DisplayingContent", + "type":"CONTENT", + "operand":[ + { + "class":"PreviousModifier", + "type":"AREA", + "objReference": + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"a" + } + }] + }] + }] + }] + }, + { + "class":"IsHidden", + "type":"BOOLEAN", + "operand":[ + { + "class":"PreviousModifier", + "type":"AREA", + "objReference": + { + "class":"ObjectReference", + "type":"AREA", + "refObject":"a" + } + }] + }] + }] + } + } + }] + }] + } + } + } + } + ], + "postconstraints":[ + { + "class":"PostConstraint", + "name":"Post_processing_constraints_that_make_infrastructure_coordination_stand_by", + "expression": + { + "class":"ImpliesOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsDefeatedBy", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"InfraCoordination" + }, + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"TEL" + }] + }, + { + "class":"NotOperator", + "type":"BOOLEAN", + "operand":[ + { + "class":"IsCanceled", + "type":"BOOLEAN", + "operand":[ + { + "class":"ObjectReference", + "type":"CONTENT", + "refObject":"InfraCoordination" + }] + }] + }] + } + } + ], + "area_constraint_map":[ + {"SpeedMeterArea":[]}, + {"TachometerArea":[]}, + {"IntMessageArea":["Hidden_area_for_PCS_interrupts","PCS_is_not_displayed_while_TEL_is_displayed"]}, + {"OutsideTemperatureArea":["Duplicate_display_of_outside_temperatures"]}, + {"AudioArea":["View_and_sound_synchronization_constraints"]}, + {"HUD_OutsideTemperatureArea":[]}, + {"HUD_SpeedMeterArea":[]}, + {"HUD_TachometerArea":[]}, + {"HUD_IntMessageArea":["Hidden_area_for_PCS_interrupts","PCS_is_not_displayed_while_TEL_is_displayed"]} + ], + "area_hidden_true_check_constraint_map":[ + {"SpeedMeterArea":["Hidden_area_for_PCS_interrupts"]}, + {"TachometerArea":["Hidden_area_for_PCS_interrupts"]}, + {"IntMessageArea":["Hidden_area_for_PCS_interrupts","PCS_is_not_displayed_while_TEL_is_displayed"]}, + {"OutsideTemperatureArea":["Hidden_area_for_PCS_interrupts"]}, + {"AudioArea":[]}, + {"HUD_OutsideTemperatureArea":["Hidden_HUD_when_HUD_is_power_off"]}, + {"HUD_SpeedMeterArea":["Hidden_HUD_when_HUD_is_power_off"]}, + {"HUD_TachometerArea":["Hidden_HUD_when_HUD_is_power_off"]}, + {"HUD_IntMessageArea":["Hidden_area_for_PCS_interrupts","Hidden_HUD_when_HUD_is_power_off","PCS_is_not_displayed_while_TEL_is_displayed"]} + ], + "area_hidden_false_check_constraint_map":[ + {"SpeedMeterArea":["Hidden_area_for_PCS_interrupts"]}, + {"TachometerArea":["Hidden_area_for_PCS_interrupts"]}, + {"IntMessageArea":[]}, + {"OutsideTemperatureArea":["Hidden_area_for_PCS_interrupts"]}, + {"AudioArea":[]}, + {"HUD_OutsideTemperatureArea":["Duplicate_display_of_outside_temperatures","Hidden_HUD_when_HUD_is_power_off"]}, + {"HUD_SpeedMeterArea":["Hidden_HUD_when_HUD_is_power_off"]}, + {"HUD_TachometerArea":["Hidden_HUD_when_HUD_is_power_off"]}, + {"HUD_IntMessageArea":["Hidden_HUD_when_HUD_is_power_off"]} + ], + "zone_constraint_map":[ + {"IntSoundZone":["Navigation_voice_ringtone_priority_constraint","Warning_sound_top_priority_constraint"]}, + {"BaseSoundZone":["View_and_sound_synchronization_constraints"]} + ], + "zone_mute_true_check_constraint_map":[ + {"IntSoundZone":[]}, + {"BaseSoundZone":["View_and_sound_synchronization_constraints"]} + ], + "zone_mute_false_check_constraint_map":[ + {"IntSoundZone":[]}, + {"BaseSoundZone":["Warning_sound_top_priority_constraint"]} + ], + "zone_attenuate_true_check_constraint_map":[ + {"IntSoundZone":[]}, + {"BaseSoundZone":[]} + ], + "zone_attenuate_false_check_constraint_map":[ + {"IntSoundZone":[]}, + {"BaseSoundZone":["Navigation_voice_ringtone_priority_constraint"]} ], + "content_allocatables_map":[ + {"SpeedMeter":["HUD_SpeedMeterArea","SpeedMeterArea"]}, + {"Tachometer":["HUD_TachometerArea","TachometerArea"]}, + {"OutsideTemperature":["HUD_OutsideTemperatureArea","OutsideTemperatureArea"]}, + {"RoadFreezing":["OutsideTemperatureArea"]}, + {"PCS":["HUD_IntMessageArea","IntMessageArea"]}, + {"TEL":["HUD_IntMessageArea","IntMessageArea"]}, + {"InfraCoordination":["HUD_IntMessageArea","IntMessageArea"]}, + {"WeatherForecast":["HUD_IntMessageArea","IntMessageArea"]}, + {"Audio":["AudioArea"]}, + {"GuideVoice":["IntSoundZone"]}, + {"Music":["BaseSoundZone"]}, + {"Ringtone":["IntSoundZone"]}, + {"AlertSound":["IntSoundZone"]} + ], + "scene_allocatables_map":[ + {"AutoDriveScene":[]}, + {"HUDoffScene":["HUD_IntMessageArea","HUD_OutsideTemperatureArea","HUD_SpeedMeterArea","HUD_TachometerArea"]} + ] + } +} |