54bb838716
This logic that any GCE CPU *SAN bot is implicitly a BonusConfigs bot is confusing... make it explicit. This also means we can make BonusConfigs CPU bots run disjoint work like the BonusConfigs GPU bots do. No need to run the default configs redundantly. Change-Id: I1219091f065a3d1135973bffea7c8774a8ca1ad6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262085 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
700 lines
16 KiB
JSON
700 lines
16 KiB
JSON
[
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/tmp"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs tmp_dir"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get skp VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@VERSION@42@@@",
|
|
"@@@STEP_LOG_END@VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SKP_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SKP_VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@SKP_VERSION@42@@@",
|
|
"@@@STEP_LOG_END@SKP_VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get skimage VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@VERSION@42@@@",
|
|
"@@@STEP_LOG_END@VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SK_IMAGE_VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@",
|
|
"@@@STEP_LOG_END@SK_IMAGE_VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get svg VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@VERSION@42@@@",
|
|
"@@@STEP_LOG_END@VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SVG_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SVG_VERSION",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@SVG_VERSION@42@@@",
|
|
"@@@STEP_LOG_END@SVG_VERSION@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"rmtree",
|
|
"[START_DIR]/test"
|
|
],
|
|
"infra_step": true,
|
|
"name": "rmtree test"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"vpython",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/test"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs test"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = sys.argv[1]\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[2], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n",
|
|
"https://example.com/hashes.txt",
|
|
"[START_DIR]/tmp/uninteresting_hashes.txt"
|
|
],
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"infra_step": true,
|
|
"name": "get uninteresting hashes",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import math@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import socket@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[2], 'w') as f:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print e@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
|
],
|
|
"name": "get swarming bot id",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
|
],
|
|
"name": "get swarming task id",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
|
|
"[START_DIR]",
|
|
"catchsegv",
|
|
"[START_DIR]/build/dm",
|
|
"--resourcePath",
|
|
"[START_DIR]/skia/resources",
|
|
"--skps",
|
|
"[START_DIR]/skp",
|
|
"--images",
|
|
"[START_DIR]/skimage/dm",
|
|
"--colorImages",
|
|
"[START_DIR]/skimage/colorspace",
|
|
"--nameByHash",
|
|
"--properties",
|
|
"gitHash",
|
|
"abc123",
|
|
"builder",
|
|
"Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-BonusConfigs",
|
|
"buildbucket_build_id",
|
|
"123454321",
|
|
"task_id",
|
|
"task_12345",
|
|
"swarming_bot_id",
|
|
"skia-bot-123",
|
|
"swarming_task_id",
|
|
"123456",
|
|
"--svgs",
|
|
"[START_DIR]/svg",
|
|
"--key",
|
|
"arch",
|
|
"x86_64",
|
|
"compiler",
|
|
"Clang",
|
|
"configuration",
|
|
"Debug",
|
|
"cpu_or_gpu",
|
|
"CPU",
|
|
"cpu_or_gpu_value",
|
|
"AVX2",
|
|
"extra_config",
|
|
"BonusConfigs",
|
|
"model",
|
|
"GCE",
|
|
"os",
|
|
"Debian9",
|
|
"style",
|
|
"default",
|
|
"--uninterestingHashesFile",
|
|
"[START_DIR]/tmp/uninteresting_hashes.txt",
|
|
"--writePath",
|
|
"[START_DIR]/[SWARM_OUT_DIR]",
|
|
"--dont_write",
|
|
"pdf",
|
|
"--randomProcessorTest",
|
|
"--nogpu",
|
|
"--config",
|
|
"pdf",
|
|
"g8",
|
|
"565",
|
|
"pic-8888",
|
|
"serialize-8888",
|
|
"f16",
|
|
"srgb",
|
|
"esrgb",
|
|
"narrow",
|
|
"enarrow",
|
|
"p3",
|
|
"ep3",
|
|
"rec2020",
|
|
"erec2020",
|
|
"--src",
|
|
"tests",
|
|
"gm",
|
|
"image",
|
|
"colorImage",
|
|
"--blacklist",
|
|
"f16",
|
|
"_",
|
|
"_",
|
|
"dstreadshuffle",
|
|
"g8",
|
|
"image",
|
|
"_",
|
|
"_",
|
|
"g8",
|
|
"colorImage",
|
|
"_",
|
|
"_",
|
|
"_",
|
|
"image",
|
|
"gen_platf",
|
|
"error",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_image",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"c_gms",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"colortype",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"colortype_xfermodes",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_bounds_0.75_0",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_bounds_1_-0.25",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_bounds",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_match",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"fontmgr_iter",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"imagemasksubset",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"wacky_yuv_formats_domain",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"imagemakewithfilter",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"imagemakewithfilter_crop",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"imagemakewithfilter_crop_ref",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"imagemakewithfilter_ref",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bitmapfilters",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bitmapshaders",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_bmp",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_bmp_shader",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"convex_poly_clip",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"extractalpha",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"filterbitmap_checkerboard_32_32_g8",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"filterbitmap_image_mandrill_64",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"shadows",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"simpleaaclip_aaclip",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"composeshader_bitmap",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"scaled_tilemodes_npot",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"scaled_tilemodes",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"typefacerendering_pfaMac",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"parsedpaths",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"ImageGeneratorExternal_rect",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"ImageGeneratorExternal_shader",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"shadow_utils",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"persp_images",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"all_bitmap_configs",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"makecolorspace",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"readpixels",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"draw_image_set_rect_to_rect",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"compositor_quads_shader",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"analytic_antialias_convex",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_image",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"bleed_alpha_image_shader",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"drawfilter",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-picture",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-picture",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-raster",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-raster",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-ctable",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"image-cacherator-from-ctable",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"complexclip4_bw",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"complexclip4_bw",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"complexclip4_aa",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"complexclip4_aa",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"p3",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"p3",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_text_up_large",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_text_up_large",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_text_up",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_text_up",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_text_down",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_text_down",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_dog_up",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_dog_up",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_dog_down",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_dog_down",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_rose",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_rose",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_no_bleed",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"async_rescale_and_read_no_bleed",
|
|
"pic-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"serialize-8888",
|
|
"gm",
|
|
"_",
|
|
"blurrect_compare",
|
|
"--nonativeFonts",
|
|
"--verbose"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
|
|
},
|
|
"name": "symbolized dm"
|
|
},
|
|
{
|
|
"name": "$result"
|
|
}
|
|
] |