changeset 16:fbb241adf6c2 draft default tip

planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit af45e5e0e81535ab0423b0bcff8b5b220bb9b4d0-dirty
author tduigou
date Thu, 17 Jul 2025 10:17:24 +0000
parents 074a76e84b80
children
files cloning_similation.xml cloning_simulation.py output.html output.json test-data/test-JSON.json
diffstat 5 files changed, 904 insertions(+), 441 deletions(-) [+]
line wrap: on
line diff
--- a/cloning_similation.xml	Mon May 26 13:39:57 2025 +0000
+++ b/cloning_similation.xml	Thu Jul 17 10:17:24 2025 +0000
@@ -1,8 +1,8 @@
 <tool id="cloning_simulation" name="Cloning Simulation" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.09">
     <description>A cloning simulator for synthetic biology</description>
     <macros>
-        <token name="@VERSION_SUFFIX@">0</token>
-        <token name="@TOOL_VERSION@">0.1.0</token>
+        <token name="@VERSION_SUFFIX@">1</token>
+        <token name="@TOOL_VERSION@">0.2.0</token>
     </macros>
     <requirements>
         <requirement type="package" version="0.1.11">flametree</requirement>
@@ -31,36 +31,47 @@
             --parts_files '$genbank_file_paths'
             --domesticated_seq '$domesticated_input_paths'
             --assembly_csv 'assembly_csv.csv'
-            --assembly_plan_name '$assembly_plan_name'
             --file_name_mapping '$file_name_mapping'
             --file_name_mapping_dom '$file_name_mapping_dom'
-            --use_file_names_as_id '$adv.use_file_names_as_ids'
+            --use_json_paramers '$json_use.use_json_paramers'
+            #if not $json_use.use_json_paramers:
+                --enzyme '$json_use.enzyme'
+                --topology '$json_use.topology'
+                --assembly_plan_name '$json_use.assembly_plan_name'
+            #else:
+                --json_conf '$json_use.json_conf'
+            #end if
+            --use_file_names_as_id '$use_file_names_as_ids'
             --outdir_simulation 'outdir_zip'
             --outdir_gb 'outdir_gb'
-            --output_simulation 'output_zip.zip'
-            --enzyme '$adv.enzyme'
-            --topology '$topology' &&
+            --output_simulation 'output_zip.zip' &&
         cp 'output_zip.zip' '$output_zip'
     ]]></command>
     <inputs>
         <param name="genbank_files" type="data_collection" collection_type="list" format="genbank,fasta" label="GenBank and/or Fasta File(s)" optional="True"/>
         <param name="assembly_csv" type="data" format="csv" label="Assemby csv"/>
         <param name="domesticated_input" type="data_collection" collection_type="list" format="genbank" label="Domesticated GenBank" optional="True"/>
-        <param name="assembly_plan_name" type="select" label="Assembly Calss" help="select the assambly class">
-            <option value="Type2sRestrictionAssembly" selected="True">GoldenGate_assembly</option>
-            <option value="GibsonAssembly">Gibson_assembly</option>
-            <option value="BASICAssembly">BASIC_assembly</option>
-            <option value="BioBrickStandardAssembly">biobrick_assembly</option>
-            <option value="LigaseCyclingReactionAssembly">lcr_assembly</option>
-        </param>
-        <param name="topology" type="select" label="Assambly Topology" help="select circular or linear topology">
-            <option value="linear">linear</option>
-            <option value="circular" selected="True">circular</option>
-        </param>
-        <section name="adv" title="Advanced Options" expanded="false">
-            <param name="enzyme" type="text" label="Enzyme" value="auto" optional="True"/>
-            <param name="use_file_names_as_ids" type="boolean" checked="True" label="Use File Names As Sequence IDs" />
-        </section>
+        <conditional name="json_use">
+            <param name="use_json_paramers" type="boolean" checked='false' label="Use parameters from JSON" help="extract parameters from json file" />
+            <when value="false">
+                <param name="assembly_plan_name" type="select" label="Assembly Calss" help="select the assambly class">
+                    <option value="Type2sRestrictionAssembly" selected="True">GoldenGate_assembly</option>
+                    <option value="GibsonAssembly">Gibson_assembly</option>
+                    <option value="BASICAssembly">BASIC_assembly</option>
+                    <option value="BioBrickStandardAssembly">biobrick_assembly</option>
+                    <option value="LigaseCyclingReactionAssembly">lcr_assembly</option>
+                </param>
+                <param name="topology" type="select" label="Assambly Topology" help="select circular or linear topology">
+                    <option value="linear">linear</option>
+                    <option value="circular" selected="True">circular</option>
+                </param>
+                <param name="enzyme" type="text" label="Enzyme" value="auto" optional="True"/>
+            </when>
+            <when value="true">
+                <param name="json_conf" type="data" format='json' label="DB config as a json file" help="JSON file specifying the database URI, table name and the column names for annotation and sequence data" optional="false" />
+            </when>
+        </conditional>
+        <param name="use_file_names_as_ids" type="boolean" checked="True" label="Use File Names As Sequence IDs" />
     </inputs>   
     <outputs>
         <data format="zip" name="output_zip" label="simulation results (zip)"/>
@@ -88,9 +99,12 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" />
-            <param name='assembly_plan_name' value='Type2sRestrictionAssembly' />
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />
+                <param name='assembly_plan_name' value='Type2sRestrictionAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="62"/>
@@ -130,9 +144,12 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="Gibson_assembly_dataset/gibson_assembly.csv" />
-            <param name='assembly_plan_name' value='GibsonAssembly' />
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />
+                <param name='assembly_plan_name' value='GibsonAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="78"/>
@@ -168,9 +185,12 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="lcr_assembly_dataset/assembly_plan.csv" />
-            <param name='assembly_plan_name' value='LigaseCyclingReactionAssembly' />
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />
+                <param name='assembly_plan_name' value='LigaseCyclingReactionAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="68"/>
@@ -194,9 +214,12 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="BASIC_assembly_dataset/basic_assembly.csv" />
-            <param name='assembly_plan_name' value='BASICAssembly' />
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />
+                <param name='assembly_plan_name' value='BASICAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="47"/>
@@ -220,9 +243,12 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="BioBrick_assembly_dataset/hierarchical_biobrick.csv" />
-            <param name='assembly_plan_name' value='BioBrickStandardAssembly' />
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />
+                <param name='assembly_plan_name' value='BioBrickStandardAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="47"/>
@@ -263,7 +289,12 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" />
-            <param name='assembly_plan_name' value='Type2sRestrictionAssembly' />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />   
+                <param name='assembly_plan_name' value='Type2sRestrictionAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <param name="domesticated_input">
                 <collection type="list">
                     <element name="part_H" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_H.gb" />
@@ -273,8 +304,6 @@
                     <element name="part_L" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_L.gb" />
                 </collection>
             </param>
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="62"/>
@@ -325,9 +354,67 @@
                 </collection>
             </param>
             <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" />
-            <param name='assembly_plan_name' value='Type2sRestrictionAssembly' />
-            <param name="topology" value="circular"/>
-            <param name="adv|use_file_names_as_ids" value="True" />
+            <conditional nam="json_use">
+                <param name='use_json_paramers' value='false' />
+                <param name='assembly_plan_name' value='Type2sRestrictionAssembly' />
+                <param name="topology" value="circular"/>
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
+            <output name="output_zip" ftype='zip'>
+                <assert_contents>
+                    <has_archive_member path=".*" n="62"/>
+                    <has_archive_member path="assambly_simulation/assembly_plan_graph.pdf">
+                        <has_size min="5"/>
+                    </has_archive_member>
+                </assert_contents>
+            </output>
+            <output_collection name="construct_gb" type="list" count="4">
+                <element name="construct_1">
+                    <assert_contents>
+                     <has_n_lines min="20" />
+                    </assert_contents>
+                </element>
+                <element name="construct_2">
+                    <assert_contents>
+                     <has_n_lines min="20" />
+                    </assert_contents>
+                </element>
+                <element name="construct_3">
+                    <assert_contents>
+                     <has_n_lines min="20" />
+                    </assert_contents>
+                </element>
+                 <element name="construct_4">
+                    <assert_contents>
+                     <has_n_lines min="20" />
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+        <!--test JSON param-->
+        <test> 
+            <param name="genbank_files">
+                <collection type="list">
+                    <element name="part_A" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_A.gb" />
+                    <element name="part_B" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_B.gb" />
+                    <element name="part_C" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_C.gb" />
+                    <element name="part_D" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_D.gb" />
+                    <element name="part_E" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_E.gb" />
+                    <element name="part_F" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_F.gb" />
+                    <element name="part_G" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_G.gb" />
+                    <element name="part_H" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_H.gb" />
+                    <element name="part_I" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_I.gb" />
+                    <element name="part_J" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_J.gb" />
+                    <element name="part_K" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_K.gb" />
+                    <element name="part_L" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_L.gb" />
+                </collection>
+            </param>
+            <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" />
+            <conditional nam="json_use">
+                <param name="use_json_paramers" value='true'/>
+                <param name="json_conf" value="test-JSON.json" />
+            </conditional>
+            <param name="use_file_names_as_ids" value="True" />
             <output name="output_zip" ftype='zip'>
                 <assert_contents>
                     <has_archive_member path=".*" n="62"/>
@@ -369,6 +456,7 @@
 
 **Parameters**:
 ---------------
+* **Use parameters from JSON**: Yes/No parameter to ask user if he wants to set parameters manually or using JSON file.
 * **Assemby csv**: csv file containes the construct names with their parts. (Without Header)
 * **GenBank files**: Upload all the parts sequences for your assembli(es). Don't forget the receptor vector(s).
 * **Domesticated GenBank**: Dimesticated GenBank list (Optional)
--- a/cloning_simulation.py	Mon May 26 13:39:57 2025 +0000
+++ b/cloning_simulation.py	Thu Jul 17 10:17:24 2025 +0000
@@ -1,29 +1,30 @@
+import argparse
 import os
+import json
+import zipfile
+import pandas
 import dnacauldron
-from Bio import SeqIO
-import pandas
-import argparse
-import zipfile
+
 
 def cloning_simulation(files_to_assembly, domesticated_list,
                        csv_file, assembly_type, topology,
                        file_name_mapping, file_name_mapping_dom,
                        use_file_names_as_id,
-                       outdir_simulation, output_simulation,enzyme,outdir_gb):
+                       outdir_simulation, output_simulation, enzyme, outdir_gb):
 
     files_to_assembly = files_to_assembly.split(',')
 
     repository = dnacauldron.SequenceRepository()
-    repository.import_records(files=files_to_assembly, 
-                              use_file_names_as_ids=use_file_names_as_id, 
+    repository.import_records(files=files_to_assembly,
+                              use_file_names_as_ids=use_file_names_as_id,
                               topology=topology)
     if domesticated_list:
        domesticated_files = domesticated_list.split(',')
-       repository.import_records(files=domesticated_files, 
-                                    use_file_names_as_ids=use_file_names_as_id, 
-                                    topology=topology)
+       repository.import_records(files=domesticated_files,
+                                 use_file_names_as_ids=use_file_names_as_id,
+                                 topology=topology)
 
-    #refine the real record name dict
+    # refine the real record name dict
     if isinstance(file_name_mapping, str):
         file_name_mapping = dict(
             item.split(":") for item in file_name_mapping.split(",")
@@ -31,11 +32,11 @@
     real_names = {
         os.path.splitext(os.path.basename(k))[0]: v.replace(".gb", "")
         for k, v in file_name_mapping.items()
-    } 
+    }
 
-    #refine the real record name dict_dom
+    # refine the real record name dict_dom
     if file_name_mapping_dom == "":
-        file_name_mapping_dom={}
+        file_name_mapping_dom = {}
     else:
         if isinstance(file_name_mapping_dom, str):
             file_name_mapping_dom = dict(
@@ -44,10 +45,10 @@
         dom_real_names = {
             os.path.splitext(os.path.basename(k))[0]: v.replace(".gb", "")
             for k, v in file_name_mapping_dom.items()
-        } 
+        }
         real_names.update(dom_real_names)
-        
-    #update the records 
+
+    # update the records
 
     for key, record in list(repository.collections["parts"].items()):
         current_id = record.id
@@ -58,9 +59,9 @@
             record.description = new_id
             repository.collections["parts"][new_id] = repository.collections["parts"].pop(key)
     ########################################################
-    #print (f"repo: {vars(repository)}")
-    #any(pandas.read_csv(csv_file, index_col=0, header=None).duplicated())
-    df=pandas.read_csv(csv_file, index_col=0, header=None)
+    # print (f"repo: {vars(repository)}")
+    # any(pandas.read_csv(csv_file, index_col=0, header=None).duplicated())
+    df = pandas.read_csv(csv_file, index_col=0, header=None)
     if df.duplicated().any():
         raise ValueError("Duplicate rows found in the data!")
 
@@ -78,7 +79,7 @@
         assembly_class = dnacauldron.LigaseCyclingReactionAssembly
     else:
         raise ValueError(f"Unsupported assembly type: {assembly_type}")
-    
+
     new_csvname = "assambly.csv"
     os.rename(csv_file, new_csvname)
 
@@ -113,9 +114,9 @@
                 full_path = os.path.join(root, file)
                 arcname = os.path.relpath(full_path, outdir_simulation)
                 zipf.write(full_path, arcname)
-        #print("Files in the zip archive:")
-        #for info in zipf.infolist():
-            #print(info.filename)
+ #       print("Files in the zip archive:")
+ #       for info in zipf.infolist():
+ #           print(info.filename)
         for member in zipf.namelist():
             # Only extract actual files inside 'all_construct_records/' (not subfolders)
             if member.startswith("assambly_simulation/all_construct_records/") and not member.endswith("/"):
@@ -137,40 +138,63 @@
 def parse_command_line_args():
     parser = argparse.ArgumentParser(description="Domestication")
 
-    parser.add_argument("--parts_files", required=True, 
+    parser.add_argument("--parts_files", required=True,
                         help="List of GenBank files (Comma-separated)")
-    parser.add_argument("--domesticated_seq", required=True, 
+    parser.add_argument("--domesticated_seq", required=True,
                         help="output of domestication (ganbank list)")
-    parser.add_argument("--assembly_csv", required=True, 
+    parser.add_argument("--assembly_csv", required=True,
                         help="csv assembly")
-    parser.add_argument('--assembly_plan_name', type=str, 
+    parser.add_argument('--assembly_plan_name', type=str, required=False,
                         help='type of assembly')
-    parser.add_argument('--topology', type=str, 
+    parser.add_argument('--topology', type=str, required=False,
                         help='"circular" or "linear"')
-    parser.add_argument('--file_name_mapping', type=str, 
+    parser.add_argument('--file_name_mapping', type=str,
                         help='Mapping of Galaxy filenames to original filenames')
-    parser.add_argument('--file_name_mapping_dom', type=str, 
+    parser.add_argument('--file_name_mapping_dom', type=str,
                         help='Mapping of Galaxy filenames to original domestication filenames')
-    parser.add_argument("--use_file_names_as_id", type=lambda x: x.lower() == 'true', default=True, 
+    parser.add_argument("--use_file_names_as_id", type=lambda x: x.lower() == 'true', default=True,
                         help="Use file names as IDs (True/False)")
-    parser.add_argument("--outdir_simulation", required=True, 
+    parser.add_argument("--outdir_simulation", required=True,
                         help="dir output for cloning simulation results")
-    parser.add_argument("--output_simulation", required=True, 
+    parser.add_argument("--output_simulation", required=True,
                         help="zip output for cloning simulation results")
-    parser.add_argument('--enzyme', type=str, 
+    parser.add_argument('--enzyme', type=str,required=False,
                         help='enzyme to use')
-    parser.add_argument("--outdir_gb", required=True, 
+    parser.add_argument("--outdir_gb", required=True,
                         help="dir output constructs gb files")
+    parser.add_argument("--use_json_paramers", required=True,
+                         help="Use parameters from JSON: true/false")
+    parser.add_argument("--json_conf", required=False,
+                         help="JSON config file with DB parameters")
  
     return parser.parse_args()
 
+
 if __name__ == "__main__":
     args = parse_command_line_args()
 
+    #json param checking 
+    config_params = {}
+    use_json = args.use_json_paramers == 'true'
+    if use_json:
+        if not args.json_conf:
+            raise ValueError("You must provide --json_conf when --use_json_paramers is 'true'")
+        with open(args.json_conf, "r") as f:
+            config_params = json.load(f)
+    else:
+        config_params = {
+            "assembly_plan_name": args.assembly_plan_name,
+            "topology": args.topology,
+            "enzyme": args.enzyme
+        }
+    assembly_plan_name = config_params["assembly_plan_name"]
+    topology = config_params["topology"]
+    enzyme = config_params["enzyme"]
+
     cloning_simulation(
         args.parts_files, args.domesticated_seq,
-        args.assembly_csv, args.assembly_plan_name, args.topology,
-        args.file_name_mapping, args.file_name_mapping_dom, 
+        args.assembly_csv, assembly_plan_name, topology,
+        args.file_name_mapping, args.file_name_mapping_dom,
         args.use_file_names_as_id, args.outdir_simulation,
-        args.output_simulation, args.enzyme, args.outdir_gb
-    )
\ No newline at end of file
+        args.output_simulation, enzyme, args.outdir_gb
+    )
--- a/output.html	Mon May 26 13:39:57 2025 +0000
+++ b/output.html	Thu Jul 17 10:17:24 2025 +0000
@@ -285,7 +285,7 @@
         var md = window.markdownit({
           html: true,
         });
-        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8yLzAvZC9kYXRhc2V0XzIwZDQwNjFhLTgxZTQtNDkxNS1hODQxLWFlOGFhNTk1YzdiNC5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9kL2QvOC9kYXRhc2V0X2RkODQ0ZDYxLWZjMDUtNDFkOS04MTc5LTIxMjMzNjQ5NDA3ZC5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9jL2IvMi9kYXRhc2V0X2NiMjM2MmYzLTRiMzItNDZjYy1hMjI3LWRjMTU3NDJiZjllNy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy82L2QvNy9kYXRhc2V0XzZkNzJkZmU0LTNlNmItNGJhZi1iN2I1LTlmYjJlODQzNDYxYS5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zLzMvZS9kYXRhc2V0XzMzZTgwNGIyLTBmYmUtNDg0NC05YjVkLTQyMGU4YTJkYjc3Mi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8yL2QvYi9kYXRhc2V0XzJkYjM4MjVjLTUzOGItNDgzZi1iNmZmLThkYzRlY2MwMzc4MC5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8wLzQvOC9kYXRhc2V0XzA0OGVlN2VkLTVmNGMtNDFlZi1hZWQ0LWYyY2Y5NzVhYWM5Mi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9jLzUvMC9kYXRhc2V0X2M1MDVjMTJlLTcwODktNGExNy1hNjA1LTRmMTFkYWQ2ZjFkNy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy80LzkvMS9kYXRhc2V0XzQ5MTJmMTJkLTA4NDItNDZiNy04YWFmLTJhOTRhNTJmMDRmOC5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzIvYi9kYXRhc2V0X2IyYjk2ZDQxLWM3YzgtNDljMS05ZDM1LWNlYWExYzdkMzAyNy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzgvZi9kYXRhc2V0X2I4ZmQ0NjEwLTJmNmQtNDc1Yy04NDA1LThiZjhjMmJjMDMwNi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8wLzkvZi9kYXRhc2V0XzA5ZjRiMDIwLTRlN2ItNDkzOS1iM2JhLTM0OGY5MWNiOTJiYy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9lL2IvNy9kYXRhc2V0X2ViNzMwMjYzLTk0NDItNGRjYS1hMmRjLTM0YjFjYWU0NTBkNy5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9kLzgvZGF0YXNldF9kZDg0NGQ2MS1mYzA1LTQxZDktODE3OS0yMTIzMzY0OTQwN2QuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2MvYi8yL2RhdGFzZXRfY2IyMzYyZjMtNGIzMi00NmNjLWEyMjctZGMxNTc0MmJmOWU3LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy82L2QvNy9kYXRhc2V0XzZkNzJkZmU0LTNlNmItNGJhZi1iN2I1LTlmYjJlODQzNDYxYS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy8zL2UvZGF0YXNldF8zM2U4MDRiMi0wZmJlLTQ4NDQtOWI1ZC00MjBlOGEyZGI3NzIuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzIvZC9iL2RhdGFzZXRfMmRiMzgyNWMtNTM4Yi00ODNmLWI2ZmYtOGRjNGVjYzAzNzgwLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8wLzQvOC9kYXRhc2V0XzA0OGVlN2VkLTVmNGMtNDFlZi1hZWQ0LWYyY2Y5NzVhYWM5Mi5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy81LzAvZGF0YXNldF9jNTA1YzEyZS03MDg5LTRhMTctYTYwNS00ZjExZGFkNmYxZDcuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzQvOS8xL2RhdGFzZXRfNDkxMmYxMmQtMDg0Mi00NmI3LThhYWYtMmE5NGE1MmYwNGY4LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzIvYi9kYXRhc2V0X2IyYjk2ZDQxLWM3YzgtNDljMS05ZDM1LWNlYWExYzdkMzAyNy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYi84L2YvZGF0YXNldF9iOGZkNDYxMC0yZjZkLTQ3NWMtODQwNS04YmY4YzJiYzAzMDYuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzAvOS9mL2RhdGFzZXRfMDlmNGIwMjAtNGU3Yi00OTM5LWIzYmEtMzQ4ZjkxY2I5MmJjLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9lL2IvNy9kYXRhc2V0X2ViNzMwMjYzLTk0NDItNGRjYS1hMmRjLTM0YjFjYWU0NTBkNy5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG0xZnlvYjN0L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzY0ZDFkOGFjLTMyZjAtNDA5NS1iZTMwLTIyZWVlMzFlMjRhNC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNThpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjI2aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODJpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wbTFmeW9iM3QvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzEvNi9mL2RhdGFzZXRfMTZmNmQ0NzUtYjYxNC00NDI3LTljMDYtOTVhMGQ1NmQzYzkyLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzkvNi9hL2RhdGFzZXRfOTZhOGY3NjktMzU0NC00NDA3LWIwNjQtMDRmMjRhNzMzODk2LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS82L2EvZGF0YXNldF85NmE4Zjc2OS0zNTQ0LTQ0MDctYjA2NC0wNGYyNGE3MzM4OTYuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbTFmeW9iM3Qvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfNTA1ZWNiMmQtYTZjYS00MGQzLTg2NGQtZmMzZThiYzdmOWExLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzVpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjMxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNTNpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG0xZnlvYjN0L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9mLzcvYy9kYXRhc2V0X2Y3YzlhZDc4LThlNzQtNGEzYy05NTc5LTgwYTkzYWM5MjNkZS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9mLzUvNi9kYXRhc2V0X2Y1NjkxM2JkLWZjOTItNDEyMi04Y2YxLWQ5YjFjNjBlODM4NS5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zL2IvNC9kYXRhc2V0XzNiNGU3NWIzLWU2YTYtNDU5YS1hOTU5LWQ0M2NlMDBjMzcwMS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2YvNS82L2RhdGFzZXRfZjU2OTEzYmQtZmM5Mi00MTIyLThjZjEtZDliMWM2MGU4Mzg1LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy9iLzQvZGF0YXNldF8zYjRlNzViMy1lNmE2LTQ1OWEtYTk1OS1kNDNjZTAwYzM3MDEuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBtMWZ5b2IzdC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF8zZmM2MjVjOC03MjJmLTRlZmItOWMwOS0wZDY2NGRlYzJhOWQuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi40MGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wbTFmeW9iM3QvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2YvYi80L2RhdGFzZXRfZmI0MjZjZWItMjYxNS00NDdkLWIwNGUtYWU0MjUzYWY2NDhkLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2UvYy9iL2RhdGFzZXRfZWNiMDU3YTItZGJmOC00MTA1LWI1NWUtZDcyNmVjMWU5NjkzLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzQvOS84L2RhdGFzZXRfNDk4ZmU3MDMtNTJjMy00MTYyLWJlMDAtOTNmNDlmMDA2ODlkLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2QvNC8wL2RhdGFzZXRfZDQwMmMyYWMtY2EyZC00NmI2LWI5ZDMtOTg5NzM5Njc4ZGUxLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzEvMS8yL2RhdGFzZXRfMTEyNGZmMzYtZjYxYi00OTMyLWFkYzYtMGI2ZGU1YTg4OGFlLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzgvZi9lL2RhdGFzZXRfOGZlNTEwOTEtMzljNS00YWE2LWIwZWMtZmJjMzQ3MTJlNDA1LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9lL2MvYi9kYXRhc2V0X2VjYjA1N2EyLWRiZjgtNDEwNS1iNTVlLWQ3MjZlYzFlOTY5My5kYXQ6R0ZQLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNC85LzgvZGF0YXNldF80OThmZTcwMy01MmMzLTQxNjItYmUwMC05M2Y0OWYwMDY4OWQuZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC80LzAvZGF0YXNldF9kNDAyYzJhYy1jYTJkLTQ2YjYtYjlkMy05ODk3Mzk2NzhkZTEuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMS8xLzIvZGF0YXNldF8xMTI0ZmYzNi1mNjFiLTQ5MzItYWRjNi0wYjZkZTVhODg4YWUuZGF0OlJGUC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzgvZi9lL2RhdGFzZXRfOGZlNTEwOTEtMzljNS00YWE2LWIwZWMtZmJjMzQ3MTJlNDA1LmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbTFmeW9iM3Qvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfNDVlZjdlZDUtNDhhYS00Mjg2LWFjNTEtMzM5MWI1OTNlYjdjLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDYvOCBbMDA6MDA8MDA6MDAsIDQ4Ljk3aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAyLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogOCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA3LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJBU0lDQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG0xZnlvYjN0L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA1KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy80LzkvYS9kYXRhc2V0XzQ5YWYyYzA4LTNhZDQtNDk0MC1hZTg0LWY5M2RmM2MwZGQ4YS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy84LzkvNC9kYXRhc2V0Xzg5NGQwYTVlLTJkODctNDg2MS04NWNiLWI1Y2FlODNiMTljYi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zLzEvNS9kYXRhc2V0XzMxNWYxODA4LWU5YzUtNDVmYi04Y2I4LWI3MWU4ZTFjODM2Ni5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzYvNy9kYXRhc2V0X2I2N2E2MjY0LTYyMDgtNGI0NC04ZmQ0LTQ3YmEzZjk2ZmFlZS5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9jL2UvMy9kYXRhc2V0X2NlM2EwYjVlLTAzNDQtNDQyMi1iODRhLTg0OTA0ODE4Mzk2Yi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzcvZC9kYXRhc2V0X2I3ZGNhY2UzLTJkYmQtNDlkYi05NGFjLTk4NDg1YmY1MjJhYS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0Jpb0JyaWNrU3RhbmRhcmRBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy84LzkvNC9kYXRhc2V0Xzg5NGQwYTVlLTJkODctNDg2MS04NWNiLWI1Y2FlODNiMTljYi5kYXQ6QkJhX0UwMDQwX0dGUC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzMvMS81L2RhdGFzZXRfMzE1ZjE4MDgtZTljNS00NWZiLThjYjgtYjcxZThlMWM4MzY2LmRhdDpCQmFfSjIzMTE5X3Byb20uZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzYvNy9kYXRhc2V0X2I2N2E2MjY0LTYyMDgtNGI0NC04ZmQ0LTQ3YmEzZjk2ZmFlZS5kYXQ6QkJhX0oyMzExOV9wcm9tX2ZsYXdlZC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2MvZS8zL2RhdGFzZXRfY2UzYTBiNWUtMDM0NC00NDIyLWI4NGEtODQ5MDQ4MTgzOTZiLmRhdDpCQmFfSjYxMDQ4X3Rlcm0uZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzcvZC9kYXRhc2V0X2I3ZGNhY2UzLTJkYmQtNDlkYi05NGFjLTk4NDg1YmY1MjJhYS5kYXQ6QkJhX0s2MTEwOTRfYmFyLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG0xZnlvYjN0L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0XzNmNzJlYTY0LTAyZjMtNDEzZS05ZDlhLTVjNDNlYWFhZGYxNC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDA8MDA6MDAsICAyLjA0aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNjZpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBtMWZ5b2IzdC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZi8yLzMvZGF0YXNldF9mMjM5MGJhNi1iODkxLTRjNzUtYjViNC04ODFmYWJlMTUyMTIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9mL2UvZGF0YXNldF9kZmU3MWI3MS0yNjAzLTQ4Y2YtYmY1OS03NzI3MjRhYmVhMGYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC85LzIvZGF0YXNldF8wOTI2MDAxNy1hYzllLTQ4NjgtYjM4Ni0yN2VmMDdjYTAzYTguZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOC80L2UvZGF0YXNldF84NGU1NzAyNi00ZTg1LTRhNjMtYjY2YS04YmFlNWI3NjdmMGMuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNy9kLzIvZGF0YXNldF83ZDI2ZDM2ZC1iYjFjLTRmODMtYmU0Zi0zMzExZTRlYzI0NDEuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOC9hLzAvZGF0YXNldF84YTBmZjFlNS1hYWY3LTQ2MWUtYjY0Mi1iNjBlNWNmMTMxMzIuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZi85LzQvZGF0YXNldF9mOTRmYjdjOS03NjFiLTRkYzEtOGNhYS1hMDJlZTc4OTJjNTkuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy83L2UvZGF0YXNldF9jN2U0MDhiNS05MjdiLTQ5NjYtOGQxZi0wOGRlM2I0MWZjMzQuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYi8yLzYvZGF0YXNldF9iMjYzZTExZi0xZDUyLTQ1ZDQtODY3OS04YmIyMzY2ODE1NGEuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy80L2MvZGF0YXNldF9jNGMwOGU4Zi0zZmZjLTQwZDAtOGEyNy0xYmVlOGI1ZjZmZWUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9kL2MvZGF0YXNldF9kZGNiOWY5My05YjRmLTQxZTMtYTFkZi01NTM3YjYzMjZhNzguZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS85L2IvZGF0YXNldF85OWJhYzk4ZC0xY2JmLTRhYjEtYTY4MC00OWNkYjcyMWU0NDcuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNi84LzUvZGF0YXNldF82ODVjZDU3MS04MGI1LTRjMDMtYjI0Ny00ZmI1MWUxOTk2MzkuZGF0JyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9mL2UvZGF0YXNldF9kZmU3MWI3MS0yNjAzLTQ4Y2YtYmY1OS03NzI3MjRhYmVhMGYuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyNjAwMTctYWM5ZS00ODY4LWIzODYtMjdlZjA3Y2EwM2E4LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy84LzQvZS9kYXRhc2V0Xzg0ZTU3MDI2LTRlODUtNGE2My1iNjZhLThiYWU1Yjc2N2YwYy5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNy9kLzIvZGF0YXNldF83ZDI2ZDM2ZC1iYjFjLTRmODMtYmU0Zi0zMzExZTRlYzI0NDEuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzgvYS8wL2RhdGFzZXRfOGEwZmYxZTUtYWFmNy00NjFlLWI2NDItYjYwZTVjZjEzMTMyLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9mLzkvNC9kYXRhc2V0X2Y5NGZiN2M5LTc2MWItNGRjMS04Y2FhLWEwMmVlNzg5MmM1OS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy83L2UvZGF0YXNldF9jN2U0MDhiNS05MjdiLTQ5NjYtOGQxZi0wOGRlM2I0MWZjMzQuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYi8yLzYvZGF0YXNldF9iMjYzZTExZi0xZDUyLTQ1ZDQtODY3OS04YmIyMzY2ODE1NGEuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2MvNC9jL2RhdGFzZXRfYzRjMDhlOGYtM2ZmYy00MGQwLThhMjctMWJlZThiNWY2ZmVlLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9kL2QvYy9kYXRhc2V0X2RkY2I5ZjkzLTliNGYtNDFlMy1hMWRmLTU1MzdiNjMyNmE3OC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS85L2IvZGF0YXNldF85OWJhYzk4ZC0xY2JmLTRhYjEtYTY4MC00OWNkYjcyMWU0NDcuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzYvOC81L2RhdGFzZXRfNjg1Y2Q1NzEtODBiNS00YzAzLWIyNDctNGZiNTFlMTk5NjM5LmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbTFmeW9iM3Qvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC80OS9vdXRwdXRzL2RhdGFzZXRfYjVjMWQ5MTgtOWE4Ni00N2FjLTlmZDAtMGQxZWVlY2IzNTE1LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40MGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMjFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTIsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBtMWZ5b2IzdC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy9jLzEvZGF0YXNldF8zYzEyMjFiYy1iYTUzLTRlZGUtODk5Yy1lNGRlZmJlODM4ZWIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNi84L2UvZGF0YXNldF82OGVlMmU2OS1jMmQ5LTQzY2QtODUxZS0wYjY2MDg4NGNhYzIuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNS9jLzIvZGF0YXNldF81YzI5OGFmMy05Y2RiLTQ4MzctODA1NC04OTAzYzI2ODNmODUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jLzEvZGF0YXNldF85YzFmZDY1MS1kZTFlLTRiYTktYThlMS1lZTc4OTUzYjBjOGUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZS83LzcvZGF0YXNldF9lNzdjOTU1ZC1lOWI1LTQxNzUtYTA2MS04MWI5YTc4MWQyZmYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy81L2QvZGF0YXNldF8zNWRmMWNlYi00MTZiLTRjMmQtYjIwYS0zZWZlOTZiNjc3MGYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy8wLzIvZGF0YXNldF9jMDJmYzlmYi1kYzRlLTQ5ZTEtYjk5Zi04MTk5ZmQ5N2Q3OTUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy8zLzkvZGF0YXNldF8zMzliNGNiZi00Y2EyLTRjNDktOWNjNC05Nzk2YzViOWJhOGEuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMi8yLzQvZGF0YXNldF8yMjQ2OTQ3YS1kYmI3LTRlZDItODU1YS01NmE0MmE4OTlhYWIuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC9hLzkvZGF0YXNldF8wYTkzNWMwMy00OGE3LTRjOGEtODA3Ny1hZWE0MDdlNTI4NWQuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC80L2IvZGF0YXNldF8wNGJjZjljMS1jY2M4LTRkNTItYTczOS1mYjM2MzBmOTBiMDUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNC8wLzIvZGF0YXNldF80MDJhYWFiZS0wZWE5LTQ1MTktOTk4Yi0xMWNmNmIwN2ExZGYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jL2YvZGF0YXNldF85Y2Y3MTk4NS1hNjJkLTRkODktODQ1Yy0yYjk5NmQ4MDk2ZmEuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzYvOC9lL2RhdGFzZXRfNjhlZTJlNjktYzJkOS00M2NkLTg1MWUtMGI2NjA4ODRjYWMyLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy81L2MvMi9kYXRhc2V0XzVjMjk4YWYzLTljZGItNDgzNy04MDU0LTg5MDNjMjY4M2Y4NS5kYXQ6cGFydF9CLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jLzEvZGF0YXNldF85YzFmZDY1MS1kZTFlLTRiYTktYThlMS1lZTc4OTUzYjBjOGUuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2UvNy83L2RhdGFzZXRfZTc3Yzk1NWQtZTliNS00MTc1LWEwNjEtODFiOWE3ODFkMmZmLmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zLzUvZC9kYXRhc2V0XzM1ZGYxY2ViLTQxNmItNGMyZC1iMjBhLTNlZmU5NmI2NzcwZi5kYXQ6cGFydF9FLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy8wLzIvZGF0YXNldF9jMDJmYzlmYi1kYzRlLTQ5ZTEtYjk5Zi04MTk5ZmQ5N2Q3OTUuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzMvMy85L2RhdGFzZXRfMzM5YjRjYmYtNGNhMi00YzQ5LTljYzQtOTc5NmM1YjliYThhLmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8yLzIvNC9kYXRhc2V0XzIyNDY5NDdhLWRiYjctNGVkMi04NTVhLTU2YTQyYTg5OWFhYi5kYXQ6cGFydF9ILmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC9hLzkvZGF0YXNldF8wYTkzNWMwMy00OGE3LTRjOGEtODA3Ny1hZWE0MDdlNTI4NWQuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzAvNC9iL2RhdGFzZXRfMDRiY2Y5YzEtY2NjOC00ZDUyLWE3MzktZmIzNjMwZjkwYjA1LmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy80LzAvMi9kYXRhc2V0XzQwMmFhYWJlLTBlYTktNDUxOS05OThiLTExY2Y2YjA3YTFkZi5kYXQ6cGFydF9LLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jL2YvZGF0YXNldF85Y2Y3MTk4NS1hNjJkLTRkODktODQ1Yy0yYjk5NmQ4MDk2ZmEuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBtMWZ5b2IzdC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzYzL291dHB1dHMvZGF0YXNldF8wMmU3ZWE1ZS02YzhmLTQxOWQtODJkZS00NzZiY2NjNTUwZWMuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yMWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjgxaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIE5vbmUgYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBtMWZ5b2IzdC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K'));
+        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iOCIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iOCIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI4IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjgiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI4IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDggfAp8IFBhc3NlZCAgICAgfCA4IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy8wL2IvMS9kYXRhc2V0XzBiMWQ5YTMxLWUxMjQtNDJjZi1iOTk1LWY3YzEzNjkwMGYyOS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy83LzYvOS9kYXRhc2V0Xzc2OTUyYzNjLWZjMTItNDc0OC04N2NiLWI2YWYzOGRiOWQzZS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy85L2EvNi9kYXRhc2V0XzlhNjBmNGFmLWQ3ZDQtNGJjZS1hYjc5LTM3MThkYWM0NjhlZC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mL2UvYy9kYXRhc2V0X2ZlYzA4MjM2LTRiMWItNDE3NC1hZjljLTdjM2E4NDQ4NzQyNC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8yLzAvNi9kYXRhc2V0XzIwNmNhNDE5LTc5MjEtNGZjMS05YmUwLTEyYzM1Yzg0YmQ2NS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8zLzEvYi9kYXRhc2V0XzMxYmIwYjI0LWU3NWMtNDkzZi1hMDE2LTM3OTZkNTRlYWExOC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy82L2YvYS9kYXRhc2V0XzZmYTk1M2M3LWE5YTctNGJhNy1hMDMwLWRhMTQ3ZWFkZWZkYy5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy83L2UvZi9kYXRhc2V0XzdlZjE0N2NiLWYzMzEtNDM1Yy05YTFlLTZmMGU1MmFiZDEwMi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy85L2IvNi9kYXRhc2V0XzliNjExYzU1LWMxOWUtNDJjZS1iNDVjLTQwYWMwNDliOTRjYi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy85L2IvZC9kYXRhc2V0XzliZDg2MjdlLTA0MTctNDc1Zi1iODU1LTM1MmJjZDg5MDYzMC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzYvNC9kYXRhc2V0XzE2NDEzNWMwLTdiNTQtNGVhMC04NmQzLWU5ZTkyOGNiYzM5OC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9iL2UvOS9kYXRhc2V0X2JlOTI3YmI0LTFhMzQtNDNiYi04NjgwLTgxNTg5NDU5NzMyYi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84L2EvNC9kYXRhc2V0XzhhNGJhYjMzLWIzZTgtNDU4Ni1iMzc1LWFlOTA0ZGMwNjc5My5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy83LzYvOS9kYXRhc2V0Xzc2OTUyYzNjLWZjMTItNDc0OC04N2NiLWI2YWYzOGRiOWQzZS5kYXQ6cGFydF9BLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOS9hLzYvZGF0YXNldF85YTYwZjRhZi1kN2Q0LTRiY2UtYWI3OS0zNzE4ZGFjNDY4ZWQuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2YvZS9jL2RhdGFzZXRfZmVjMDgyMzYtNGIxYi00MTc0LWFmOWMtN2MzYTg0NDg3NDI0LmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8yLzAvNi9kYXRhc2V0XzIwNmNhNDE5LTc5MjEtNGZjMS05YmUwLTEyYzM1Yzg0YmQ2NS5kYXQ6cGFydF9ELmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy8xL2IvZGF0YXNldF8zMWJiMGIyNC1lNzVjLTQ5M2YtYTAxNi0zNzk2ZDU0ZWFhMTguZGF0OnBhcnRfRS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzYvZi9hL2RhdGFzZXRfNmZhOTUzYzctYTlhNy00YmE3LWEwMzAtZGExNDdlYWRlZmRjLmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy83L2UvZi9kYXRhc2V0XzdlZjE0N2NiLWYzMzEtNDM1Yy05YTFlLTZmMGU1MmFiZDEwMi5kYXQ6cGFydF9HLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOS9iLzYvZGF0YXNldF85YjYxMWM1NS1jMTllLTQyY2UtYjQ1Yy00MGFjMDQ5Yjk0Y2IuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvYi9kL2RhdGFzZXRfOWJkODYyN2UtMDQxNy00NzVmLWI4NTUtMzUyYmNkODkwNjMwLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzYvNC9kYXRhc2V0XzE2NDEzNWMwLTdiNTQtNGVhMC04NmQzLWU5ZTkyOGNiYzM5OC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi9lLzkvZGF0YXNldF9iZTkyN2JiNC0xYTM0LTQzYmItODY4MC04MTU4OTQ1OTczMmIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvYS80L2RhdGFzZXRfOGE0YmFiMzMtYjNlOC00NTg2LWIzNzUtYWU5MDRkYzA2NzkzLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBlNnBtZzdqdy9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzE0L291dHB1dHMvZGF0YXNldF85NWUyMWViYy01YmZmLTQ1NDQtYTVkNC0wNmRiMjJlOTEwNjYuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQ1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yM2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjg0aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBqc29uXF91c2UgfCBgIHsiX19jdXJyZW50X2Nhc2VfXyI6IDAsICJhc3NlbWJseV9wbGFuX25hbWUiOiAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIsICJlbnp5bWUiOiAiYXV0byIsICJ0b3BvbG9neSI6ICJjaXJjdWxhciIsICJ1c2VfanNvbl9wYXJhbWVycyI6IGZhbHNlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMi9hL2QvZGF0YXNldF8yYWQ5YWZiYi03OTUzLTRjZDktYmZmMy00ODI5OTM3OTEwMjguZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvNy8wLzgvZGF0YXNldF83MDhlMTkwMS1iZTY0LTQxZjktYjc2Ny1iMTc0OWE3MWI3ODUuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvNy8wLzgvZGF0YXNldF83MDhlMTkwMS1iZTY0LTQxZjktYjc2Ny1iMTc0OWE3MWI3ODUuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdHaWJzb25Bc3NlbWJseScgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wZTZwbWc3ancvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfOWE1OGUxNjktNDdmNC00NDE4LThhM2ItMGZlYzg2MjQyYjVjLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzdpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzhpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjM4aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNjJpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMCwgImFzc2VtYmx5X3BsYW5fbmFtZSI6ICJHaWJzb25Bc3NlbWJseSIsICJlbnp5bWUiOiAiYXV0byIsICJ0b3BvbG9neSI6ICJjaXJjdWxhciIsICJ1c2VfanNvbl9wYXJhbWVycyI6IGZhbHNlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvZC80L2YvZGF0YXNldF9kNGY0MmNmNC04NWVkLTRlYjctYWI3OS05NDQyMzk2NzFhMGMuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy82LzYvZGF0YXNldF9jNjY2NjJmNS01MzA3LTQwZjUtYjdkOC0xYWUzNGU5YmM1OTQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZS9iL2IvZGF0YXNldF9lYmI3N2Q4OS1mY2FmLTRhYWQtYWUwNy1iZDZkZjFjYmM3NWQuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy82LzYvZGF0YXNldF9jNjY2NjJmNS01MzA3LTQwZjUtYjdkOC0xYWUzNGU5YmM1OTQuZGF0OlJGUF9HRlBfcGxhc21pZF9CT3MuZmEsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9lL2IvYi9kYXRhc2V0X2ViYjc3ZDg5LWZjYWYtNGFhZC1hZTA3LWJkNmRmMWNiYzc1ZC5kYXQ6UkZQX0dGUF9wbGFzbWlkX3BhcnRzLmZhJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9qc29uX3BhcmFtZXJzICdmYWxzZScgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnTGlnYXNlQ3ljbGluZ1JlYWN0aW9uQXNzZW1ibHknIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGU2cG1nN2p3L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMjEvb3V0cHV0cy9kYXRhc2V0X2UzN2IyZDU0LWJkNGQtNDQ1Yy05MTcxLWRkMDQ5ZjQ5ZWQzNi5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMiBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMiBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDIvMiBbMDA6MDA8MDA6MDAsICAyLjM1aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMiwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA1LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBqc29uXF91c2UgfCBgIHsiX19jdXJyZW50X2Nhc2VfXyI6IDAsICJhc3NlbWJseV9wbGFuX25hbWUiOiAiTGlnYXNlQ3ljbGluZ1JlYWN0aW9uQXNzZW1ibHkiLCAiZW56eW1lIjogImF1dG8iLCAidG9wb2xvZ3kiOiAiY2lyY3VsYXIiLCAidXNlX2pzb25fcGFyYW1lcnMiOiBmYWxzZX0gYCB8CiAgICAgICB8IHVzZVxfZmlsZVxfbmFtZXNcX2FzXF9pZHMgfCBgIHRydWUgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wZTZwbWc3ancvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvZi8xL2RhdGFzZXRfYmYxMWJkM2QtY2EwZS00NzU2LTgxMDYtMTQyMTg0ZGM1N2U3LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvZi8zL2RhdGFzZXRfYWYzMmRiMTYtZTZkYy00OTNmLWI2YTctNWEzYjY3MjVhNzM2LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvNC85L2RhdGFzZXRfYTQ5MzZlOWItZDhiZS00Y2Y5LThkNmMtMWM2MjU2NzZiYzU4LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvMy9jL2RhdGFzZXRfMDNjZGExMjAtMGM0ZC00NDUyLWFmYWItOTI1ZGY0YTU3MjNhLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvYi8xL2RhdGFzZXRfM2IxNjRjYWQtZmJhYi00N2E5LTg5NjUtYzk1ODIwODI2ZGFmLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvYi8zL2RhdGFzZXRfYWIzNTUxMWQtMmZiZi00MDE0LWIwNzktNjViMjcwYmQ5Y2M4LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvZi8zL2RhdGFzZXRfYWYzMmRiMTYtZTZkYy00OTNmLWI2YTctNWEzYjY3MjVhNzM2LmRhdDpHRlAuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9hLzQvOS9kYXRhc2V0X2E0OTM2ZTliLWQ4YmUtNGNmOS04ZDZjLTFjNjI1Njc2YmM1OC5kYXQ6cDE1QV9rYW4uZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8wLzMvYy9kYXRhc2V0XzAzY2RhMTIwLTBjNGQtNDQ1Mi1hZmFiLTkyNWRmNGE1NzIzYS5kYXQ6cHJvbW90ZXIuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8zL2IvMS9kYXRhc2V0XzNiMTY0Y2FkLWZiYWItNDdhOS04OTY1LWM5NTgyMDgyNmRhZi5kYXQ6UkZQLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS9iLzMvZGF0YXNldF9hYjM1NTExZC0yZmJmLTQwMTQtYjA3OS02NWIyNzBiZDljYzguZGF0Om9saWdvcy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfanNvbl9wYXJhbWVycyAnZmFsc2UnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0JBU0lDQXNzZW1ibHknIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGU2cG1nN2p3L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMjgvb3V0cHV0cy9kYXRhc2V0X2YxMzBlODRlLTgxNDAtNDQ5Yi1iYjdlLThkZjM3MGE0MjFkMS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMTAgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC84IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCA2LzggWzAwOjAwPDAwOjAwLCA0OS42Nml0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMiwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDgsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwganNvblxfdXNlIHwgYCB7Il9fY3VycmVudF9jYXNlX18iOiAwLCAiYXNzZW1ibHlfcGxhbl9uYW1lIjogIkJBU0lDQXNzZW1ibHkiLCAiZW56eW1lIjogImF1dG8iLCAidG9wb2xvZ3kiOiAiY2lyY3VsYXIiLCAidXNlX2pzb25fcGFyYW1lcnMiOiBmYWxzZX0gYCB8CiAgICAgICB8IHVzZVxfZmlsZVxfbmFtZXNcX2FzXF9pZHMgfCBgIHRydWUgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wZTZwbWc3ancvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDUpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ZmY3NzQtNzhlNS00MTBiLTkyNmItMzk2YmYwMzQ2ZjVmLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvNy85L2RhdGFzZXRfODc5ZjZjNDktMTRmNS00Zjc4LThiMzItZjA2ZDA5OGE3ZjRmLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvMy9jL2RhdGFzZXRfYTNjYjhjZWEtMTZhZC00YTMzLThlNDEtYTliMzc4YjI5NzRhLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvNy9iL2RhdGFzZXRfYzdiY2E3MGUtMGFlOS00MDYyLWIxODUtMWUwZTVlZDExNmE2LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvMy9hL2RhdGFzZXRfYjNhMTFiYzktNGMyOS00NzBjLTg5ODUtZDg0NWMyZjllMTgzLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvOC8xL2RhdGFzZXRfMDgxMjkzNDAtMjQwYy00MzQ5LWFmNmMtMDM3OWQzMmNhZTljLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvNy85L2RhdGFzZXRfODc5ZjZjNDktMTRmNS00Zjc4LThiMzItZjA2ZDA5OGE3ZjRmLmRhdDpCQmFfRTAwNDBfR0ZQLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS8zL2MvZGF0YXNldF9hM2NiOGNlYS0xNmFkLTRhMzMtOGU0MS1hOWIzNzhiMjk3NGEuZGF0OkJCYV9KMjMxMTlfcHJvbS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvNy9iL2RhdGFzZXRfYzdiY2E3MGUtMGFlOS00MDYyLWIxODUtMWUwZTVlZDExNmE2LmRhdDpCQmFfSjIzMTE5X3Byb21fZmxhd2VkLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi8zL2EvZGF0YXNldF9iM2ExMWJjOS00YzI5LTQ3MGMtODk4NS1kODQ1YzJmOWUxODMuZGF0OkJCYV9KNjEwNDhfdGVybS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvOC8xL2RhdGFzZXRfMDgxMjkzNDAtMjQwYy00MzQ5LWFmNmMtMDM3OWQzMmNhZTljLmRhdDpCQmFfSzYxMTA5NF9iYXIuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHknIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGU2cG1nN2p3L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0X2MyZjdkNzFmLWRlMjctNDhjNi1iYzFmLWI2NTZiYzhkNTNmMS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDE8MDA6MDAsICAxLjkzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNTlpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMCwgImFzc2VtYmx5X3BsYW5fbmFtZSI6ICJCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHkiLCAiZW56eW1lIjogImF1dG8iLCAidG9wb2xvZ3kiOiAiY2lyY3VsYXIiLCAidXNlX2pzb25fcGFyYW1lcnMiOiBmYWxzZX0gYCB8CiAgICAgICB8IHVzZVxfZmlsZVxfbmFtZXNcX2FzXF9pZHMgfCBgIHRydWUgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wZTZwbWc3ancvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDYpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvYi81L2RhdGFzZXRfOWI1M2U3MzYtOWFhNC00MjhiLTg2NmItNzJkMmY1MjVmOTllLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2QvMS81L2RhdGFzZXRfZDE1ZmYwMjYtYmFiZi00MWQxLWI5ZTAtZTcwMWUwYTUxYjZiLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzIvOS84L2RhdGFzZXRfMjk4ZDk4M2MtM2U1Yy00YjkzLTk0NGMtYjM3MmQ0Mjk1NzQwLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzQvZS8zL2RhdGFzZXRfNGUzYzAxMDMtZGJiOC00NjVjLWFiYmYtN2Y5YjY2YTgyNjNiLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzEvNS80L2RhdGFzZXRfMTU0NTIyODQtYmMxOS00M2Q2LTgzNjctMjc1MzA1NmE5NmVjLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvZi8zL2RhdGFzZXRfMGYzNmIzM2QtOGMxYy00NzJiLWFiYmQtYzNmNjM0MTgxNzRhLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvZC9kL2RhdGFzZXRfYWRkZTk3MGYtODdhOC00NWIwLTkzMDMtYWNmMGQ3ZWQ3YzJlLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvNi9iL2RhdGFzZXRfOTZiZDg2ZjQtY2QwYS00YTM0LWExY2YtMzA0NGE2MmY3N2EyLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzUvNS84L2RhdGFzZXRfNTU4NzY3NmEtOGM4MS00OTU0LWJmMzMtMmM5NjViZjc2MzVkLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvZi9iL2RhdGFzZXRfYmZiODE1YTItNjdjOC00Y2I1LWFmYjgtZWEzNWNmYTM3MmViLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzIvMS82L2RhdGFzZXRfMjE2YTk5OGMtMzVkZS00OGMyLWEwMTctYzNmZWQ5Nzg3MzE5LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvOS8xL2RhdGFzZXRfODkxMTJlM2YtZTkzNi00NDE5LTkzOGQtYjRiNGRhYTY4ZTQwLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzUvMy8yL2RhdGFzZXRfNTMyMThkNzMtMGY2MS00NTI3LWIyNzktNjJjZWQ5ODcwMWQxLmRhdCcgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvZC8xLzUvZGF0YXNldF9kMTVmZjAyNi1iYWJmLTQxZDEtYjllMC1lNzAxZTBhNTFiNmIuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzIvOS84L2RhdGFzZXRfMjk4ZDk4M2MtM2U1Yy00YjkzLTk0NGMtYjM3MmQ0Mjk1NzQwLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy80L2UvMy9kYXRhc2V0XzRlM2MwMTAzLWRiYjgtNDY1Yy1hYmJmLTdmOWI2NmE4MjYzYi5kYXQ6cGFydF9DLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMS81LzQvZGF0YXNldF8xNTQ1MjI4NC1iYzE5LTQzZDYtODM2Ny0yNzUzMDU2YTk2ZWMuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvZi8zL2RhdGFzZXRfMGYzNmIzM2QtOGMxYy00NzJiLWFiYmQtYzNmNjM0MTgxNzRhLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9hL2QvZC9kYXRhc2V0X2FkZGU5NzBmLTg3YTgtNDViMC05MzAzLWFjZjBkN2VkN2MyZS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOS82L2IvZGF0YXNldF85NmJkODZmNC1jZDBhLTRhMzQtYTFjZi0zMDQ0YTYyZjc3YTIuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvNS81LzgvZGF0YXNldF81NTg3Njc2YS04YzgxLTQ5NTQtYmYzMy0yYzk2NWJmNzYzNWQuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvZi9iL2RhdGFzZXRfYmZiODE1YTItNjdjOC00Y2I1LWFmYjgtZWEzNWNmYTM3MmViLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8yLzEvNi9kYXRhc2V0XzIxNmE5OThjLTM1ZGUtNDhjMi1hMDE3LWMzZmVkOTc4NzMxOS5kYXQ6cGFydF9KLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOC85LzEvZGF0YXNldF84OTExMmUzZi1lOTM2LTQ0MTktOTM4ZC1iNGI0ZGFhNjhlNDAuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzUvMy8yL2RhdGFzZXRfNTMyMThkNzMtMGY2MS00NTI3LWIyNzktNjJjZWQ5ODcwMWQxLmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBlNnBtZzdqdy9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzQ5L291dHB1dHMvZGF0YXNldF84NTY1N2MzOC1jOWJlLTQyMWEtOGQyZS0zYmE1NGRjZDFlZTEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yMml0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjgyaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMiwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDExLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBqc29uXF91c2UgfCBgIHsiX19jdXJyZW50X2Nhc2VfXyI6IDAsICJhc3NlbWJseV9wbGFuX25hbWUiOiAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIsICJlbnp5bWUiOiAiYXV0byIsICJ0b3BvbG9neSI6ICJjaXJjdWxhciIsICJ1c2VfanNvbl9wYXJhbWVycyI6IGZhbHNlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMi84LzQvZGF0YXNldF8yODQ0ZmM5OS0zZGIyLTQ1OGItOTY1Ni05YzE4OTYyYWVkMTMuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy82LzcvZGF0YXNldF8zNjdjOGFkYi02MjNiLTRmYzItODcxMC0xNDAyYjkwZGMyN2EuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi84L2MvZGF0YXNldF9iOGMxNTY4My1hMzY5LTRiNTItYjk0ZC01MmU4MjNlMmRiYzQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvNy9iLzcvZGF0YXNldF83YjcxMTk3Yi05Y2VjLTRlYmMtYTBhYi05YTkwNzA4NTY2ODAuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC84LzIvZGF0YXNldF8wODIwM2JmNC1lMjg1LTRlNDEtODQ1ZC1jN2RiMTA3MDlhMTQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi8xLzcvZGF0YXNldF9iMTc0ZjZmOC1lYjBjLTQ0YjktOWQxYi04OWI3YTYyYmM0OTQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy81LzkvZGF0YXNldF9jNTk4ZDNiNi01OGFiLTQ2OTUtOTlhNS01ZmI2MTk3YTQ4MjMuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC85L2UvZGF0YXNldF8wOWVlYzQ1Ny0zN2RlLTRjMmMtOGI3ZS0xYmUxZGZiYWZmZDYuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZS84LzQvZGF0YXNldF9lODRiYzY2Zi1mMzI3LTQwNzAtODUxMS1jNTczNDE2MWVhNGIuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZC9iLzAvZGF0YXNldF9kYjBjMGYxNy0wOTczLTQ4ZjItYTcwYS0yNzYwYzc1MjFhZjMuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS9mLzEvZGF0YXNldF9hZjE3MTYyNS0wYmI3LTRhNWYtYTg1OC1mOTI5ODNlOWY1NGUuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy81LzEvZGF0YXNldF8zNTE1ZmQzMS0wNzU4LTRlMTQtYTZhYy1iMDFiYTk5NDE4NTAuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZi8yLzEvZGF0YXNldF9mMjExOWViNC1jOWNhLTQ2MWYtOGQ0MC02Mjg0ZWZmYmVmYTEuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy82LzcvZGF0YXNldF8zNjdjOGFkYi02MjNiLTRmYzItODcxMC0xNDAyYjkwZGMyN2EuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvOC9jL2RhdGFzZXRfYjhjMTU2ODMtYTM2OS00YjUyLWI5NGQtNTJlODIzZTJkYmM0LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy83L2IvNy9kYXRhc2V0XzdiNzExOTdiLTljZWMtNGViYy1hMGFiLTlhOTA3MDg1NjY4MC5kYXQ6cGFydF9DLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC84LzIvZGF0YXNldF8wODIwM2JmNC1lMjg1LTRlNDEtODQ1ZC1jN2RiMTA3MDlhMTQuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvMS83L2RhdGFzZXRfYjE3NGY2ZjgtZWIwYy00NGI5LTlkMWItODliN2E2MmJjNDk0LmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jLzUvOS9kYXRhc2V0X2M1OThkM2I2LTU4YWItNDY5NS05OWE1LTVmYjYxOTdhNDgyMy5kYXQ6cGFydF9GLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC85L2UvZGF0YXNldF8wOWVlYzQ1Ny0zN2RlLTRjMmMtOGI3ZS0xYmUxZGZiYWZmZDYuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2UvOC80L2RhdGFzZXRfZTg0YmM2NmYtZjMyNy00MDcwLTg1MTEtYzU3MzQxNjFlYTRiLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9kL2IvMC9kYXRhc2V0X2RiMGMwZjE3LTA5NzMtNDhmMi1hNzBhLTI3NjBjNzUyMWFmMy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS9mLzEvZGF0YXNldF9hZjE3MTYyNS0wYmI3LTRhNWYtYTg1OC1mOTI5ODNlOWY1NGUuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvNS8xL2RhdGFzZXRfMzUxNWZkMzEtMDc1OC00ZTE0LWE2YWMtYjAxYmE5OTQxODUwLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mLzIvMS9kYXRhc2V0X2YyMTE5ZWI0LWM5Y2EtNDYxZi04ZDQwLTYyODRlZmZiZWZhMS5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9qc29uX3BhcmFtZXJzICdmYWxzZScgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wZTZwbWc3ancvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC82My9vdXRwdXRzL2RhdGFzZXRfZmM0YTk1YmEtNDM2OC00NDU3LWIxNzUtZWJmMjZhZjY1OWFhLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40MGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCBOb25lIGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTQsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMCwgImFzc2VtYmx5X3BsYW5fbmFtZSI6ICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiwgImVuenltZSI6ICJhdXRvIiwgInRvcG9sb2d5IjogImNpcmN1bGFyIiwgInVzZV9qc29uX3BhcmFtZXJzIjogZmFsc2V9IGAgfAogICAgICAgfCB1c2VcX2ZpbGVcX25hbWVzXF9hc1xfaWRzIHwgYCB0cnVlIGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcGU2cG1nN2p3L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA4KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzUvZS9kYXRhc2V0XzE1ZTc2MzkzLThiNmQtNDRhNC1hZDU0LTYxZTkwOTBmMjI4MS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy81LzkvNS9kYXRhc2V0XzU5NTJlYWM3LTcyYzUtNGU4Ny1iYWM0LTk0YTZlYjNkNzI1OC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jLzYvYy9kYXRhc2V0X2M2Y2FmMGI2LThkMDctNDk5OC04ZDBkLTI5YjVkNzZmYWY0Ni5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jLzMvZS9kYXRhc2V0X2MzZTFlZjlkLWQ4NzctNDQyMy05ZjZkLTBjMWQxMDljMDEwMS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84LzYvYS9kYXRhc2V0Xzg2YTI0MzY1LTZlZWQtNDQxNS1iNTZmLWQwZmY5ODU0ZjBkYi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy82LzkvNi9kYXRhc2V0XzY5Njk4NzQ5LWFiMTAtNDg2NS1iMTlhLWVmNGM1Y2I0Nzk5Ni5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84L2UvZC9kYXRhc2V0XzhlZGE1MGRjLTZiNGItNGFmOC05MDg3LWM2NDczZTM0NWE0Ny5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mLzkvOS9kYXRhc2V0X2Y5OWVjMTA4LWEzYzYtNGU4MC04ZWZmLTY4ZDliOGU5ZjY3Yy5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzgvNy9kYXRhc2V0XzE4N2MyYzkzLTBhNjMtNDFjZS1iZjRmLTg4YjdjNzcwNTU3Yi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8zL2QvNy9kYXRhc2V0XzNkN2YwNjI3LWJhMWMtNDU0MS05NWY3LTI3ZWQ0MWU2MDFmYS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy80L2MvMS9kYXRhc2V0XzRjMThkOWE1LWUzN2MtNDI4ZS1hNWEzLThmNjk4YmJkOWIzZi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jL2QvMi9kYXRhc2V0X2NkMjE1MjVlLWQ0ZTQtNGUwMy1hNjMyLTVhNzE1MjUyOWQ4Mi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jL2EvYS9kYXRhc2V0X2NhYTRhMTY2LWYzMGItNDVmNS1iMWE5LWNkYWNjNmI0MDA3My5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy81LzkvNS9kYXRhc2V0XzU5NTJlYWM3LTcyYzUtNGU4Ny1iYWM0LTk0YTZlYjNkNzI1OC5kYXQ6cGFydF9BLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy82L2MvZGF0YXNldF9jNmNhZjBiNi04ZDA3LTQ5OTgtOGQwZC0yOWI1ZDc2ZmFmNDYuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvMy9lL2RhdGFzZXRfYzNlMWVmOWQtZDg3Ny00NDIzLTlmNmQtMGMxZDEwOWMwMTAxLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84LzYvYS9kYXRhc2V0Xzg2YTI0MzY1LTZlZWQtNDQxNS1iNTZmLWQwZmY5ODU0ZjBkYi5kYXQ6cGFydF9ELmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvNi85LzYvZGF0YXNldF82OTY5ODc0OS1hYjEwLTQ4NjUtYjE5YS1lZjRjNWNiNDc5OTYuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvZS9kL2RhdGFzZXRfOGVkYTUwZGMtNmI0Yi00YWY4LTkwODctYzY0NzNlMzQ1YTQ3LmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mLzkvOS9kYXRhc2V0X2Y5OWVjMTA4LWEzYzYtNGU4MC04ZWZmLTY4ZDliOGU5ZjY3Yy5kYXQ6cGFydF9HLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMS84LzcvZGF0YXNldF8xODdjMmM5My0wYTYzLTQxY2UtYmY0Zi04OGI3Yzc3MDU1N2IuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvZC83L2RhdGFzZXRfM2Q3ZjA2MjctYmExYy00NTQxLTk1ZjctMjdlZDQxZTYwMWZhLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy80L2MvMS9kYXRhc2V0XzRjMThkOWE1LWUzN2MtNDI4ZS1hNWEzLThmNjk4YmJkOWIzZi5kYXQ6cGFydF9KLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy9kLzIvZGF0YXNldF9jZDIxNTI1ZS1kNGU0LTRlMDMtYTYzMi01YTcxNTI1MjlkODIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvYS9hL2RhdGFzZXRfY2FhNGExNjYtZjMwYi00NWY1LWIxYTktY2RhY2M2YjQwMDczLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ3RydWUnIC0tanNvbl9jb25mICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvYi84L2RhdGFzZXRfOWI4OTlhZmYtMjgzNS00ZjEwLTg0ZjMtNTIwMzRjNTViNWRjLmRhdCcgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wZTZwbWc3ancvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC83OC9vdXRwdXRzL2RhdGFzZXRfNmVlMmNkNWMtZDQzYy00ZmM3LTllYmMtMjY1Zjg5YTg3Njk2LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zOWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTYsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMSwgImpzb25fY29uZiI6IHsidmFsdWVzIjogW3siaWQiOiA5NSwgInNyYyI6ICJoZGEifV19LCAidXNlX2pzb25fcGFyYW1lcnMiOiB0cnVlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K'));
     </script>
   </body>
 </html>
\ No newline at end of file
--- a/output.json	Mon May 26 13:39:57 2025 +0000
+++ b/output.json	Thu Jul 17 10:17:24 2025 +0000
@@ -3,101 +3,102 @@
         "num_errors": 0,
         "num_failures": 0,
         "num_skips": 0,
-        "num_tests": 7
+        "num_tests": 8
     },
     "tests": [
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "1e8e6749bc68d8e8",
+                        "id": "54d710fc68386373",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "Type2sRestrictionAssembly",
                     "genbank_files": {
-                        "id": "e2ca7f14a85a8d44",
+                        "id": "986c9b47c580ae59",
                         "src": "hdca"
                     },
-                    "topology": "circular"
+                    "json_use|assembly_plan_name": "Type2sRestrictionAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/2/0/d/dataset_20d4061a-81e4-4915-a841-ae8aa595c7b4.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/d/d/8/dataset_dd844d61-fc05-41d9-8179-21233649407d.dat,/tmp/tmpm1fyob3t/files/c/b/2/dataset_cb2362f3-4b32-46cc-a227-dc15742bf9e7.dat,/tmp/tmpm1fyob3t/files/6/d/7/dataset_6d72dfe4-3e6b-4baf-b7b5-9fb2e843461a.dat,/tmp/tmpm1fyob3t/files/3/3/e/dataset_33e804b2-0fbe-4844-9b5d-420e8a2db772.dat,/tmp/tmpm1fyob3t/files/2/d/b/dataset_2db3825c-538b-483f-b6ff-8dc4ecc03780.dat,/tmp/tmpm1fyob3t/files/0/4/8/dataset_048ee7ed-5f4c-41ef-aed4-f2cf975aac92.dat,/tmp/tmpm1fyob3t/files/c/5/0/dataset_c505c12e-7089-4a17-a605-4f11dad6f1d7.dat,/tmp/tmpm1fyob3t/files/4/9/1/dataset_4912f12d-0842-46b7-8aaf-2a94a52f04f8.dat,/tmp/tmpm1fyob3t/files/b/2/b/dataset_b2b96d41-c7c8-49c1-9d35-ceaa1c7d3027.dat,/tmp/tmpm1fyob3t/files/b/8/f/dataset_b8fd4610-2f6d-475c-8405-8bf8c2bc0306.dat,/tmp/tmpm1fyob3t/files/0/9/f/dataset_09f4b020-4e7b-4939-b3ba-348f91cb92bc.dat,/tmp/tmpm1fyob3t/files/e/b/7/dataset_eb730263-9442-4dca-a2dc-34b1cae450d7.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/d/d/8/dataset_dd844d61-fc05-41d9-8179-21233649407d.dat:part_A.gb,/tmp/tmpm1fyob3t/files/c/b/2/dataset_cb2362f3-4b32-46cc-a227-dc15742bf9e7.dat:part_B.gb,/tmp/tmpm1fyob3t/files/6/d/7/dataset_6d72dfe4-3e6b-4baf-b7b5-9fb2e843461a.dat:part_C.gb,/tmp/tmpm1fyob3t/files/3/3/e/dataset_33e804b2-0fbe-4844-9b5d-420e8a2db772.dat:part_D.gb,/tmp/tmpm1fyob3t/files/2/d/b/dataset_2db3825c-538b-483f-b6ff-8dc4ecc03780.dat:part_E.gb,/tmp/tmpm1fyob3t/files/0/4/8/dataset_048ee7ed-5f4c-41ef-aed4-f2cf975aac92.dat:part_F.gb,/tmp/tmpm1fyob3t/files/c/5/0/dataset_c505c12e-7089-4a17-a605-4f11dad6f1d7.dat:part_G.gb,/tmp/tmpm1fyob3t/files/4/9/1/dataset_4912f12d-0842-46b7-8aaf-2a94a52f04f8.dat:part_H.gb,/tmp/tmpm1fyob3t/files/b/2/b/dataset_b2b96d41-c7c8-49c1-9d35-ceaa1c7d3027.dat:part_I.gb,/tmp/tmpm1fyob3t/files/b/8/f/dataset_b8fd4610-2f6d-475c-8405-8bf8c2bc0306.dat:part_J.gb,/tmp/tmpm1fyob3t/files/0/9/f/dataset_09f4b020-4e7b-4939-b3ba-348f91cb92bc.dat:part_K.gb,/tmp/tmpm1fyob3t/files/e/b/7/dataset_eb730263-9442-4dca-a2dc-34b1cae450d7.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/14/outputs/dataset_64d1d8ac-32f0-4095-be30-22eee31e24a4.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/0/b/1/dataset_0b1d9a31-e124-42cf-b995-f7c136900f29.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/7/6/9/dataset_76952c3c-fc12-4748-87cb-b6af38db9d3e.dat,/tmp/tmpe6pmg7jw/files/9/a/6/dataset_9a60f4af-d7d4-4bce-ab79-3718dac468ed.dat,/tmp/tmpe6pmg7jw/files/f/e/c/dataset_fec08236-4b1b-4174-af9c-7c3a84487424.dat,/tmp/tmpe6pmg7jw/files/2/0/6/dataset_206ca419-7921-4fc1-9be0-12c35c84bd65.dat,/tmp/tmpe6pmg7jw/files/3/1/b/dataset_31bb0b24-e75c-493f-a016-3796d54eaa18.dat,/tmp/tmpe6pmg7jw/files/6/f/a/dataset_6fa953c7-a9a7-4ba7-a030-da147eadefdc.dat,/tmp/tmpe6pmg7jw/files/7/e/f/dataset_7ef147cb-f331-435c-9a1e-6f0e52abd102.dat,/tmp/tmpe6pmg7jw/files/9/b/6/dataset_9b611c55-c19e-42ce-b45c-40ac049b94cb.dat,/tmp/tmpe6pmg7jw/files/9/b/d/dataset_9bd8627e-0417-475f-b855-352bcd890630.dat,/tmp/tmpe6pmg7jw/files/1/6/4/dataset_164135c0-7b54-4ea0-86d3-e9e928cbc398.dat,/tmp/tmpe6pmg7jw/files/b/e/9/dataset_be927bb4-1a34-43bb-8680-81589459732b.dat,/tmp/tmpe6pmg7jw/files/8/a/4/dataset_8a4bab33-b3e8-4586-b375-ae904dc06793.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/7/6/9/dataset_76952c3c-fc12-4748-87cb-b6af38db9d3e.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/9/a/6/dataset_9a60f4af-d7d4-4bce-ab79-3718dac468ed.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/f/e/c/dataset_fec08236-4b1b-4174-af9c-7c3a84487424.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/2/0/6/dataset_206ca419-7921-4fc1-9be0-12c35c84bd65.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/3/1/b/dataset_31bb0b24-e75c-493f-a016-3796d54eaa18.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/6/f/a/dataset_6fa953c7-a9a7-4ba7-a030-da147eadefdc.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/7/e/f/dataset_7ef147cb-f331-435c-9a1e-6f0e52abd102.dat:part_G.gb,/tmp/tmpe6pmg7jw/files/9/b/6/dataset_9b611c55-c19e-42ce-b45c-40ac049b94cb.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/9/b/d/dataset_9bd8627e-0417-475f-b855-352bcd890630.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/1/6/4/dataset_164135c0-7b54-4ea0-86d3-e9e928cbc398.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/b/e/9/dataset_be927bb4-1a34-43bb-8680-81589459732b.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/8/a/4/dataset_8a4bab33-b3e8-4586-b375-ae904dc06793.dat:part_L.gb' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'Type2sRestrictionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/14/outputs/dataset_95e21ebc-5bff-4544-a5d4-06db22e91066.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:02:32.643157",
+                    "create_time": "2025-07-17T10:10:24.406223",
                     "dependencies": [],
                     "exit_code": 0,
-                    "external_id": "172939",
-                    "galaxy_version": "24.2",
+                    "external_id": "75641",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "e2ca7f14a85a8d44",
-                    "id": "a36db940f4513bd9",
+                    "history_id": "986c9b47c580ae59",
+                    "id": "98a2432f1cff4f91",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "1e8e6749bc68d8e8",
+                            "id": "54d710fc68386373",
                             "src": "hda",
-                            "uuid": "20d4061a-81e4-4915-a841-ae8aa595c7b4"
+                            "uuid": "0b1d9a31-e124-42cf-b995-f7c136900f29"
                         },
                         "genbank_files1": {
-                            "id": "e2ca7f14a85a8d44",
+                            "id": "986c9b47c580ae59",
                             "src": "hda",
-                            "uuid": "dd844d61-fc05-41d9-8179-21233649407d"
+                            "uuid": "76952c3c-fc12-4748-87cb-b6af38db9d3e"
                         },
                         "genbank_files10": {
-                            "id": "fbec4a551130f847",
+                            "id": "8de66704b7df8b5e",
                             "src": "hda",
-                            "uuid": "b8fd4610-2f6d-475c-8405-8bf8c2bc0306"
+                            "uuid": "164135c0-7b54-4ea0-86d3-e9e928cbc398"
                         },
                         "genbank_files11": {
-                            "id": "5bd8560352cb0b69",
+                            "id": "54c6d71c8dc7cb11",
                             "src": "hda",
-                            "uuid": "09f4b020-4e7b-4939-b3ba-348f91cb92bc"
+                            "uuid": "be927bb4-1a34-43bb-8680-81589459732b"
                         },
                         "genbank_files12": {
-                            "id": "cb2fe7fb50f38553",
+                            "id": "2592d2c705ba0baa",
                             "src": "hda",
-                            "uuid": "eb730263-9442-4dca-a2dc-34b1cae450d7"
+                            "uuid": "8a4bab33-b3e8-4586-b375-ae904dc06793"
                         },
                         "genbank_files2": {
-                            "id": "62e98d1a229b6ef5",
+                            "id": "8354ecc64d56337d",
                             "src": "hda",
-                            "uuid": "cb2362f3-4b32-46cc-a227-dc15742bf9e7"
+                            "uuid": "9a60f4af-d7d4-4bce-ab79-3718dac468ed"
                         },
                         "genbank_files3": {
-                            "id": "f8fe24202fc5b2e5",
+                            "id": "c06bae188baa9490",
                             "src": "hda",
-                            "uuid": "6d72dfe4-3e6b-4baf-b7b5-9fb2e843461a"
+                            "uuid": "fec08236-4b1b-4174-af9c-7c3a84487424"
                         },
                         "genbank_files4": {
-                            "id": "0d58e12bbe78a903",
+                            "id": "71d208f6d8b613ba",
                             "src": "hda",
-                            "uuid": "33e804b2-0fbe-4844-9b5d-420e8a2db772"
+                            "uuid": "206ca419-7921-4fc1-9be0-12c35c84bd65"
                         },
                         "genbank_files5": {
-                            "id": "3937d5ff7c0e1373",
+                            "id": "58ad66a9f93223b8",
                             "src": "hda",
-                            "uuid": "2db3825c-538b-483f-b6ff-8dc4ecc03780"
+                            "uuid": "31bb0b24-e75c-493f-a016-3796d54eaa18"
                         },
                         "genbank_files6": {
-                            "id": "473b1992d5f5b84f",
+                            "id": "e9003a596293e37c",
                             "src": "hda",
-                            "uuid": "048ee7ed-5f4c-41ef-aed4-f2cf975aac92"
+                            "uuid": "6fa953c7-a9a7-4ba7-a030-da147eadefdc"
                         },
                         "genbank_files7": {
-                            "id": "9b5c1fe7a52a75e0",
+                            "id": "8c39a9a410cc0a00",
                             "src": "hda",
-                            "uuid": "c505c12e-7089-4a17-a605-4f11dad6f1d7"
+                            "uuid": "7ef147cb-f331-435c-9a1e-6f0e52abd102"
                         },
                         "genbank_files8": {
-                            "id": "c32c50a47ebf8564",
+                            "id": "f7b25594aba42961",
                             "src": "hda",
-                            "uuid": "4912f12d-0842-46b7-8aaf-2a94a52f04f8"
+                            "uuid": "9b611c55-c19e-42ce-b45c-40ac049b94cb"
                         },
                         "genbank_files9": {
-                            "id": "5f035ce298b798b0",
+                            "id": "5f098a2d242af5ee",
                             "src": "hda",
-                            "uuid": "b2b96d41-c7c8-49c1-9d35-ceaa1c7d3027"
+                            "uuid": "9bd8627e-0417-475f-b855-352bcd890630"
                         }
                     },
                     "job_messages": [],
@@ -108,60 +109,59 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "62e98d1a229b6ef5",
+                            "id": "8354ecc64d56337d",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "182eefa577c2a56d",
+                            "id": "172543d29b19f394",
                             "src": "hda",
-                            "uuid": "991437a5-bbe4-4adb-8831-c9a871adb17f"
+                            "uuid": "c12d7e47-49c5-4805-8a24-5d4fb0aa8cfa"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "979fd704a8b37879",
+                            "id": "018c827a8e5b161a",
                             "src": "hda",
-                            "uuid": "9ebdb527-8609-4bc8-85a3-f8775156c356"
+                            "uuid": "be0c60c4-c33d-4855-95d4-ffdb53751eea"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "b53ff5232a859d40",
+                            "id": "494079827008dff1",
                             "src": "hda",
-                            "uuid": "235361e4-93cc-4b56-ad81-c33ce8f593f0"
+                            "uuid": "77ec05f3-e147-4ff3-af59-1d173fbc6d27"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "1ce0e68b6cd95b3c",
+                            "id": "665c2a499b613b70",
                             "src": "hda",
-                            "uuid": "49100d5c-134b-4cb0-a86b-2cf03a336b1c"
+                            "uuid": "fd3ed880-c345-47d7-8a38-1ce5c507b417"
                         },
                         "output_zip": {
-                            "id": "a36db940f4513bd9",
+                            "id": "98a2432f1cff4f91",
                             "src": "hda",
-                            "uuid": "64d1d8ac-32f0-4095-be30-22eee31e24a4"
+                            "uuid": "95e21ebc-5bff-4544-a5d4-06db22e91066"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 1, \"src\": \"hdca\"}]}",
-                        "topology": "\"circular\""
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"Type2sRestrictionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.58it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.26it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.82it/s, now=None]\r                                                                 \r",
+                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.45it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.23it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.84it/s, now=None]\r                                                                 \r",
                     "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.58it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.26it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.82it/s, now=None]\r                                                                 \r",
+                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.45it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.23it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.84it/s, now=None]\r                                                                 \r",
                     "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:02:45.106475",
+                    "update_time": "2025-07-17T10:10:36.297958",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
                 "test_index": 0,
-                "time_seconds": 53.48332858085632,
+                "time_seconds": 52.21098494529724,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -171,23 +171,24 @@
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "035124d32eef3033",
+                        "id": "cf7d3dafd862f640",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "GibsonAssembly",
                     "genbank_files": {
-                        "id": "f8fe24202fc5b2e5",
+                        "id": "c06bae188baa9490",
                         "src": "hdca"
                     },
-                    "topology": "circular"
+                    "json_use|assembly_plan_name": "GibsonAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/1/6/f/dataset_16f6d475-b614-4427-9c06-95a0d56d3c92.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/9/6/a/dataset_96a8f769-3544-4407-b064-04f24a733896.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'GibsonAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/9/6/a/dataset_96a8f769-3544-4407-b064-04f24a733896.dat:gibson_sequences.fa' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/17/outputs/dataset_505ecb2d-a6ca-40d3-864d-fc3e8bc7f9a1.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/2/a/d/dataset_2ad9afbb-7953-4cd9-bff3-482993791028.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/7/0/8/dataset_708e1901-be64-41f9-b767-b1749a71b785.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/7/0/8/dataset_708e1901-be64-41f9-b767-b1749a71b785.dat:gibson_sequences.fa' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'GibsonAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/17/outputs/dataset_9a58e169-47f4-4418-8a3b-0fec86242b5c.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:02:55.721992",
+                    "create_time": "2025-07-17T10:10:47.298570",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -367,21 +368,21 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "173310",
-                    "galaxy_version": "24.2",
+                    "external_id": "76029",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "62e98d1a229b6ef5",
-                    "id": "b53ff5232a859d40",
+                    "history_id": "8354ecc64d56337d",
+                    "id": "494079827008dff1",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "035124d32eef3033",
+                            "id": "cf7d3dafd862f640",
                             "src": "hda",
-                            "uuid": "16f6d475-b614-4427-9c06-95a0d56d3c92"
+                            "uuid": "2ad9afbb-7953-4cd9-bff3-482993791028"
                         },
                         "genbank_files1": {
-                            "id": "1fe688df02a38cc2",
+                            "id": "ccc90f05d17193c7",
                             "src": "hda",
-                            "uuid": "96a8f769-3544-4407-b064-04f24a733896"
+                            "uuid": "708e1901-be64-41f9-b767-b1749a71b785"
                         }
                     },
                     "job_messages": [],
@@ -392,55 +393,54 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "0d58e12bbe78a903",
+                            "id": "71d208f6d8b613ba",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "f970a04054a49348",
+                            "id": "5c63ea88ecac53b0",
                             "src": "hda",
-                            "uuid": "ff8ea1a1-10ff-4416-b944-a78a4fd3e72e"
+                            "uuid": "bdd63ae3-8743-4fb8-b62e-15e2dd1b22fe"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "ae9b306409c7f353",
+                            "id": "56f89f48d02eaad8",
                             "src": "hda",
-                            "uuid": "7afee741-2c2b-4e3b-a947-819ebb5b67b4"
+                            "uuid": "ae8106cf-202a-4ae6-b3be-0af4a59bf28b"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "791483eeafbe6bcb",
+                            "id": "a5c371b6918b1c88",
                             "src": "hda",
-                            "uuid": "c820ba84-23dc-4e1c-b2de-abed54b17015"
+                            "uuid": "7085c961-0057-4a6f-93a5-e28a77e87a65"
                         },
                         "output_zip": {
-                            "id": "cd80768c91dddfb6",
+                            "id": "f0ec65f930df3348",
                             "src": "hda",
-                            "uuid": "505ecb2d-a6ca-40d3-864d-fc3e8bc7f9a1"
+                            "uuid": "9a58e169-47f4-4418-8a3b-0fec86242b5c"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"GibsonAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 3, \"src\": \"hdca\"}]}",
-                        "topology": "\"circular\""
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"GibsonAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\rassembly:  40%|\u2588\u2588\u2588\u2588      | 2/5 [00:00<00:00,  4.35it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.33it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.31it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.53it/s, now=None]\r                                                                 \r",
+                    "stderr": "\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\rassembly:  40%|\u2588\u2588\u2588\u2588      | 2/5 [00:00<00:00,  4.37it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.38it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.38it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.62it/s, now=None]\r                                                                 \r",
                     "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\rassembly:  40%|\u2588\u2588\u2588\u2588      | 2/5 [00:00<00:00,  4.35it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.33it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.31it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.53it/s, now=None]\r                                                                 \r",
+                    "tool_stderr": "\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]\rassembly:  40%|\u2588\u2588\u2588\u2588      | 2/5 [00:00<00:00,  4.37it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.38it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.38it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.62it/s, now=None]\r                                                                 \r",
                     "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:03:07.748084",
+                    "update_time": "2025-07-17T10:10:58.876561",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
                 "test_index": 1,
-                "time_seconds": 22.338457345962524,
+                "time_seconds": 22.198808431625366,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -450,23 +450,24 @@
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "c9169186136d0f27",
+                        "id": "9f199e72d4c8734c",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "LigaseCyclingReactionAssembly",
                     "genbank_files": {
-                        "id": "3937d5ff7c0e1373",
+                        "id": "58ad66a9f93223b8",
                         "src": "hdca"
                     },
-                    "topology": "circular"
+                    "json_use|assembly_plan_name": "LigaseCyclingReactionAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/f/7/c/dataset_f7c9ad78-8e74-4a3c-9579-80a93ac923de.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/f/5/6/dataset_f56913bd-fc92-4122-8cf1-d9b1c60e8385.dat,/tmp/tmpm1fyob3t/files/3/b/4/dataset_3b4e75b3-e6a6-459a-a959-d43ce00c3701.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'LigaseCyclingReactionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/f/5/6/dataset_f56913bd-fc92-4122-8cf1-d9b1c60e8385.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpm1fyob3t/files/3/b/4/dataset_3b4e75b3-e6a6-459a-a959-d43ce00c3701.dat:RFP_GFP_plasmid_parts.fa' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/21/outputs/dataset_3fc625c8-722f-4efb-9c09-0d664dec2a9d.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/d/4/f/dataset_d4f42cf4-85ed-4eb7-ab79-944239671a0c.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/c/6/6/dataset_c66662f5-5307-40f5-b7d8-1ae34e9bc594.dat,/tmp/tmpe6pmg7jw/files/e/b/b/dataset_ebb77d89-fcaf-4aad-ae07-bd6df1cbc75d.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/c/6/6/dataset_c66662f5-5307-40f5-b7d8-1ae34e9bc594.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpe6pmg7jw/files/e/b/b/dataset_ebb77d89-fcaf-4aad-ae07-bd6df1cbc75d.dat:RFP_GFP_plasmid_parts.fa' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'LigaseCyclingReactionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/21/outputs/dataset_e37b2d54-bd4d-445c-9171-dd049f49ed36.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:03:18.983816",
+                    "create_time": "2025-07-17T10:11:10.098701",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -646,26 +647,26 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "173689",
-                    "galaxy_version": "24.2",
+                    "external_id": "76477",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "f8fe24202fc5b2e5",
-                    "id": "cd80768c91dddfb6",
+                    "history_id": "c06bae188baa9490",
+                    "id": "f0ec65f930df3348",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "c9169186136d0f27",
+                            "id": "9f199e72d4c8734c",
                             "src": "hda",
-                            "uuid": "f7c9ad78-8e74-4a3c-9579-80a93ac923de"
+                            "uuid": "d4f42cf4-85ed-4eb7-ab79-944239671a0c"
                         },
                         "genbank_files1": {
-                            "id": "f14f22136515e5fc",
+                            "id": "4eec6dacaee8b95b",
                             "src": "hda",
-                            "uuid": "f56913bd-fc92-4122-8cf1-d9b1c60e8385"
+                            "uuid": "c66662f5-5307-40f5-b7d8-1ae34e9bc594"
                         },
                         "genbank_files2": {
-                            "id": "d00c2a698869e2f3",
+                            "id": "214d04ae88ac0b41",
                             "src": "hda",
-                            "uuid": "3b4e75b3-e6a6-459a-a959-d43ce00c3701"
+                            "uuid": "ebb77d89-fcaf-4aad-ae07-bd6df1cbc75d"
                         }
                     },
                     "job_messages": [],
@@ -676,40 +677,39 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "473b1992d5f5b84f",
+                            "id": "e9003a596293e37c",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "output_zip": {
-                            "id": "0bb6e1adb7bbb7d6",
+                            "id": "1893df3b29988972",
                             "src": "hda",
-                            "uuid": "3fc625c8-722f-4efb-9c09-0d664dec2a9d"
+                            "uuid": "e37b2d54-bd4d-445c-9171-dd049f49ed36"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"LigaseCyclingReactionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 5, \"src\": \"hdca\"}]}",
-                        "topology": "\"circular\""
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"LigaseCyclingReactionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00,  2.40it/s, now=None]\r                                                                 \r",
+                    "stderr": "\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00,  2.35it/s, now=None]\r                                                                 \r",
                     "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00,  2.40it/s, now=None]\r                                                                 \r",
+                    "tool_stderr": "\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00,  2.35it/s, now=None]\r                                                                 \r",
                     "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:03:31.119796",
+                    "update_time": "2025-07-17T10:11:21.625362",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
                 "test_index": 2,
-                "time_seconds": 23.440476655960083,
+                "time_seconds": 22.644192218780518,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -719,23 +719,24 @@
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "b66a1bb5ed06a6bf",
+                        "id": "62b2e7c0b424e83e",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "BASICAssembly",
                     "genbank_files": {
-                        "id": "9b5c1fe7a52a75e0",
+                        "id": "8c39a9a410cc0a00",
                         "src": "hdca"
                     },
-                    "topology": "circular"
+                    "json_use|assembly_plan_name": "BASICAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/f/b/4/dataset_fb426ceb-2615-447d-b04e-ae4253af648d.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/e/c/b/dataset_ecb057a2-dbf8-4105-b55e-d726ec1e9693.dat,/tmp/tmpm1fyob3t/files/4/9/8/dataset_498fe703-52c3-4162-be00-93f49f00689d.dat,/tmp/tmpm1fyob3t/files/d/4/0/dataset_d402c2ac-ca2d-46b6-b9d3-989739678de1.dat,/tmp/tmpm1fyob3t/files/1/1/2/dataset_1124ff36-f61b-4932-adc6-0b6de5a888ae.dat,/tmp/tmpm1fyob3t/files/8/f/e/dataset_8fe51091-39c5-4aa6-b0ec-fbc34712e405.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BASICAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/e/c/b/dataset_ecb057a2-dbf8-4105-b55e-d726ec1e9693.dat:GFP.gb,/tmp/tmpm1fyob3t/files/4/9/8/dataset_498fe703-52c3-4162-be00-93f49f00689d.dat:p15A_kan.gb,/tmp/tmpm1fyob3t/files/d/4/0/dataset_d402c2ac-ca2d-46b6-b9d3-989739678de1.dat:promoter.gb,/tmp/tmpm1fyob3t/files/1/1/2/dataset_1124ff36-f61b-4932-adc6-0b6de5a888ae.dat:RFP.gb,/tmp/tmpm1fyob3t/files/8/f/e/dataset_8fe51091-39c5-4aa6-b0ec-fbc34712e405.dat:oligos.fa' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/28/outputs/dataset_45ef7ed5-48aa-4286-ac51-3391b593eb7c.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/b/f/1/dataset_bf11bd3d-ca0e-4756-8106-142184dc57e7.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/a/f/3/dataset_af32db16-e6dc-493f-b6a7-5a3b6725a736.dat,/tmp/tmpe6pmg7jw/files/a/4/9/dataset_a4936e9b-d8be-4cf9-8d6c-1c625676bc58.dat,/tmp/tmpe6pmg7jw/files/0/3/c/dataset_03cda120-0c4d-4452-afab-925df4a5723a.dat,/tmp/tmpe6pmg7jw/files/3/b/1/dataset_3b164cad-fbab-47a9-8965-c95820826daf.dat,/tmp/tmpe6pmg7jw/files/a/b/3/dataset_ab35511d-2fbf-4014-b079-65b270bd9cc8.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/a/f/3/dataset_af32db16-e6dc-493f-b6a7-5a3b6725a736.dat:GFP.gb,/tmp/tmpe6pmg7jw/files/a/4/9/dataset_a4936e9b-d8be-4cf9-8d6c-1c625676bc58.dat:p15A_kan.gb,/tmp/tmpe6pmg7jw/files/0/3/c/dataset_03cda120-0c4d-4452-afab-925df4a5723a.dat:promoter.gb,/tmp/tmpe6pmg7jw/files/3/b/1/dataset_3b164cad-fbab-47a9-8965-c95820826daf.dat:RFP.gb,/tmp/tmpe6pmg7jw/files/a/b/3/dataset_ab35511d-2fbf-4014-b079-65b270bd9cc8.dat:oligos.fa' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'BASICAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/28/outputs/dataset_f130e84e-8140-449b-bb7e-8df370a421d1.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:03:51.986652",
+                    "create_time": "2025-07-17T10:11:42.348377",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -915,41 +916,41 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "174270",
-                    "galaxy_version": "24.2",
+                    "external_id": "77127",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "0d58e12bbe78a903",
-                    "id": "0bb6e1adb7bbb7d6",
+                    "history_id": "71d208f6d8b613ba",
+                    "id": "1893df3b29988972",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "b66a1bb5ed06a6bf",
+                            "id": "62b2e7c0b424e83e",
                             "src": "hda",
-                            "uuid": "fb426ceb-2615-447d-b04e-ae4253af648d"
+                            "uuid": "bf11bd3d-ca0e-4756-8106-142184dc57e7"
                         },
                         "genbank_files1": {
-                            "id": "4c26f2b3928e5c2b",
+                            "id": "b20d34fd097d655b",
                             "src": "hda",
-                            "uuid": "ecb057a2-dbf8-4105-b55e-d726ec1e9693"
+                            "uuid": "af32db16-e6dc-493f-b6a7-5a3b6725a736"
                         },
                         "genbank_files2": {
-                            "id": "7f1b25c57f1b4097",
+                            "id": "38d1a5747f8e5978",
                             "src": "hda",
-                            "uuid": "498fe703-52c3-4162-be00-93f49f00689d"
+                            "uuid": "a4936e9b-d8be-4cf9-8d6c-1c625676bc58"
                         },
                         "genbank_files3": {
-                            "id": "cbd9b7f3981a10ff",
+                            "id": "aa0c2bc050c99399",
                             "src": "hda",
-                            "uuid": "d402c2ac-ca2d-46b6-b9d3-989739678de1"
+                            "uuid": "03cda120-0c4d-4452-afab-925df4a5723a"
                         },
                         "genbank_files4": {
-                            "id": "8f1ec376bf339086",
+                            "id": "7696fc7f810474ba",
                             "src": "hda",
-                            "uuid": "1124ff36-f61b-4932-adc6-0b6de5a888ae"
+                            "uuid": "3b164cad-fbab-47a9-8965-c95820826daf"
                         },
                         "genbank_files5": {
-                            "id": "a91e9fd0ce2e3c53",
+                            "id": "bf4065b67294e257",
                             "src": "hda",
-                            "uuid": "8fe51091-39c5-4aa6-b0ec-fbc34712e405"
+                            "uuid": "ab35511d-2fbf-4014-b079-65b270bd9cc8"
                         }
                     },
                     "job_messages": [],
@@ -960,40 +961,39 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "c32c50a47ebf8564",
+                            "id": "f7b25594aba42961",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "output_zip": {
-                            "id": "2be24ce9bdbc87e1",
+                            "id": "1f477a8cb4ab1699",
                             "src": "hda",
-                            "uuid": "45ef7ed5-48aa-4286-ac51-3391b593eb7c"
+                            "uuid": "f130e84e-8140-449b-bb7e-8df370a421d1"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"BASICAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 7, \"src\": \"hdca\"}]}",
-                        "topology": "\"circular\""
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"BASICAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/10 [00:00<?, ?it/s, now=None]\r                                                          \r\rassembly:   0%|          | 0/8 [00:00<?, ?it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 6/8 [00:00<00:00, 48.97it/s, now=None]\r                                                                 \r",
+                    "stderr": "\rassembly:   0%|          | 0/10 [00:00<?, ?it/s, now=None]\r                                                          \r\rassembly:   0%|          | 0/8 [00:00<?, ?it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 6/8 [00:00<00:00, 49.66it/s, now=None]\r                                                                 \r",
                     "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 2, 'errored_assemblies': 8, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/10 [00:00<?, ?it/s, now=None]\r                                                          \r\rassembly:   0%|          | 0/8 [00:00<?, ?it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 6/8 [00:00<00:00, 48.97it/s, now=None]\r                                                                 \r",
+                    "tool_stderr": "\rassembly:   0%|          | 0/10 [00:00<?, ?it/s, now=None]\r                                                          \r\rassembly:   0%|          | 0/8 [00:00<?, ?it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 6/8 [00:00<00:00, 49.66it/s, now=None]\r                                                                 \r",
                     "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 2, 'errored_assemblies': 8, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:04:01.978111",
+                    "update_time": "2025-07-17T10:11:52.291581",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
                 "test_index": 3,
-                "time_seconds": 30.717636823654175,
+                "time_seconds": 30.479472160339355,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -1003,23 +1003,327 @@
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "5493159c7d57114c",
+                        "id": "38b6c0c549bf284f",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "BioBrickStandardAssembly",
                     "genbank_files": {
-                        "id": "5f035ce298b798b0",
+                        "id": "5f098a2d242af5ee",
                         "src": "hdca"
                     },
-                    "topology": "circular"
+                    "json_use|assembly_plan_name": "BioBrickStandardAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/4/9/a/dataset_49af2c08-3ad4-4940-ae84-f93df3c0dd8a.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/8/9/4/dataset_894d0a5e-2d87-4861-85cb-b5cae83b19cb.dat,/tmp/tmpm1fyob3t/files/3/1/5/dataset_315f1808-e9c5-45fb-8cb8-b71e8e1c8366.dat,/tmp/tmpm1fyob3t/files/b/6/7/dataset_b67a6264-6208-4b44-8fd4-47ba3f96faee.dat,/tmp/tmpm1fyob3t/files/c/e/3/dataset_ce3a0b5e-0344-4422-b84a-84904818396b.dat,/tmp/tmpm1fyob3t/files/b/7/d/dataset_b7dcace3-2dbd-49db-94ac-98485bf522aa.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BioBrickStandardAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/8/9/4/dataset_894d0a5e-2d87-4861-85cb-b5cae83b19cb.dat:BBa_E0040_GFP.gb,/tmp/tmpm1fyob3t/files/3/1/5/dataset_315f1808-e9c5-45fb-8cb8-b71e8e1c8366.dat:BBa_J23119_prom.gb,/tmp/tmpm1fyob3t/files/b/6/7/dataset_b67a6264-6208-4b44-8fd4-47ba3f96faee.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpm1fyob3t/files/c/e/3/dataset_ce3a0b5e-0344-4422-b84a-84904818396b.dat:BBa_J61048_term.gb,/tmp/tmpm1fyob3t/files/b/7/d/dataset_b7dcace3-2dbd-49db-94ac-98485bf522aa.dat:BBa_K611094_bar.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/35/outputs/dataset_3f72ea64-02f3-413e-9d9a-5c43eaaadf14.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/3/0/7/dataset_307ff774-78e5-410b-926b-396bf0346f5f.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/8/7/9/dataset_879f6c49-14f5-4f78-8b32-f06d098a7f4f.dat,/tmp/tmpe6pmg7jw/files/a/3/c/dataset_a3cb8cea-16ad-4a33-8e41-a9b378b2974a.dat,/tmp/tmpe6pmg7jw/files/c/7/b/dataset_c7bca70e-0ae9-4062-b185-1e0e5ed116a6.dat,/tmp/tmpe6pmg7jw/files/b/3/a/dataset_b3a11bc9-4c29-470c-8985-d845c2f9e183.dat,/tmp/tmpe6pmg7jw/files/0/8/1/dataset_08129340-240c-4349-af6c-0379d32cae9c.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/8/7/9/dataset_879f6c49-14f5-4f78-8b32-f06d098a7f4f.dat:BBa_E0040_GFP.gb,/tmp/tmpe6pmg7jw/files/a/3/c/dataset_a3cb8cea-16ad-4a33-8e41-a9b378b2974a.dat:BBa_J23119_prom.gb,/tmp/tmpe6pmg7jw/files/c/7/b/dataset_c7bca70e-0ae9-4062-b185-1e0e5ed116a6.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpe6pmg7jw/files/b/3/a/dataset_b3a11bc9-4c29-470c-8985-d845c2f9e183.dat:BBa_J61048_term.gb,/tmp/tmpe6pmg7jw/files/0/8/1/dataset_08129340-240c-4349-af6c-0379d32cae9c.dat:BBa_K611094_bar.gb' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'BioBrickStandardAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/35/outputs/dataset_c2f7d71f-de27-48c6-bc1f-b656bc8d53f1.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:04:23.734013",
+                    "create_time": "2025-07-17T10:12:13.370696",
+                    "dependencies": [
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "flametree",
+                            "version": "0.1.11"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "biopython",
+                            "version": "1.85"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "proglog",
+                            "version": "0.1.10"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "pandas",
+                            "version": "2.2.3"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "dnacauldron",
+                            "version": "2.0.12"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "pdf-reports",
+                            "version": "0.3.9"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "sequenticon",
+                            "version": "0.1.8"
+                        },
+                        {
+                            "cacheable": false,
+                            "dependency_resolver": {
+                                "auto_init": true,
+                                "auto_install": true,
+                                "can_uninstall_dependencies": true,
+                                "ensure_channels": "conda-forge,bioconda",
+                                "model_class": "CondaDependencyResolver",
+                                "prefix": "/home/rkhaled/miniconda3",
+                                "read_only": false,
+                                "resolver_type": "conda",
+                                "resolves_simple_dependencies": true,
+                                "use_local": false,
+                                "versionless": false
+                            },
+                            "dependency_type": "conda",
+                            "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf",
+                            "exact": true,
+                            "model_class": "MergedCondaDependency",
+                            "name": "dna_features_viewer",
+                            "version": "3.1.5"
+                        }
+                    ],
+                    "exit_code": 0,
+                    "external_id": "77757",
+                    "galaxy_version": "25.0",
+                    "handler": null,
+                    "history_id": "58ad66a9f93223b8",
+                    "id": "1f477a8cb4ab1699",
+                    "inputs": {
+                        "assembly_csv": {
+                            "id": "38b6c0c549bf284f",
+                            "src": "hda",
+                            "uuid": "307ff774-78e5-410b-926b-396bf0346f5f"
+                        },
+                        "genbank_files1": {
+                            "id": "de5166318ad7499c",
+                            "src": "hda",
+                            "uuid": "879f6c49-14f5-4f78-8b32-f06d098a7f4f"
+                        },
+                        "genbank_files2": {
+                            "id": "0a0976316513f675",
+                            "src": "hda",
+                            "uuid": "a3cb8cea-16ad-4a33-8e41-a9b378b2974a"
+                        },
+                        "genbank_files3": {
+                            "id": "88f51edac3b2f70e",
+                            "src": "hda",
+                            "uuid": "c7bca70e-0ae9-4062-b185-1e0e5ed116a6"
+                        },
+                        "genbank_files4": {
+                            "id": "6974b4f354e9f36a",
+                            "src": "hda",
+                            "uuid": "b3a11bc9-4c29-470c-8985-d845c2f9e183"
+                        },
+                        "genbank_files5": {
+                            "id": "5b088a1dc26c39a4",
+                            "src": "hda",
+                            "uuid": "08129340-240c-4349-af6c-0379d32cae9c"
+                        }
+                    },
+                    "job_messages": [],
+                    "job_metrics": [],
+                    "job_runner_name": null,
+                    "job_stderr": "",
+                    "job_stdout": "",
+                    "model_class": "Job",
+                    "output_collections": {
+                        "construct_gb": {
+                            "id": "8de66704b7df8b5e",
+                            "src": "hdca"
+                        }
+                    },
+                    "outputs": {
+                        "__new_primary_file_construct_gb|C1_prom_barcode__": {
+                            "id": "79e58137b38a96f5",
+                            "src": "hda",
+                            "uuid": "8b1ffa40-fda8-4629-a843-4a17c7d9e983"
+                        },
+                        "__new_primary_file_construct_gb|C2_gfp_term__": {
+                            "id": "b5ab7a1e4a941d0d",
+                            "src": "hda",
+                            "uuid": "ef840f10-be08-4855-858c-ee696e852624"
+                        },
+                        "__new_primary_file_construct_gb|C3_final__": {
+                            "id": "76e4f31bf12269ab",
+                            "src": "hda",
+                            "uuid": "0eba0e00-8261-4ff7-a40e-46d7fd0b9f62"
+                        },
+                        "output_zip": {
+                            "id": "8380aea1f9c6b8c9",
+                            "src": "hda",
+                            "uuid": "c2f7d71f-de27-48c6-bc1f-b656bc8d53f1"
+                        }
+                    },
+                    "params": {
+                        "__input_ext": "\"input\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "dbkey": "\"?\"",
+                        "domesticated_input": null,
+                        "genbank_files": "{\"values\": [{\"id\": 9, \"src\": \"hdca\"}]}",
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"BioBrickStandardAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
+                    },
+                    "state": "ok",
+                    "stderr": "\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\rassembly:  67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b   | 2/3 [00:01<00:00,  1.93it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.59it/s, now=None]\r                                                                 \r",
+                    "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
+                    "tool_id": "cloning_simulation",
+                    "tool_stderr": "\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\rassembly:  67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b   | 2/3 [00:01<00:00,  1.93it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.59it/s, now=None]\r                                                                 \r",
+                    "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
+                    "update_time": "2025-07-17T10:12:26.209759",
+                    "user_email": "planemo@galaxyproject.org",
+                    "user_id": "986c9b47c580ae59"
+                },
+                "status": "success",
+                "test_index": 4,
+                "time_seconds": 33.86248016357422,
+                "tool_id": "cloning_simulation",
+                "tool_version": "0.1.0+galaxy0"
+            },
+            "has_data": true,
+            "id": "cloning_simulation-4"
+        },
+        {
+            "data": {
+                "inputs": {
+                    "assembly_csv": {
+                        "id": "7b8a6e6b82f35567",
+                        "src": "hda"
+                    },
+                    "domesticated_input": {
+                        "id": "54c6d71c8dc7cb11",
+                        "src": "hdca"
+                    },
+                    "genbank_files": {
+                        "id": "2592d2c705ba0baa",
+                        "src": "hdca"
+                    },
+                    "json_use|assembly_plan_name": "Type2sRestrictionAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
+                },
+                "job": {
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/9/b/5/dataset_9b53e736-9aa4-428b-866b-72d2f525f99e.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/d/1/5/dataset_d15ff026-babf-41d1-b9e0-e701e0a51b6b.dat,/tmp/tmpe6pmg7jw/files/2/9/8/dataset_298d983c-3e5c-4b93-944c-b372d4295740.dat,/tmp/tmpe6pmg7jw/files/4/e/3/dataset_4e3c0103-dbb8-465c-abbf-7f9b66a8263b.dat,/tmp/tmpe6pmg7jw/files/1/5/4/dataset_15452284-bc19-43d6-8367-2753056a96ec.dat,/tmp/tmpe6pmg7jw/files/0/f/3/dataset_0f36b33d-8c1c-472b-abbd-c3f63418174a.dat,/tmp/tmpe6pmg7jw/files/a/d/d/dataset_adde970f-87a8-45b0-9303-acf0d7ed7c2e.dat,/tmp/tmpe6pmg7jw/files/9/6/b/dataset_96bd86f4-cd0a-4a34-a1cf-3044a62f77a2.dat' --domesticated_seq '/tmp/tmpe6pmg7jw/files/5/5/8/dataset_5587676a-8c81-4954-bf33-2c965bf7635d.dat,/tmp/tmpe6pmg7jw/files/b/f/b/dataset_bfb815a2-67c8-4cb5-afb8-ea35cfa372eb.dat,/tmp/tmpe6pmg7jw/files/2/1/6/dataset_216a998c-35de-48c2-a017-c3fed9787319.dat,/tmp/tmpe6pmg7jw/files/8/9/1/dataset_89112e3f-e936-4419-938d-b4b4daa68e40.dat,/tmp/tmpe6pmg7jw/files/5/3/2/dataset_53218d73-0f61-4527-b279-62ced98701d1.dat' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/d/1/5/dataset_d15ff026-babf-41d1-b9e0-e701e0a51b6b.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/2/9/8/dataset_298d983c-3e5c-4b93-944c-b372d4295740.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/4/e/3/dataset_4e3c0103-dbb8-465c-abbf-7f9b66a8263b.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/1/5/4/dataset_15452284-bc19-43d6-8367-2753056a96ec.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/0/f/3/dataset_0f36b33d-8c1c-472b-abbd-c3f63418174a.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/a/d/d/dataset_adde970f-87a8-45b0-9303-acf0d7ed7c2e.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/9/6/b/dataset_96bd86f4-cd0a-4a34-a1cf-3044a62f77a2.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpe6pmg7jw/files/5/5/8/dataset_5587676a-8c81-4954-bf33-2c965bf7635d.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/b/f/b/dataset_bfb815a2-67c8-4cb5-afb8-ea35cfa372eb.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/2/1/6/dataset_216a998c-35de-48c2-a017-c3fed9787319.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/8/9/1/dataset_89112e3f-e936-4419-938d-b4b4daa68e40.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/5/3/2/dataset_53218d73-0f61-4527-b279-62ced98701d1.dat:part_L.gb' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'Type2sRestrictionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/49/outputs/dataset_85657c38-c9be-421a-8d2e-3ba54dcd1ee1.dat'",
+                    "command_version": "",
+                    "copied_from_job_id": null,
+                    "create_time": "2025-07-17T10:13:06.053332",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1199,41 +1503,76 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "174889",
-                    "galaxy_version": "24.2",
+                    "external_id": "78856",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "3937d5ff7c0e1373",
-                    "id": "2be24ce9bdbc87e1",
+                    "history_id": "e9003a596293e37c",
+                    "id": "c4dd95e8260a7aca",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "5493159c7d57114c",
+                            "id": "7b8a6e6b82f35567",
+                            "src": "hda",
+                            "uuid": "9b53e736-9aa4-428b-866b-72d2f525f99e"
+                        },
+                        "domesticated_input1": {
+                            "id": "3cae7d055c6a8b90",
+                            "src": "hda",
+                            "uuid": "5587676a-8c81-4954-bf33-2c965bf7635d"
+                        },
+                        "domesticated_input2": {
+                            "id": "eb3eeb1f7f0d700b",
                             "src": "hda",
-                            "uuid": "49af2c08-3ad4-4940-ae84-f93df3c0dd8a"
+                            "uuid": "bfb815a2-67c8-4cb5-afb8-ea35cfa372eb"
+                        },
+                        "domesticated_input3": {
+                            "id": "0a842033366cb6f4",
+                            "src": "hda",
+                            "uuid": "216a998c-35de-48c2-a017-c3fed9787319"
+                        },
+                        "domesticated_input4": {
+                            "id": "3b0ecfffcd65a433",
+                            "src": "hda",
+                            "uuid": "89112e3f-e936-4419-938d-b4b4daa68e40"
+                        },
+                        "domesticated_input5": {
+                            "id": "7b7bd43bd69db4da",
+                            "src": "hda",
+                            "uuid": "53218d73-0f61-4527-b279-62ced98701d1"
                         },
                         "genbank_files1": {
-                            "id": "8d7d89366ae6734b",
+                            "id": "b2f60919761cbe66",
                             "src": "hda",
-                            "uuid": "894d0a5e-2d87-4861-85cb-b5cae83b19cb"
+                            "uuid": "d15ff026-babf-41d1-b9e0-e701e0a51b6b"
                         },
                         "genbank_files2": {
-                            "id": "30133c2583e745a4",
+                            "id": "99a09fce7ce0f899",
                             "src": "hda",
-                            "uuid": "315f1808-e9c5-45fb-8cb8-b71e8e1c8366"
+                            "uuid": "298d983c-3e5c-4b93-944c-b372d4295740"
                         },
                         "genbank_files3": {
-                            "id": "d3fd00b679818750",
+                            "id": "f6b26195fd7f7f3e",
                             "src": "hda",
-                            "uuid": "b67a6264-6208-4b44-8fd4-47ba3f96faee"
+                            "uuid": "4e3c0103-dbb8-465c-abbf-7f9b66a8263b"
                         },
                         "genbank_files4": {
-                            "id": "a5593c3e02c9d8f6",
+                            "id": "c4dd95e8260a7aca",
                             "src": "hda",
-                            "uuid": "ce3a0b5e-0344-4422-b84a-84904818396b"
+                            "uuid": "15452284-bc19-43d6-8367-2753056a96ec"
                         },
                         "genbank_files5": {
-                            "id": "fb42640a8a596816",
+                            "id": "03de0919cac4bbd5",
+                            "src": "hda",
+                            "uuid": "0f36b33d-8c1c-472b-abbd-c3f63418174a"
+                        },
+                        "genbank_files6": {
+                            "id": "8b133a938a16d94a",
                             "src": "hda",
-                            "uuid": "b7dcace3-2dbd-49db-94ac-98485bf522aa"
+                            "uuid": "adde970f-87a8-45b0-9303-acf0d7ed7c2e"
+                        },
+                        "genbank_files7": {
+                            "id": "de8340ef2cf62a09",
+                            "src": "hda",
+                            "uuid": "96bd86f4-cd0a-4a34-a1cf-3044a62f77a2"
                         }
                     },
                     "job_messages": [],
@@ -1244,85 +1583,86 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "fbec4a551130f847",
+                            "id": "54d710fc68386373",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
-                        "__new_primary_file_construct_gb|C1_prom_barcode__": {
-                            "id": "f1bdbab1d80457ac",
+                        "__new_primary_file_construct_gb|construct_1__": {
+                            "id": "955be7be95972849",
                             "src": "hda",
-                            "uuid": "8a7dec58-9e11-4bbf-a945-3910d02c89d9"
+                            "uuid": "14602eef-eda6-4c3a-8f13-f1cac1adca78"
+                        },
+                        "__new_primary_file_construct_gb|construct_2__": {
+                            "id": "535a274eb83bb714",
+                            "src": "hda",
+                            "uuid": "c94a01f0-fd44-4112-be7e-0cc5c48e541d"
                         },
-                        "__new_primary_file_construct_gb|C2_gfp_term__": {
-                            "id": "588795470b41a739",
+                        "__new_primary_file_construct_gb|construct_3__": {
+                            "id": "b79f0249bac52469",
                             "src": "hda",
-                            "uuid": "ee52fe89-63a0-498c-bdbb-ec9fe5b72eca"
+                            "uuid": "a4df015a-0bc4-4cec-b8be-67681da9f1b7"
                         },
-                        "__new_primary_file_construct_gb|C3_final__": {
-                            "id": "de619fffe043835f",
+                        "__new_primary_file_construct_gb|construct_4__": {
+                            "id": "3cafb1bf19a56844",
                             "src": "hda",
-                            "uuid": "6b8fe4a1-1743-4ec5-a12e-6b7b267efa08"
+                            "uuid": "d38c7640-aa80-4ddd-b16b-6c71f3aaf195"
                         },
                         "output_zip": {
-                            "id": "a072914da4208f87",
+                            "id": "0d8c106f64e9b667",
                             "src": "hda",
-                            "uuid": "3f72ea64-02f3-413e-9d9a-5c43eaaadf14"
+                            "uuid": "85657c38-c9be-421a-8d2e-3ba54dcd1ee1"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"BioBrickStandardAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
-                        "domesticated_input": null,
-                        "genbank_files": "{\"values\": [{\"id\": 9, \"src\": \"hdca\"}]}",
-                        "topology": "\"circular\""
+                        "domesticated_input": "{\"values\": [{\"id\": 11, \"src\": \"hdca\"}]}",
+                        "genbank_files": "{\"values\": [{\"id\": 12, \"src\": \"hdca\"}]}",
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"Type2sRestrictionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\rassembly:  67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b   | 2/3 [00:00<00:00,  2.04it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.66it/s, now=None]\r                                                                 \r",
-                    "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
+                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.43it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.22it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.82it/s, now=None]\r                                                                 \r",
+                    "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\rassembly:  67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b   | 2/3 [00:00<00:00,  2.04it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.66it/s, now=None]\r                                                                 \r",
-                    "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:04:36.963198",
+                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.43it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.22it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.82it/s, now=None]\r                                                                 \r",
+                    "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
+                    "update_time": "2025-07-17T10:13:18.198417",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
-                "test_index": 4,
-                "time_seconds": 34.648075580596924,
+                "test_index": 5,
+                "time_seconds": 51.96266531944275,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
             "has_data": true,
-            "id": "cloning_simulation-4"
+            "id": "cloning_simulation-5"
         },
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "d61e70858d065388",
+                        "id": "6cceecf1bcab0d5e",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "Type2sRestrictionAssembly",
                     "domesticated_input": {
-                        "id": "5bd8560352cb0b69",
+                        "id": "98a2432f1cff4f91",
                         "src": "hdca"
                     },
-                    "genbank_files": {
-                        "id": "cb2fe7fb50f38553",
-                        "src": "hdca"
-                    },
-                    "topology": "circular"
+                    "json_use|assembly_plan_name": "Type2sRestrictionAssembly",
+                    "json_use|topology": "circular",
+                    "json_use|use_json_paramers": false,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/f/2/3/dataset_f2390ba6-b891-4c75-b5b4-881fabe15212.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/d/f/e/dataset_dfe71b71-2603-48cf-bf59-772724abea0f.dat,/tmp/tmpm1fyob3t/files/0/9/2/dataset_09260017-ac9e-4868-b386-27ef07ca03a8.dat,/tmp/tmpm1fyob3t/files/8/4/e/dataset_84e57026-4e85-4a63-b66a-8bae5b767f0c.dat,/tmp/tmpm1fyob3t/files/7/d/2/dataset_7d26d36d-bb1c-4f83-be4f-3311e4ec2441.dat,/tmp/tmpm1fyob3t/files/8/a/0/dataset_8a0ff1e5-aaf7-461e-b642-b60e5cf13132.dat,/tmp/tmpm1fyob3t/files/f/9/4/dataset_f94fb7c9-761b-4dc1-8caa-a02ee7892c59.dat,/tmp/tmpm1fyob3t/files/c/7/e/dataset_c7e408b5-927b-4966-8d1f-08de3b41fc34.dat' --domesticated_seq '/tmp/tmpm1fyob3t/files/b/2/6/dataset_b263e11f-1d52-45d4-8679-8bb23668154a.dat,/tmp/tmpm1fyob3t/files/c/4/c/dataset_c4c08e8f-3ffc-40d0-8a27-1bee8b5f6fee.dat,/tmp/tmpm1fyob3t/files/d/d/c/dataset_ddcb9f93-9b4f-41e3-a1df-5537b6326a78.dat,/tmp/tmpm1fyob3t/files/9/9/b/dataset_99bac98d-1cbf-4ab1-a680-49cdb721e447.dat,/tmp/tmpm1fyob3t/files/6/8/5/dataset_685cd571-80b5-4c03-b247-4fb51e199639.dat' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/d/f/e/dataset_dfe71b71-2603-48cf-bf59-772724abea0f.dat:part_A.gb,/tmp/tmpm1fyob3t/files/0/9/2/dataset_09260017-ac9e-4868-b386-27ef07ca03a8.dat:part_B.gb,/tmp/tmpm1fyob3t/files/8/4/e/dataset_84e57026-4e85-4a63-b66a-8bae5b767f0c.dat:part_C.gb,/tmp/tmpm1fyob3t/files/7/d/2/dataset_7d26d36d-bb1c-4f83-be4f-3311e4ec2441.dat:part_D.gb,/tmp/tmpm1fyob3t/files/8/a/0/dataset_8a0ff1e5-aaf7-461e-b642-b60e5cf13132.dat:part_E.gb,/tmp/tmpm1fyob3t/files/f/9/4/dataset_f94fb7c9-761b-4dc1-8caa-a02ee7892c59.dat:part_F.gb,/tmp/tmpm1fyob3t/files/c/7/e/dataset_c7e408b5-927b-4966-8d1f-08de3b41fc34.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpm1fyob3t/files/b/2/6/dataset_b263e11f-1d52-45d4-8679-8bb23668154a.dat:part_H.gb,/tmp/tmpm1fyob3t/files/c/4/c/dataset_c4c08e8f-3ffc-40d0-8a27-1bee8b5f6fee.dat:part_I.gb,/tmp/tmpm1fyob3t/files/d/d/c/dataset_ddcb9f93-9b4f-41e3-a1df-5537b6326a78.dat:part_J.gb,/tmp/tmpm1fyob3t/files/9/9/b/dataset_99bac98d-1cbf-4ab1-a680-49cdb721e447.dat:part_K.gb,/tmp/tmpm1fyob3t/files/6/8/5/dataset_685cd571-80b5-4c03-b247-4fb51e199639.dat:part_L.gb' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/49/outputs/dataset_b5c1d918-9a86-47ac-9fd0-0d1eeecb3515.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/2/8/4/dataset_2844fc99-3db2-458b-9656-9c18962aed13.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/3/6/7/dataset_367c8adb-623b-4fc2-8710-1402b90dc27a.dat,/tmp/tmpe6pmg7jw/files/b/8/c/dataset_b8c15683-a369-4b52-b94d-52e823e2dbc4.dat,/tmp/tmpe6pmg7jw/files/7/b/7/dataset_7b71197b-9cec-4ebc-a0ab-9a9070856680.dat,/tmp/tmpe6pmg7jw/files/0/8/2/dataset_08203bf4-e285-4e41-845d-c7db10709a14.dat,/tmp/tmpe6pmg7jw/files/b/1/7/dataset_b174f6f8-eb0c-44b9-9d1b-89b7a62bc494.dat,/tmp/tmpe6pmg7jw/files/c/5/9/dataset_c598d3b6-58ab-4695-99a5-5fb6197a4823.dat,/tmp/tmpe6pmg7jw/files/0/9/e/dataset_09eec457-37de-4c2c-8b7e-1be1dfbaffd6.dat,/tmp/tmpe6pmg7jw/files/e/8/4/dataset_e84bc66f-f327-4070-8511-c5734161ea4b.dat,/tmp/tmpe6pmg7jw/files/d/b/0/dataset_db0c0f17-0973-48f2-a70a-2760c7521af3.dat,/tmp/tmpe6pmg7jw/files/a/f/1/dataset_af171625-0bb7-4a5f-a858-f92983e9f54e.dat,/tmp/tmpe6pmg7jw/files/3/5/1/dataset_3515fd31-0758-4e14-a6ac-b01ba9941850.dat,/tmp/tmpe6pmg7jw/files/f/2/1/dataset_f2119eb4-c9ca-461f-8d40-6284effbefa1.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/3/6/7/dataset_367c8adb-623b-4fc2-8710-1402b90dc27a.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/b/8/c/dataset_b8c15683-a369-4b52-b94d-52e823e2dbc4.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/7/b/7/dataset_7b71197b-9cec-4ebc-a0ab-9a9070856680.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/0/8/2/dataset_08203bf4-e285-4e41-845d-c7db10709a14.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/b/1/7/dataset_b174f6f8-eb0c-44b9-9d1b-89b7a62bc494.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/c/5/9/dataset_c598d3b6-58ab-4695-99a5-5fb6197a4823.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/0/9/e/dataset_09eec457-37de-4c2c-8b7e-1be1dfbaffd6.dat:part_G.gb,/tmp/tmpe6pmg7jw/files/e/8/4/dataset_e84bc66f-f327-4070-8511-c5734161ea4b.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/d/b/0/dataset_db0c0f17-0973-48f2-a70a-2760c7521af3.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/a/f/1/dataset_af171625-0bb7-4a5f-a858-f92983e9f54e.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/3/5/1/dataset_3515fd31-0758-4e14-a6ac-b01ba9941850.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/f/2/1/dataset_f2119eb4-c9ca-461f-8d40-6284effbefa1.dat:part_L.gb' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'Type2sRestrictionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/63/outputs/dataset_fc4a95ba-4368-4457-b175-ebf26af659aa.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:05:17.468278",
+                    "create_time": "2025-07-17T10:13:57.903413",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1502,76 +1842,76 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "176006",
-                    "galaxy_version": "24.2",
+                    "external_id": "80009",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "473b1992d5f5b84f",
-                    "id": "52d2dbb7944a53fc",
+                    "history_id": "8c39a9a410cc0a00",
+                    "id": "3cafb1bf19a56844",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "d61e70858d065388",
+                            "id": "6cceecf1bcab0d5e",
                             "src": "hda",
-                            "uuid": "f2390ba6-b891-4c75-b5b4-881fabe15212"
+                            "uuid": "2844fc99-3db2-458b-9656-9c18962aed13"
                         },
                         "domesticated_input1": {
-                            "id": "201ce005b4eba284",
+                            "id": "95f8e30291b4c724",
+                            "src": "hda",
+                            "uuid": "367c8adb-623b-4fc2-8710-1402b90dc27a"
+                        },
+                        "domesticated_input10": {
+                            "id": "5dc7959fa599d57d",
                             "src": "hda",
-                            "uuid": "b263e11f-1d52-45d4-8679-8bb23668154a"
+                            "uuid": "af171625-0bb7-4a5f-a858-f92983e9f54e"
+                        },
+                        "domesticated_input11": {
+                            "id": "d309b7113a9d8008",
+                            "src": "hda",
+                            "uuid": "3515fd31-0758-4e14-a6ac-b01ba9941850"
+                        },
+                        "domesticated_input12": {
+                            "id": "f558e884d7fd7d56",
+                            "src": "hda",
+                            "uuid": "f2119eb4-c9ca-461f-8d40-6284effbefa1"
                         },
                         "domesticated_input2": {
-                            "id": "ccacdf94e033958e",
+                            "id": "e51e45ceb8fc2cce",
                             "src": "hda",
-                            "uuid": "c4c08e8f-3ffc-40d0-8a27-1bee8b5f6fee"
+                            "uuid": "b8c15683-a369-4b52-b94d-52e823e2dbc4"
                         },
                         "domesticated_input3": {
-                            "id": "71f633fb8d250097",
+                            "id": "7a147471a754feaa",
                             "src": "hda",
-                            "uuid": "ddcb9f93-9b4f-41e3-a1df-5537b6326a78"
+                            "uuid": "7b71197b-9cec-4ebc-a0ab-9a9070856680"
                         },
                         "domesticated_input4": {
-                            "id": "23971c9dcf22198b",
+                            "id": "980ee860844f9585",
                             "src": "hda",
-                            "uuid": "99bac98d-1cbf-4ab1-a680-49cdb721e447"
+                            "uuid": "08203bf4-e285-4e41-845d-c7db10709a14"
                         },
                         "domesticated_input5": {
-                            "id": "60438d790668bc40",
+                            "id": "fbc8779ea7cd6ed6",
                             "src": "hda",
-                            "uuid": "685cd571-80b5-4c03-b247-4fb51e199639"
-                        },
-                        "genbank_files1": {
-                            "id": "562cdacb0f854350",
-                            "src": "hda",
-                            "uuid": "dfe71b71-2603-48cf-bf59-772724abea0f"
+                            "uuid": "b174f6f8-eb0c-44b9-9d1b-89b7a62bc494"
                         },
-                        "genbank_files2": {
-                            "id": "b5f666ac47f1f830",
+                        "domesticated_input6": {
+                            "id": "185e1f0b9b0a67b3",
                             "src": "hda",
-                            "uuid": "09260017-ac9e-4868-b386-27ef07ca03a8"
-                        },
-                        "genbank_files3": {
-                            "id": "316b2bf479d3691f",
-                            "src": "hda",
-                            "uuid": "84e57026-4e85-4a63-b66a-8bae5b767f0c"
+                            "uuid": "c598d3b6-58ab-4695-99a5-5fb6197a4823"
                         },
-                        "genbank_files4": {
-                            "id": "52d2dbb7944a53fc",
+                        "domesticated_input7": {
+                            "id": "37c673ee68b5c3ed",
                             "src": "hda",
-                            "uuid": "7d26d36d-bb1c-4f83-be4f-3311e4ec2441"
-                        },
-                        "genbank_files5": {
-                            "id": "6d0420a098f813ba",
-                            "src": "hda",
-                            "uuid": "8a0ff1e5-aaf7-461e-b642-b60e5cf13132"
+                            "uuid": "09eec457-37de-4c2c-8b7e-1be1dfbaffd6"
                         },
-                        "genbank_files6": {
-                            "id": "98086fd4fda4fb74",
+                        "domesticated_input8": {
+                            "id": "8a3a0f65c762008d",
                             "src": "hda",
-                            "uuid": "f94fb7c9-761b-4dc1-8caa-a02ee7892c59"
+                            "uuid": "e84bc66f-f327-4070-8511-c5734161ea4b"
                         },
-                        "genbank_files7": {
-                            "id": "1e3f8509b9833e4e",
+                        "domesticated_input9": {
+                            "id": "5033875e970a3799",
                             "src": "hda",
-                            "uuid": "c7e408b5-927b-4966-8d1f-08de3b41fc34"
+                            "uuid": "db0c0f17-0973-48f2-a70a-2760c7521af3"
                         }
                     },
                     "job_messages": [],
@@ -1582,86 +1922,88 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "1e8e6749bc68d8e8",
+                            "id": "172543d29b19f394",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "825e5e92a55932c1",
+                            "id": "6665d38e10ff581d",
                             "src": "hda",
-                            "uuid": "fd97fd7a-08b9-42ba-ae2a-022c8be1b219"
+                            "uuid": "30a2a28d-9d1b-4332-8d5a-acda885308dd"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "4a8ace5529c8c3e9",
+                            "id": "0788ac4ba66a0bdd",
                             "src": "hda",
-                            "uuid": "b9201d86-ee66-45ac-99a5-09d3ca161d8b"
+                            "uuid": "49f11bec-1e54-49fe-8c44-7cc25273d54d"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "f0d76a7bda3035c9",
+                            "id": "f41d1a7bd862df72",
                             "src": "hda",
-                            "uuid": "7c74cbab-8a62-43a2-95f3-00919cc11fa7"
+                            "uuid": "a01def58-86a8-48c3-aabc-d9d5a9367927"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "640790f555d03105",
+                            "id": "a371069cf8561e3f",
                             "src": "hda",
-                            "uuid": "a450e128-38e8-4eb5-82a1-304b04c68510"
+                            "uuid": "7fd4fd46-1149-4dbe-aaa4-531dc7db5adb"
                         },
                         "output_zip": {
-                            "id": "50943f113f3eedaf",
+                            "id": "9df6b2b003837432",
                             "src": "hda",
-                            "uuid": "b5c1d918-9a86-47ac-9fd0-0d1eeecb3515"
+                            "uuid": "fc4a95ba-4368-4457-b175-ebf26af659aa"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
-                        "domesticated_input": "{\"values\": [{\"id\": 11, \"src\": \"hdca\"}]}",
-                        "genbank_files": "{\"values\": [{\"id\": 12, \"src\": \"hdca\"}]}",
-                        "topology": "\"circular\""
+                        "domesticated_input": "{\"values\": [{\"id\": 14, \"src\": \"hdca\"}]}",
+                        "genbank_files": null,
+                        "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"Type2sRestrictionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.40it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.81it/s, now=None]\r                                                                 \r",
+                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.40it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.80it/s, now=None]\r                                                                 \r",
                     "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.40it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.81it/s, now=None]\r                                                                 \r",
+                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.40it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.80it/s, now=None]\r                                                                 \r",
                     "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:05:29.989306",
+                    "update_time": "2025-07-17T10:14:10.606776",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
-                "test_index": 5,
-                "time_seconds": 53.09692740440369,
+                "test_index": 6,
+                "time_seconds": 52.30599284172058,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
             "has_data": true,
-            "id": "cloning_simulation-5"
+            "id": "cloning_simulation-6"
         },
         {
             "data": {
                 "inputs": {
-                    "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "d71403ee85b47d8d",
+                        "id": "1a15f75791a9be7d",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "Type2sRestrictionAssembly",
-                    "domesticated_input": {
-                        "id": "a36db940f4513bd9",
+                    "genbank_files": {
+                        "id": "018c827a8e5b161a",
                         "src": "hdca"
                     },
-                    "topology": "circular"
+                    "json_use|json_conf": {
+                        "id": "9736c9b0f355f9e7",
+                        "src": "hda"
+                    },
+                    "json_use|use_json_paramers": true,
+                    "use_file_names_as_ids": true
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/3/c/1/dataset_3c1221bc-ba53-4ede-899c-e4defbe838eb.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/6/8/e/dataset_68ee2e69-c2d9-43cd-851e-0b660884cac2.dat,/tmp/tmpm1fyob3t/files/5/c/2/dataset_5c298af3-9cdb-4837-8054-8903c2683f85.dat,/tmp/tmpm1fyob3t/files/9/c/1/dataset_9c1fd651-de1e-4ba9-a8e1-ee78953b0c8e.dat,/tmp/tmpm1fyob3t/files/e/7/7/dataset_e77c955d-e9b5-4175-a061-81b9a781d2ff.dat,/tmp/tmpm1fyob3t/files/3/5/d/dataset_35df1ceb-416b-4c2d-b20a-3efe96b6770f.dat,/tmp/tmpm1fyob3t/files/c/0/2/dataset_c02fc9fb-dc4e-49e1-b99f-8199fd97d795.dat,/tmp/tmpm1fyob3t/files/3/3/9/dataset_339b4cbf-4ca2-4c49-9cc4-9796c5b9ba8a.dat,/tmp/tmpm1fyob3t/files/2/2/4/dataset_2246947a-dbb7-4ed2-855a-56a42a899aab.dat,/tmp/tmpm1fyob3t/files/0/a/9/dataset_0a935c03-48a7-4c8a-8077-aea407e5285d.dat,/tmp/tmpm1fyob3t/files/0/4/b/dataset_04bcf9c1-ccc8-4d52-a739-fb3630f90b05.dat,/tmp/tmpm1fyob3t/files/4/0/2/dataset_402aaabe-0ea9-4519-998b-11cf6b07a1df.dat,/tmp/tmpm1fyob3t/files/9/c/f/dataset_9cf71985-a62d-4d89-845c-2b996d8096fa.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/6/8/e/dataset_68ee2e69-c2d9-43cd-851e-0b660884cac2.dat:part_A.gb,/tmp/tmpm1fyob3t/files/5/c/2/dataset_5c298af3-9cdb-4837-8054-8903c2683f85.dat:part_B.gb,/tmp/tmpm1fyob3t/files/9/c/1/dataset_9c1fd651-de1e-4ba9-a8e1-ee78953b0c8e.dat:part_C.gb,/tmp/tmpm1fyob3t/files/e/7/7/dataset_e77c955d-e9b5-4175-a061-81b9a781d2ff.dat:part_D.gb,/tmp/tmpm1fyob3t/files/3/5/d/dataset_35df1ceb-416b-4c2d-b20a-3efe96b6770f.dat:part_E.gb,/tmp/tmpm1fyob3t/files/c/0/2/dataset_c02fc9fb-dc4e-49e1-b99f-8199fd97d795.dat:part_F.gb,/tmp/tmpm1fyob3t/files/3/3/9/dataset_339b4cbf-4ca2-4c49-9cc4-9796c5b9ba8a.dat:part_G.gb,/tmp/tmpm1fyob3t/files/2/2/4/dataset_2246947a-dbb7-4ed2-855a-56a42a899aab.dat:part_H.gb,/tmp/tmpm1fyob3t/files/0/a/9/dataset_0a935c03-48a7-4c8a-8077-aea407e5285d.dat:part_I.gb,/tmp/tmpm1fyob3t/files/0/4/b/dataset_04bcf9c1-ccc8-4d52-a739-fb3630f90b05.dat:part_J.gb,/tmp/tmpm1fyob3t/files/4/0/2/dataset_402aaabe-0ea9-4519-998b-11cf6b07a1df.dat:part_K.gb,/tmp/tmpm1fyob3t/files/9/c/f/dataset_9cf71985-a62d-4d89-845c-2b996d8096fa.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/63/outputs/dataset_02e7ea5e-6c8f-419d-82de-476bccc550ec.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/1/5/e/dataset_15e76393-8b6d-44a4-ad54-61e9090f2281.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/5/9/5/dataset_5952eac7-72c5-4e87-bac4-94a6eb3d7258.dat,/tmp/tmpe6pmg7jw/files/c/6/c/dataset_c6caf0b6-8d07-4998-8d0d-29b5d76faf46.dat,/tmp/tmpe6pmg7jw/files/c/3/e/dataset_c3e1ef9d-d877-4423-9f6d-0c1d109c0101.dat,/tmp/tmpe6pmg7jw/files/8/6/a/dataset_86a24365-6eed-4415-b56f-d0ff9854f0db.dat,/tmp/tmpe6pmg7jw/files/6/9/6/dataset_69698749-ab10-4865-b19a-ef4c5cb47996.dat,/tmp/tmpe6pmg7jw/files/8/e/d/dataset_8eda50dc-6b4b-4af8-9087-c6473e345a47.dat,/tmp/tmpe6pmg7jw/files/f/9/9/dataset_f99ec108-a3c6-4e80-8eff-68d9b8e9f67c.dat,/tmp/tmpe6pmg7jw/files/1/8/7/dataset_187c2c93-0a63-41ce-bf4f-88b7c770557b.dat,/tmp/tmpe6pmg7jw/files/3/d/7/dataset_3d7f0627-ba1c-4541-95f7-27ed41e601fa.dat,/tmp/tmpe6pmg7jw/files/4/c/1/dataset_4c18d9a5-e37c-428e-a5a3-8f698bbd9b3f.dat,/tmp/tmpe6pmg7jw/files/c/d/2/dataset_cd21525e-d4e4-4e03-a632-5a7152529d82.dat,/tmp/tmpe6pmg7jw/files/c/a/a/dataset_caa4a166-f30b-45f5-b1a9-cdacc6b40073.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/5/9/5/dataset_5952eac7-72c5-4e87-bac4-94a6eb3d7258.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/c/6/c/dataset_c6caf0b6-8d07-4998-8d0d-29b5d76faf46.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/c/3/e/dataset_c3e1ef9d-d877-4423-9f6d-0c1d109c0101.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/8/6/a/dataset_86a24365-6eed-4415-b56f-d0ff9854f0db.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/6/9/6/dataset_69698749-ab10-4865-b19a-ef4c5cb47996.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/8/e/d/dataset_8eda50dc-6b4b-4af8-9087-c6473e345a47.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/f/9/9/dataset_f99ec108-a3c6-4e80-8eff-68d9b8e9f67c.dat:part_G.gb,/tmp/tmpe6pmg7jw/files/1/8/7/dataset_187c2c93-0a63-41ce-bf4f-88b7c770557b.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/3/d/7/dataset_3d7f0627-ba1c-4541-95f7-27ed41e601fa.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/4/c/1/dataset_4c18d9a5-e37c-428e-a5a3-8f698bbd9b3f.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/c/d/2/dataset_cd21525e-d4e4-4e03-a632-5a7152529d82.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/c/a/a/dataset_caa4a166-f30b-45f5-b1a9-cdacc6b40073.dat:part_L.gb' --file_name_mapping_dom '' --use_json_paramers 'true' --json_conf '/tmp/tmpe6pmg7jw/files/9/b/8/dataset_9b899aff-2835-4f10-84f3-52034c55b5dc.dat' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/78/outputs/dataset_6ee2cd5c-d43c-4fc7-9ebc-265f89a87696.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T12:06:09.749817",
+                    "create_time": "2025-07-17T10:14:50.961634",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1841,76 +2183,81 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "177047",
-                    "galaxy_version": "24.2",
+                    "external_id": "81204",
+                    "galaxy_version": "25.0",
                     "handler": null,
-                    "history_id": "9b5c1fe7a52a75e0",
-                    "id": "640790f555d03105",
+                    "history_id": "f7b25594aba42961",
+                    "id": "6665d38e10ff581d",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "d71403ee85b47d8d",
+                            "id": "1a15f75791a9be7d",
                             "src": "hda",
-                            "uuid": "3c1221bc-ba53-4ede-899c-e4defbe838eb"
+                            "uuid": "15e76393-8b6d-44a4-ad54-61e9090f2281"
                         },
-                        "domesticated_input1": {
-                            "id": "740094ed962e7335",
+                        "genbank_files1": {
+                            "id": "59c39a1f7cd89b1b",
                             "src": "hda",
-                            "uuid": "68ee2e69-c2d9-43cd-851e-0b660884cac2"
+                            "uuid": "5952eac7-72c5-4e87-bac4-94a6eb3d7258"
                         },
-                        "domesticated_input10": {
-                            "id": "06981e06b6149081",
+                        "genbank_files10": {
+                            "id": "e01657e1b61da6f3",
                             "src": "hda",
-                            "uuid": "04bcf9c1-ccc8-4d52-a739-fb3630f90b05"
+                            "uuid": "4c18d9a5-e37c-428e-a5a3-8f698bbd9b3f"
                         },
-                        "domesticated_input11": {
-                            "id": "343d33e0d7549cb9",
+                        "genbank_files11": {
+                            "id": "ca4aa85e07d14f5a",
                             "src": "hda",
-                            "uuid": "402aaabe-0ea9-4519-998b-11cf6b07a1df"
+                            "uuid": "cd21525e-d4e4-4e03-a632-5a7152529d82"
                         },
-                        "domesticated_input12": {
-                            "id": "2c330e522704b0f9",
+                        "genbank_files12": {
+                            "id": "c041165b2b3d8e70",
                             "src": "hda",
-                            "uuid": "9cf71985-a62d-4d89-845c-2b996d8096fa"
+                            "uuid": "caa4a166-f30b-45f5-b1a9-cdacc6b40073"
                         },
-                        "domesticated_input2": {
-                            "id": "839c90adaefe5f3f",
+                        "genbank_files2": {
+                            "id": "a6194e007a63df57",
                             "src": "hda",
-                            "uuid": "5c298af3-9cdb-4837-8054-8903c2683f85"
+                            "uuid": "c6caf0b6-8d07-4998-8d0d-29b5d76faf46"
                         },
-                        "domesticated_input3": {
-                            "id": "1f56aa824e7dde43",
+                        "genbank_files3": {
+                            "id": "fa554b79bf343ee0",
                             "src": "hda",
-                            "uuid": "9c1fd651-de1e-4ba9-a8e1-ee78953b0c8e"
+                            "uuid": "c3e1ef9d-d877-4423-9f6d-0c1d109c0101"
                         },
-                        "domesticated_input4": {
-                            "id": "26b32a65097dcc1d",
+                        "genbank_files4": {
+                            "id": "5a80b8b59c71bb8c",
                             "src": "hda",
-                            "uuid": "e77c955d-e9b5-4175-a061-81b9a781d2ff"
+                            "uuid": "86a24365-6eed-4415-b56f-d0ff9854f0db"
                         },
-                        "domesticated_input5": {
-                            "id": "60327bfb8991788f",
+                        "genbank_files5": {
+                            "id": "e0d49f429b51fe72",
                             "src": "hda",
-                            "uuid": "35df1ceb-416b-4c2d-b20a-3efe96b6770f"
+                            "uuid": "69698749-ab10-4865-b19a-ef4c5cb47996"
                         },
-                        "domesticated_input6": {
-                            "id": "ac528058169ea450",
+                        "genbank_files6": {
+                            "id": "78e04b973431c16b",
                             "src": "hda",
-                            "uuid": "c02fc9fb-dc4e-49e1-b99f-8199fd97d795"
+                            "uuid": "8eda50dc-6b4b-4af8-9087-c6473e345a47"
                         },
-                        "domesticated_input7": {
-                            "id": "8d7c8aec2b1ab229",
+                        "genbank_files7": {
+                            "id": "0582b59361b7ebfc",
                             "src": "hda",
-                            "uuid": "339b4cbf-4ca2-4c49-9cc4-9796c5b9ba8a"
+                            "uuid": "f99ec108-a3c6-4e80-8eff-68d9b8e9f67c"
                         },
-                        "domesticated_input8": {
-                            "id": "f996cb18f164a451",
+                        "genbank_files8": {
+                            "id": "d65ee033f23e8216",
                             "src": "hda",
-                            "uuid": "2246947a-dbb7-4ed2-855a-56a42a899aab"
+                            "uuid": "187c2c93-0a63-41ce-bf4f-88b7c770557b"
                         },
-                        "domesticated_input9": {
-                            "id": "f3c4f2ef486441ac",
+                        "genbank_files9": {
+                            "id": "eb35258b10e09e8e",
                             "src": "hda",
-                            "uuid": "0a935c03-48a7-4c8a-8077-aea407e5285d"
+                            "uuid": "3d7f0627-ba1c-4541-95f7-27ed41e601fa"
+                        },
+                        "json_use|json_conf": {
+                            "id": "9736c9b0f355f9e7",
+                            "src": "hda",
+                            "uuid": "9b899aff-2835-4f10-84f3-52034c55b5dc"
                         }
                     },
                     "job_messages": [],
@@ -1921,65 +2268,64 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "182eefa577c2a56d",
+                            "id": "494079827008dff1",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "613a1bff017ef479",
+                            "id": "042ef984f231298e",
                             "src": "hda",
-                            "uuid": "a0c57d2e-8ac7-48d8-b9c5-f01b728ebba7"
+                            "uuid": "88d735c2-5600-4ed7-942c-07e0ce3b5b4a"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "1a8ab2437d7e496f",
+                            "id": "ec93ee31e9126c50",
                             "src": "hda",
-                            "uuid": "d7804ee2-c9a8-46c2-b057-7f25a8002f55"
+                            "uuid": "7b9fee32-94aa-421d-a905-a8a5863047e3"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "af3c5f81417a677c",
+                            "id": "5cf69b6cb189d4a3",
                             "src": "hda",
-                            "uuid": "71c1f25b-f43d-43f7-9893-bfd3bc967517"
+                            "uuid": "001a91be-d900-4196-b6b0-fa5ac8e97946"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "b5b1a9766aab456e",
+                            "id": "84d3b22c61ad807e",
                             "src": "hda",
-                            "uuid": "f23f1069-e4c4-4a9e-9787-5b2b5e905e24"
+                            "uuid": "e567ccf6-ed3b-4dcb-85e8-8456952d28cc"
                         },
                         "output_zip": {
-                            "id": "7d40cd3e06526c58",
+                            "id": "985e51699d0cdeaa",
                             "src": "hda",
-                            "uuid": "02e7ea5e-6c8f-419d-82de-476bccc550ec"
+                            "uuid": "6ee2cd5c-d43c-4fc7-9ebc-265f89a87696"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
-                        "domesticated_input": "{\"values\": [{\"id\": 14, \"src\": \"hdca\"}]}",
-                        "genbank_files": null,
-                        "topology": "\"circular\""
+                        "domesticated_input": null,
+                        "genbank_files": "{\"values\": [{\"id\": 16, \"src\": \"hdca\"}]}",
+                        "json_use": "{\"__current_case__\": 1, \"json_conf\": {\"values\": [{\"id\": 95, \"src\": \"hda\"}]}, \"use_json_paramers\": true}",
+                        "use_file_names_as_ids": "true"
                     },
                     "state": "ok",
-                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.43it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.81it/s, now=None]\r                                                                 \r",
+                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.39it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.81it/s, now=None]\r                                                                 \r",
                     "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.43it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.81it/s, now=None]\r                                                                 \r",
+                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.39it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.81it/s, now=None]\r                                                                 \r",
                     "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T12:06:22.164674",
+                    "update_time": "2025-07-17T10:15:03.707417",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "e2ca7f14a85a8d44"
+                    "user_id": "986c9b47c580ae59"
                 },
                 "status": "success",
-                "test_index": 6,
-                "time_seconds": 52.117783308029175,
+                "test_index": 7,
+                "time_seconds": 52.973809242248535,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
             "has_data": true,
-            "id": "cloning_simulation-6"
+            "id": "cloning_simulation-7"
         }
     ],
     "version": "0.1"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-JSON.json	Thu Jul 17 10:17:24 2025 +0000
@@ -0,0 +1,5 @@
+{
+  "assembly_plan_name": "Type2sRestrictionAssembly",
+  "topology": "circular",
+  "enzyme": "auto"
+}
\ No newline at end of file