{"data":{"id":"10.5061/dryad.zs7h44jsg","type":"dois","attributes":{"doi":"10.5061/dryad.zs7h44jsg","prefix":"10.5061","suffix":"dryad.zs7h44jsg","identifiers":[],"alternateIdentifiers":[],"creators":[{"name":"Liu, Dongjie","nameType":"Personal","affiliation":["Iowa State University"],"nameIdentifiers":[{"schemeUri":"https://orcid.org","nameIdentifier":"https://orcid.org/0000-0003-2422-1847","nameIdentifierScheme":"ORCID"}]},{"name":"Williams, Paul","nameType":"Personal","affiliation":["Iowa State University"],"nameIdentifiers":[]},{"name":"Kimber, Michael","nameType":"Personal","affiliation":["Iowa State University"],"nameIdentifiers":[]},{"name":"Robertson, Alan","nameType":"Personal","affiliation":["Iowa State University"],"nameIdentifiers":[]},{"name":"Martin, Richard","nameType":"Personal","affiliation":["Iowa State University"],"nameIdentifiers":[{"schemeUri":"https://orcid.org","nameIdentifier":"https://orcid.org/0000-0003-2422-1847","nameIdentifierScheme":"ORCID"}]}],"titles":[{"title":"Inhibition of release of intestinal extracellular vesicles in \u003cem\u003eAscaris suum\u003c/em\u003e and immune modulation by the anthelmintic ivermectin"}],"publisher":"Dryad","container":{},"publicationYear":2026,"subjects":[{"subject":"FOS: Basic medicine","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"ivermectin"},{"subject":"Extracellular Vescicles"},{"subject":"Ascaris suum"},{"subject":"Nematode infections","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"Pharmacology","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"Parasitology","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"}],"contributors":[{"name":"Department of Biomedical Science, Iowa State University","contributorType":"Sponsor","affiliation":[],"nameIdentifiers":[]}],"dates":[{"date":"2026-08-25T21:01:22Z","dateType":"Created"},{"date":"2026-08-25T21:01:23Z","dateType":"Submitted"},{"date":"2026-09-03T00:00:00Z","dateType":"Issued"},{"date":"2026-09-03T00:00:00Z","dateType":"Available"}],"language":"en","types":{"ris":"DATA","bibtex":"misc","citeproc":"dataset","schemaOrg":"Dataset","resourceType":"dataset","resourceTypeGeneral":"Dataset"},"relatedIdentifiers":[{"relationType":"IsCitedBy","relatedIdentifier":"10.64898/2026.08.25.745816","relatedIdentifierType":"DOI"}],"relatedItems":[],"sizes":["343611 bytes"],"formats":[],"version":"4","rightsList":[{"rights":"Creative Commons Zero v1.0 Universal","rightsUri":"https://creativecommons.org/publicdomain/zero/1.0/legalcode","schemeUri":"https://spdx.org/licenses/","rightsIdentifier":"cc0-1.0","rightsIdentifierScheme":"SPDX"}],"descriptions":[{"description":"Ivermectin is an important broad-spectrum anthelmintic used to treat\n nematode parasites including gastro-intestinal infections of humans and\n animals. The mode of action for Ivermectin is understood to involve\n activation of inhibitory glutamate-gated chloride channels (GluCls).\n Ivermectin has also been reported to inhibit the release of extracellular\n vesicles (EVs). We found that EVs are released from the whole intestine of\n the gastro-intestinal parasite, Ascaris suum. Proteomic analysis\n identified 1,574 proteins within these intestinal EVs, including 96\n nematode proteins with putative immune-associated functions based on\n homology to proteins involved in host immune processes and 130 proteins\n with predicted digestive functions. Comparative analysis following\n ivermectin exposure revealed 38 differentially abundant proteins that\n included the putative immune-related proteins: transthyretin-like\n proteins, a small heat-shock antigen, a phospholipase A2, and the NF-κB\n subunit p105. Thus, ivermectin modulated the potential immune-related\n cargo of intestinal EVs. The ivermectin inhibition of intestinal EV\n release was concentration-dependent with an IC50 of 64 nM. We also\n identified the expression of GluCl subunit receptor genes in the Ascaris\n intestine. The potent inhibitory effect of ivermectin on the release of\n these EVs from the nematode intestine and the expression of GluCl channel\n subunits sheds further light on the site and mechanisms of action of this\n important anthelmintic. We show the dataset’s for the figures 2,3,4,5,6,7,\n supplementary file S1 NS s3.","descriptionType":"Abstract"},{"description":"\u003cstrong\u003e2.1 Collection and maintenance of\u003c/strong\u003e\n \u003cem\u003e\u003cstrong\u003eA. suum\u003c/strong\u003e\u003c/em\u003e\n Adult female \u003cem\u003eA. suum\u003c/em\u003e worms were collected\n from the JBS Swift and Co. pork processing plant, Marshalltown, Iowa.\n Worms were maintained in \u003cem\u003eAscaris\u003c/em\u003e Ringers Solution\n (ARS: 13 mM NaCl, 9 mM CaCl₂, 7 mM MgCl₂, 12 mM C₄H₁₁NO₃, Tris, 99 mM\n NaC₂H₃O₂, 19 mM KCl, and 5 mM glucose pH 7.8) at 32°C for 24 h to allow\n for acclimatization before use in experiments. The worms were used the\n following day. All the worms were examined at the start of each\n experimental day and discarded if they were damaged or immotile.\n \u003cstrong\u003e2.2 Collection of Extracellular Vesicles (EVs)\n from\u003c/strong\u003e \u003cem\u003e\u003cstrong\u003eA.\n suum\u003c/strong\u003e\u003c/em\u003e \u003cstrong\u003eIntestinal\n Sections\u003c/strong\u003e The whole intestine of adult\n \u003cem\u003eA. suum\u003c/em\u003e was extracted from the parasite by dissecting\n the parasite from the base of the pharynx to the anal pore (Harpur, 1977).\n The intestine was removed from the body using fine forceps, avoiding other\n tissues including the reproductive organs and muscle\n bags\u003cem\u003e.\u003c/em\u003e The intestines were either processed whole or\n dissected into three anatomical regions: 1) the anterior region, which is\n primarily involved in digestion stretching from the base of the pharynx to\n the vulvar pore; 2) the middle region which is associated with nutrient\n absorption and extends from the vulvar pore to the ovarian tissue; and 3)\n the posterior region from the ovarian tissue to the anal pore (Fig 1A)\n (Harpur, 1977). The intestinal pieces were opened longitudinally, exposing\n the lumen, and thoroughly washed with \u003cem\u003eAscaris\u003c/em\u003e\n Perienteric Fluid (APF: 23 mM NaCl, 110 mM sodium acetate, 24 mM KCl, 1 mM\n CaCl₂, 5 mM MgCl₂, 5 mM HEPES, and 11 mM D-glucose; pH 7.6) to remove\n residual luminal contents and debris. Intestinal\n sections were weighed and transferred into 15 mL tubes containing 10 mL\n APF supplemented with 0.01% dimethyl sulfoxide (DMSO) and were incubated\n at 37 °C for 4 hrs. to promote EV secretion. Following incubation, the\n intestinal sections were removed, and the conditioned APF solutions were\n collected for EV isolation and characterization. A total of fourteen\n independent worms as biological experiments were performed for all\n sections tested. For NTA analysis, conditioned APF solution from whole\n intestine, anterior, middle, and posterior intestinal sections were\n diluted 500-fold in filtered dPBS prior to particle\n quantification. \u003cstrong\u003e2.3 Measuring the Effects\n of Ivermectin on Intestinal EV Secretion\u003c/strong\u003e\n To assess the effect of ivermectin on EV secretion from the\n intestine, the anterior, middle, and posterior intestinal sections were\n divided equally into two halves (anterior and posterior), allowing for\n paired comparisons within the same worm. For half of the experiments, the\n anterior half of the intestinal section was incubated in 10 mL APF\n containing 0.01% DMSO, while the posterior half was incubated in 10 mL APF\n containing 1 µM ivermectin. In the remaining experiments, the treatment\n order was reversed, with the anterior half of the intestinal section being\n treated with 1 µM ivermectin and the posterior half treated in 0.01% DMSO.\n All samples were incubated at 37 °C for 4 hrs. A total of fourteen\n independent biological experiments were performed for all sections tested.\n For NTA analysis, conditioned APF solutions from ivermectin and DMSO\n treated anterior, middle, and posterior intestinal sections were diluted\n 100-fold in filtered dPBS prior to particle quantification.\u003cbr\u003e\n  \u003cbr\u003e For dose-response experiments the anterior sections of\n \u003cem\u003eA. suum\u003c/em\u003e intestines were divided into six 1 cm pieces.\n For all experiments, samples were incubated in either 10 μM, 1 μM, 100 nM,\n 10 nM, 1 nM, and 100 pM ivermectin, at 37°C for 4 hrs. For three\n experiments, the samples were treated with the piece nearer the mouth\n being exposed to the highest ivermectin concentration and the piece near\n the vulvar pore being treated with the lowest concentration. To control\n positional bias in the remaining three experiments, the assignment was\n reversed with the piece near the vulvar pore being exposed to the highest\n concentration of ivermectin and the piece near the mouth being exposed to\n the lowest. For control experiments the anterior intestines of six\n individual \u003cem\u003eA. suum\u003c/em\u003e were dissected into six 1 cm\n pieces and incubated in APF containing 0.01% DMSO at 37 °C for 4 hrs. At\n the end of incubation, all solutions were collected for EV isolation and\n quantification. For NTA analysis in the ivermectin dose-response\n experiments, conditioned APF solutions from anterior intestinal sections\n were diluted 100-fold in filtered dPBS prior to particle\n quantification. \u003cstrong\u003e2.4 EV isolation,\n quantification, and characterization\u003c/strong\u003e\n After incubation, conditioned solutions were passed through a 0.2\n µm PVDF syringe filter (GE Healthcare, Chicago, IL) and ultracentrifuged\n at 120,000 × g for 90 mins at 4°C. Supernatants were decanted, leaving\n approximately 1.5 mL above the pellet to avoid disturbance. The EVs\n contained in the pellet were purified by size-exclusion chromatography\n (SmartSEC™ single columns), and the EV-containing fractions were\n concentrated by ultracentrifugation at 186,000 × g for 2 hrs. at 4°C. The\n pellets were resuspended in 500 µL of sterile-filtered dPBS (Thermo Fisher\n Scientific). Samples were diluted in filtered dPBS to achieve particle\n counts (20-120 particles per frame). Dilution factors were optimized for\n each experiment and are indicated in the corresponding sections, 2.2 and\n 2.3. For each sample, videos of 5 x 60 sec were recorded at a camera level\n of 12, and particles were detected using a detection threshold of five.\n The EV concentration and size distributions were determined by\n nanoparticle tracking analysis (NTA; Nano-Sight LM10, Malvern Instruments,\n Malvern, UK) \u003cstrong\u003e2.5 EV visualization by\n Transmission Electron Microscopy (TEM)\u003c/strong\u003e\n Aliquots of purified EVs were fixed in 3% glutaraldehyde + 1%\n paraformaldehyde in 0.1 M cacodylate buffer. 200-mesh copper grids with\n carbon film (EMS) were glow-discharged (Pelco easiGlow, Ted Pella) to\n render a hydrophilic surface. 2 µL of fixed EV suspension were applied to\n each grid for 30s, excess wicked with filter paper, and immediately\n negative-stained with 2% (w/v) uranyl acetate (2 µL, 30s), then wicked and\n air-dried. Grids were examined on a JEOL 2100 transmission electron\n microscope operated at 200 kV and imaged with a Gatan OneView camera at\n the Iowa State University Light and Electron Microscopy\n Facility. \u003cstrong\u003e2.6 Proteomic Analysis of EV\n Contents\u003c/strong\u003e EV protein lysates were\n prepared from EV pellets prior to LC–MS/MS proteomic analysis. EV pellets\n were kept on ice and resuspended in 30 µL of 8 M urea prepared in 50 mM\n ammonium bicarbonate buffer (ABC, pH 8.5). The urea–ABC lysis buffer was\n prepared at room temperature without heating and deionized using AG 501-X8\n resin before use to reduce ionic contaminants and minimize urea-derived\n carbamylation. EV pellets were lysed by repeated pipetting, vortexing, and\n incubation at room temperature. Specifically, each sample was pipetted up\n and down approximately 100 times, vortexed for 1 min, incubated at room\n temperature for 10 min, and vortexed again for 30 s. This cycle was\n repeated twice to promote complete solubilization of EV-associated\n proteins. The lysates were then centrifuged at 12,000–16,000 × g for 10\n min at 4 °C to remove insoluble debris. The resulting supernatant was\n collected as the soluble EV protein lysate for downstream proteomic\n analysis. When protein quantification was required, aliquots were diluted\n to reduce the urea concentration before measurement or analyzed using a\n urea-compatible protein assay (Wiśniewski et al., 2009, Rontogianni et\n al., 2019). Samples were maintained on ice or at 4 °C for short-term\n handling and were stored at −80 °C if same-day processing was not\n possible, with repeated freeze–thaw cycles avoided.\n \u003cstrong\u003e2.7 Protein digestion and LC–MS/MS\n analysis\u003c/strong\u003e Crude EV protein extracts were\n processed for bottom-up proteomic analysis by in-solution enzymatic\n digestion. Briefly, protein extracts were reduced with dithiothreitol\n (DTT), and cysteine residues were alkylated with iodoacetamide prior to\n enzymatic digestion. Samples were then digested overnight with\n trypsin/Lys-C. Digestion was stopped by the addition of formic acid, and\n the samples were dried using a SpeedVac concentrator. Peptides were\n desalted using C18 columns (BioPureSPN Plate, HHNFR S18V; Nest Group) and\n dried again in a SpeedVac. Peptide concentration was determined using a\n bicinchoninic acid assay kit (BCA-1; Sigma-Aldrich). Peptide Retention\n Time Calibration standard mixture (PRTC; Pierce, part No. 88320) was\n spiked into each sample as an internal control for LC–MS/MS performance\n monitoring. Samples were normalized to 200 ng/µL peptide and 50 fmol/µL\n PRTC, and 2 µL of each sample was injected for LC–MS/MS\n analysis. Peptides were separated by liquid\n chromatography using a Thermo Scientific Vanquish Neo UHPLC system and\n analyzed by tandem mass spectrometry on a Thermo Scientific Orbitrap\n Astral mass spectrometer equipped with a Thermo Scientific EASY-Spray ion\n source and column. The resulting intact and fragmentation pattern is\n compared to a theoretical fragmentation pattern using CHIMERYS. CHIMERYS\n was used to identify and quantify peptides from complex tandem mass\n spectra, including spectra containing co-fragmented peptide ions. Protein\n identification and quantification were performed based on peptide-spectrum\n matching and comparison of the observed MS/MS fragmentation patterns with\n theoretical fragmentation patterns generated from the protein database.\n The complete proteomic dataset, including protein identifications, peptide\n counts, and grouped abundance values for all DMSO and ivermectin treated\n replicates, is provided in Supplementary Data File S1.\n \u003cstrong\u003e2.8 Functional classification of extracellular\n vesicle proteins\u003c/strong\u003e To characterize the\n functional composition of the intestinal extracellular vesicle proteome,\n identified \u003cem\u003eAscaris suum\u003c/em\u003e proteins were assigned to\n functional categories using a priority-based scheme that combined\n UniProtKB (release 2026_02; accessed June 2026)annotation with manual\n curation. For each protein, the UniProtKB protein name and Gene Ontology\n (GO) biological process terms were retrieved and grouped according to\n their GO biological process terms. All remaining proteins lacking GO\n annotation were classified separately. The curated keyword lists were\n compiled from protein families previously reported in nematode and\n helminth secretome and extracellular vesicle studies, and all family\n assignments were manually reviewed. \u003cem\u003eA. suum\u003c/em\u003e is not\n represented in standard GO-slim enrichment databases (e.g., PANTHER), so a\n curated approach was applied in place of automated analysis. Category and\n sub-family counts were visualized as pie and donut charts.\n \u003cstrong\u003e2.9\u003c/strong\u003e \u003cstrong\u003eMeasurement of\n differential abundance analysis and visualization\u003c/strong\u003e\n Extracellular vesicle proteins were performed using the grouped\n protein abundances generated by Proteome Discoverer, comprising five\n ivermectin-treated and five DMSO-treated (vehicle control) replicates,\n with all abundances normalized to the PRTC spike-in standard. 'Master\n Protein' (Any UniProt-mapped \u003cem\u003eA. suum\u003c/em\u003e) were\n retained, and contaminant entries (Cont_) and PRTC peptides were removed.\n All \u003cem\u003eAscaris suum\u003c/em\u003e proteins were mapped to UniProt\n identifiers. For each protein, we measured the abundance values in each\n treatment group, and the valid values were checked. Proteins below two\n valid abundance values in either treatment group (only present in 1 worm)\n were excluded from the differential-abundance test as a reliable\n estimation was not possible. The grouped protein abundances from five\n ivermectin-treated and five DMSO-treated replicates were log₂-transformed.\n For each protein, the log₂ fold change was calculated as the difference\n between the mean log₂ abundance of the ivermectin groups and that of the\n DMSO groups (mean log\u003csub\u003e2\u003c/sub\u003e DMSO, mean\n log\u003csub\u003e2\u003c/sub\u003e IVM; log\u003csub\u003e2\u003c/sub\u003e FC = mean\n log\u003csub\u003e2\u003c/sub\u003e IVM - mean log\u003csub\u003e2\u003c/sub\u003e DMSO).\n To determine significance the five IVM log\u003csub\u003e2\u003c/sub\u003e vs five\n DMSO log\u003csub\u003e2\u003c/sub\u003e were assessed using Welch's\n \u003cem\u003et\u003c/em\u003e-test (unequal variance), and\n \u003cem\u003ep\u003c/em\u003e-values were adjusted for multiple comparisons using\n the Benjamini–Hochberg false discovery rate (FDR). Proteins with\n \u003cem\u003ep\u003c/em\u003e \u0026lt; 0.05 and log₂ FC \u0026gt; 1 were\n considered candidate differentially abundant proteins. For heatmap\n visualization, abundance values were converted to\n \u003cem\u003ez\u003c/em\u003e-scores across the ten samples for each protein [z =\n (log\u003csub\u003e2\u003c/sub\u003e value - mean)/SD, across the 10 samples (DMSO\n \u0026amp; IVM)]. Volcano plots were generated by plotting each protein\n log\u003csub\u003e2\u003c/sub\u003e FC (x) vs -log\u003csub\u003e10\u003c/sub\u003e(p)\n (y). \u003cstrong\u003e2.10\u003c/strong\u003e\n \u003cem\u003e\u003cstrong\u003eA. suum\u003c/strong\u003e\u003c/em\u003e\n \u003cstrong\u003ecDNA synthesis and RT-PCR detection of Glutamate-gated\n Chloride (GluCl) channels\u003c/strong\u003e A 3 cm segment\n of the anterior body of adult female \u003cem\u003eA. suum\u003c/em\u003e was\n excised and opened longitudinally. The intestine was separated from the\n body wall using two fine forceps and each tissue was transferred to 1.5 mL\n RNase-free tubes. Tissues were snap-frozen in liquid nitrogen and stored\n at −80°C until processing. RNA was isolated from frozen tissues that were\n homogenized separately in 1 mL TRIzol™ Reagent (Life Technologies, USA)\n using a mortar and pestle according to the manufacturer’s protocol. cDNA\n was synthesized from one microgram (1 μg) RNA per sample using SuperScript\n IV VILO™ Master Mix (Life Technologies, USA). Paired intestine and body\n wall tissues were collected from five individual adult female worms for\n RT-PCR analysis. RT-PCR was performed to detect\n \u003cem\u003eAsu-glc-2\u003c/em\u003e, \u003cem\u003eAsu-glc-3\u003c/em\u003e,\n \u003cem\u003eAsu-glc-4\u003c/em\u003e, and \u003cem\u003eAsu-avr-14\u003c/em\u003e\n (Supplementary Table 2) in the cDNA pool of the intestine and body wall\n using primers targeting the coding region of each gene (Supplementary\n Table 1). The reference gene \u003cem\u003eAsu-gapdh\u003c/em\u003e served as the\n positive control. Negative controls included enzyme, water, and both\n forward and reverse primers for the target gene with no cDNA template.\n RT-PCR detection was performed on cDNA derived from all five individual\n worms described above. The cycling conditions for PCR were an initial\n denaturation for 2 min at 95°C, followed by 35 cycles at 95°C for 30s,\n 60°C for 35s, 72°C for 45s, followed by a final extension period at 72°C\n for 10 mins using GoTaq® G2 Hot Start Green Master Mix (Promega, USA). The\n PCR products of each gene were then separated on an individual 2% Agarose\n gels containing SYBR® Safe DNA Gel Stain (ThermoFisher Scientific), for 60\n mins at 100 V, followed by visualization under UV light to confirm the\n presence of the genes. All photographs were acquired using Visionworks™\n software (Analytik Jena) with an exposure setting of 3s per 1\n frame. RT-PCR was performed to generate full length\n transcripts of \u003cem\u003eAsu-avr-14\u003c/em\u003e from the cDNA of the\n parasite intestine using primers that targeted the start and end codon\n (Supplementary Table 1). The reference gene \u003cem\u003eAsu-gapdh\u003c/em\u003e\n served as the positive control. Negative controls included enzyme, water,\n and both forward and reverse primers for \u003cem\u003eAsu-avr-14\u003c/em\u003e\n with no cDNA template. Amplification was performed with Platinum SuperFi™\n II Green PCR Master Mix (Thermo Fisher Scientific) under the following\n conditions: 98 °C 30s; 35 cycles at 98 °C 30 s, 59 °C for 20 s, 72 °C for\n 40 s and a final extension at 72 °C for 10 mins. Products were identified\n on a 1% agarose gel containing SYBR® Safe (Thermo Fisher Scientific) at\n 100 V for 60 mins, visualized under UV illumination, and imaged with\n VisionWorks™ (Analytik Jena; 3 s exposure). Target bands were excised and\n purified with the NucleoSpin Gel and PCR Clean-up kit (Macherey-Nagel) per\n the manufacturer’s instructions. Purified amplicons were submitted to the\n Iowa State University DNA Sequencing Facility for Sanger sequencing\n (bidirectional reads were achieved using the same forward and reverse\n primers). \u003cstrong\u003e2.11 Statistical\n analysis\u003c/strong\u003e Statistical analyses were\n performed using Prism version 10.0 (GraphPad Software, La Jolla, CA, USA).\n EV concentrations were normalized to tissue wet weight (mg) for analysis.\n Differences in EV secretion among intestinal regions were analyzed using\n one-way ANOVA followed by a post hoc Šídák multiple-comparisons test. The\n effect of ivermectin on regional EV release was analyzed using an unpaired\n t-test, with a \u003cem\u003eP\u003c/em\u003e value \u0026lt; 0.05 being considered\n statistically significant for all analyses. Dose–response relationships\n were analyzed using nonlinear regression with a log (inhibitor) versus\n response–variable slope model, and ivermectin concentrations were\n log\u003csub\u003e10\u003c/sub\u003e-transformed prior to analysis. A two-way\n ANOVA model was used to compare the means of EV size profiles following\n drug treatment, and statistical significance was determined using a post\n hoc Šídák multiple-comparisons test (\u003cem\u003eP\u003c/em\u003e \u0026lt; 0.05\n was considered significant). To account for the wide dynamic range of EV\n concentration values (particles mL\u003csup\u003e-1\u003c/sup\u003e\n mg\u003csup\u003e-1\u003c/sup\u003e) across size subsets, a constant value of 1\n was added to all EV concentration values (8 size subsets x 14 DMSO and\n ivermectin treated replicates per region) prior to log transformation, to\n avoid undefined values arising from zero counts in the log transformation.\n The adjusted values were them log\u003csub\u003e10\u003c/sub\u003e-transformed. A\n two-way ANOVA model was applied to the\n log\u003csub\u003e10\u003c/sub\u003e-transformed data to compare EV size profiles\n following drug treatment, and statistical significance was determined\n using a post hoc Šídák multiple-comparisons test (\u003cem\u003eP\u003c/em\u003e\n \u0026lt; 0.05 was considered significant). Proteomic\n data processing and statistical analyses were performed in Python using\n the pandas, NumPy, and SciPy packages, and figures were generated in R\n (version 4.5.2). Differential protein abundance between ivermectin and\n DMSO treated intestinal EVs was assessed by Welch's\n \u003cem\u003et\u003c/em\u003e-test on log₂-transformed abundances to stabilize\n the variance, approximate a normal distribution and not assume equal\n variances between groups (n = 5 replicates). \u003cem\u003eP\u003c/em\u003e values\n were corrected for multiple testing using the Benjamini–Hochberg\n false-discovery-rate (FDR) procedure. Proteins with \u003cem\u003eP\u003c/em\u003e\n \u0026lt; 0.05 and log₂ fold change \u0026gt;1 were considered\n differentially abundant. Given the sample size, these proteins are\n reported as candidate differentially abundant proteins for functional\n interpretation. To ensure reproducibility, experiments were repeated\n independently, and details including the number of adult female worms\n used, intestinal preparations, drug concentrations, and treatment\n durations (IVM and DMSO) are provided in the corresponding figure\n legends.","descriptionType":"Methods"},{"description":"# Inhibition of release of intestinal extracellular vesicles in *Ascaris\n suum* and immune modulation by the anthelmintic ivermectin Dataset DOI:\n [10.5061/dryad.zs7h44jsg](https://doi.org/10.5061/dryad.zs7h44jsg) ##\n Manuscript Data Files for Figs 2, 3, 4, 5, 6 and 7 of manuscript ### Files\n and variables #### File and variables: Fig2A.csv This dataset file shows\n the EV counts, the EV counts per ml, the intestine wet weights (mg) for 14\n whole Ascaris intestines, 14 anterior Ascaris intestine regions, 14\n Ascaris middle intestine regions and 14 Ascaris posterior regions. The 14\n different preparations are arranged in vertical columns **Description:\n Fig. 2A reveals the regional concentrations of intestinal extracellular\n vesicles (EVs) from** ***Ascaris suum*****.**\\ Quantification of EV\n concentrations released from the whole intestine and from anterior,\n middle, and posterior intestine regions. Analysis revealed the mean SEM\n concentrations/wet weight of 4.52 x 10^9^ 2.5x10^8^ particles mL^-1^\n mg^-1^ from whole intestine, 8.46 x 10^9^ 2.7 x10^8^ particles mL^-1^\n mg^-1^ from anterior intestine, 4.11 x 10^9^ 9.0 x10^7^ particles mL^-1^\n mg^-1^ from middle intestine, and 4.55 x 10^9^ 1.18 x10^8^ particles\n mL^-1^ mg^-1^ from posterior intestine.Statistical significance is\n indicated by **** for *P* \u0026lt; 0.0001. EV concentrations per mg in the\n anterior region were significantly higher than those in the whole\n intestine, middle intestine, and posterior intestine (P \u0026lt; 0.0001).\n means SEM, *N* = 14. #### File and variables: Fig3_A.csv This dataset file\n shows the EV counts per ml per mg wet weight (mg) of 14 control anterior\n Ascaris intestine regions and for 14 ivermectin 1µM treated anterior\n Ascaris intestines regions; it also shows he EV counts per ml per mg wet\n weight (mg) of 14 control middle Ascaris intestine regions and for 14\n ivermectin 1µM treated middle Ascaris intestine regions; and the EV counts\n per ml per mg wet weight (mg) of 14 control posterior Ascaris intestine\n regions and for 14 ivemectin 1µM treated posterior Ascaris intestine\n regions; ##### **Description: Fig. 3A Shows Ivermectin inhibits\n extracellular vesicle (EV) secretion from the intestine of adult female**\n ***Ascaris suum*** Adult female intestinal tissues (anterior, middle, and\n posterior regions) were cultured at 37 C in *Ascaris* perienteric fluid\n with 1 M ivermectin (IVM) or 0.01% DMSO. Media was collected after 4 h,\n and EVs were isolated and quantified by nanoparticle tracking analysis. EV\n concentrations obtained from the three intestinal regions of 14\n independent worms, normalized to their corresponding intestinal wet\n weight.*Anterior intestine:* EV concentrations: Means SEM 7.26 x 10^9^\n 2.15x10^8^ particles mL^-1^ mg^-1^ for control and 3.02 x 10^9^ 8.03x10^7^\n particles mL^-1^ mg^-1^ for 1 M ivermectin (IVM). **** *P* \u0026lt; 0.0001, N\n = 14, unpaired *t-test.* *Middle intestine:* EV concentrations: Means SEM\n 3.57 x 10^9^ 6.98x10^7^ particles mL^-1^ mg^1^ for control and 1.35 x\n 10^9^ 8.06 x10^7^ particles mL^-1^ mg^-1^ for 1 M ivermectin. **** *P*\n \u0026lt; 0.0001, N = 14, unpaired *t-test.* *Posterior intestine:* EV\n concentrations: Means SEM were 4.85 x 10^9^ 9.25 x10^7^ particles mL^-1^\n mg^-1^ for control with 0.01% DMSO and 2.03 x 10^9^ 6.83 x10^7^ particles\n mL^-1^ mg^-1^ for 1 M ivermectin. *****P* \u0026lt; 0.0001, N = 14, unpaired\n *t-tes^. ^* #### File and variables: Fig3B.csv The dataset file shows in\n column 1 the molar concentration of ivermectin and in the six other\n columns the EV concentration per ml per mg wet weight of the anterior\n region of the Ascaris intestine to allow a dose response relationship to\n be determined. **Description: Fig 3B shows** the Ivermectin dose-response\n for the anterior region of the intestine. The anterior region was\n dissected into six sequential 1 cm pieces from pharynx to vulvar pore, and\n each piece was incubated with an ivermectin concentration that ranged from\n 10 M to 100 pM (10^-5^10^-10^ M) for 4 h. In three experiments, tissues\n were treated from pharynx to vulvar pore, and in three experiments from\n vulvar pore to pharynx. EV concentrations obtained from anterior region of\n 6 independent worms were normalized to the corresponding intestinal wet\n weight. Ivermectin inhibited EV release in a concentration-dependent\n manner, with an estimated *IC* of 64 nM, N=6. #### File and variables:\n Fig4A.csv The dataset file shows in column 1 the EV size (nM) ranges\n measured and the EV concentrations/ml/mg wet weight of the anterior region\n of the Ascaris intestine of 14 worms under control conditions and in the\n presence of Ivermectin 1µM. **Description: Fig. 4A Shows that the\n secretion of EV size subsets from the anterior intestine are inhibited by\n ivermectin.**  Adult female intestinal tissues (anterior, middle, and\n posterior regions) were cultured at 37 C in *Ascaris* perienteric fluid\n with 1 M ivermectin (IVM) or 0.01% DMSO (pH 7.6). Media was collected\n after 4 h, and EVs were isolated and quantified. A two-way ANOVA model was\n used to compare the means of EV size profiles following drug treatment,\n and statistical significance was determined using a post-hoc dk\n multiple-comparisons test (*P* \u0026lt; 0.05 was considered significant, ***\n for *P* \u0026lt;0.001, **** for *P* \u0026lt;0.0001).Data are presented as mean\n SEM, *N* = 14. Comparisons without significance markers were not\n statistically significant. In the anterior intestine, ivermectin (1 M)\n significantly inhibited the 101150 nm, 151200 nm and 201250 nm EV subsets.\n EV concentrations were 3.83 x 10^7^ 1.38 x10^6^ particles mL^-1^ mg^-1^\n with 0.01%DMSO and 1.19 x 10^7^ 6.78 x10^5^ particles mL^-1^ mg^-1^ with 1\n M ivermectin in the 101-150 nm EV subsets; EV concentrations were 6.55 x\n 10^7^ 2.81 x10^6^ particles mL^-1^ mg^-1^ with 0.01%DMSO and 2.84 x 10^7^\n 8.92 x10^5^ particles mL^-1^ mg^-1^ with 1 M ivermectin in the 151200 nm\n EV subsets; EV concentrations were 2.78 x 10^7^ 9.78 x10^5^ particles\n mL^-1^ mg^-1^ with 0.01%DMSO and 1.40 x 10^7^ 5.35 x10^5^ particles mL^-1^\n mg^-1^ with 1 M ivermectin in the 201250 nm EV subsets. Percent reductions\n in EV concentration (particles mL^-1^ mg ^-1^) following ivermectin\n treatment are indicated above the red bars. Ivermectin reduced EV\n concentration (particles mL^-1^ mg ^-1^) by 69% in the 101150 nm EV size\n range, 57% in the 151200 nm range, and 50% in the 201250 nm range. Two-way\n ANOVA showed a significant inhibitory effect of ivermectin on EV\n concentration (P\u0026lt; 0.0001; F=136.45; DFn=1, DFd=208), and a significant\n interaction between the effect of ivermectin and EV size (P=0.0013;\n F=3.53; DFn=7, DFd=208), indicating that ivermectin did not reduce all EV\n size populations equally and had different quantitative effects across EV\n size groups, consistent with heterogeneity within the intestinal EV\n population. Post-hoc dk multiple comparisons confirmed that ivermectin\n significantly reduced EV concentration in the 101-150 nm (P \u0026lt; 0.0001),\n 151-200 nm (P \u0026lt; 0.0001), and 201-250 nm (P \u0026lt; 0.0001) subsets, while\n other size ranges were not significantly affected. #### File and\n variables: Fig4B.csv The dataset file shows in column 1 the EV size (nM)\n ranges measured and the EV concentrations/ml/mg wet weight of the middle\n region of the Ascaris intestine of 14 worms under control conditions and\n in the presence of Ivermectin 1µM. **Description Fig4B** In the middle\n intestine, ivermectin (1 M) significantly inhibited the 101150 nm, 151200\n nm, 201250 nm, and 251-300 nm EV subsets released from the middle\n intestinal region of *Ascaris suum*. Statistical significance is indicated\n by **** for *P* \u0026lt;0.0001. The EV concentrations were mean SEM 1.48 x\n 10^7^ 4.43 x10^5^ particles mL^-1^ mg^-1^ with 0.01% DMSO and 4.89 x 10^6^\n 4.08 x10^5^ particles mL^-1^ mg^-1^ with 1 M ivermectin in the 101-150 nm\n EV subsets; EV concentrations were 3.86 x 10^7^ 8.76 x10^5^ particles\n mL^-1^ mg^-1^ with 0.01%DMSO and 1.41 x 10^7^ 8.92 x10^5^ particles mL^-1^\n mg^-1^ with 1 M ivermectin in the 151200 nm EV subsets; EV concentrations\n were 1.30 x 10^7^ 3.42 x10^5^ particles mL^-1^ mg^-1^ with 0.01%DMSO and\n 5.55 x 10^6^ 4.25 x10^5^ particles mL^-1^ mg^-1^ with 1 M ivermectin in\n the 201250 nm EV subsets; EV concentrations were 3.86 x 10^6^ 1.50 x10^5^\n particles mL^-1^ mg^-1^ with 0.01%DMSO and 1.73 x 10^6^ 2.18 x10^5^\n particles mL^-1^ mg^-1^ with 1 M ivermectin in the 251300 nm EV subsets.\n Percent reductions in EV concentration (particles mL^-1^ mg ^-1^)\n following ivermectin treatment are indicated above the red bars.\n Ivermectin reduced EV concentration (particles mL^-1^ mg ^-1^) by 67% in\n the 101150 nm EV size range, 63% in the 151200 nm range, 57% in the 201250\n nm range, and 55% in the 251300 nm range. Two-way ANOVA showed a\n significant inhibitory effect of ivermectin on EV concentration (P =\n 0.0199; F = 5.51; DFn = 1, DFd = 208), and a significant interaction\n between the effect of ivermectin and EV size (P \u0026lt; 0.0001; F = 7.52; DFn\n = 7, DFd = 208), indicating that ivermectin did not reduce all EV size\n populations equally and had different quantitative effects across EV size\n groups, consistent with heterogeneity within the intestinal EV population.\n Post-hoc dk multiple comparisons confirmed that ivermectin significantly\n reduced EV concentration in the 101-150 nm (P \u0026lt; 0.0001), 151-200 nm (P\n \u0026lt; 0.0001), 201-250 nm (P \u0026lt; 0.0001), and 251-300 nm (P = 0.0008)\n subsets, while other size ranges were not significantly affected. ####\n File and variables: Fig4_C.csv The dataset file shows in column 1 the EV\n size (nM) ranges measured and the EV concentrations/ml/mg wet weight of\n the posterior region of the Ascaris intestine of 14 worms under control\n conditions and in the presence of Ivermectin 1µM. **Description: Fig4C.**\n In the posterior intestine, ivermectin (1 M) significantly inhibited EV\n subsets (101150 nm, 151200 nm, and 201250 nm) released from the posterior\n intestinal region of *Ascaris suum*. EV concentrations were 2.16 x 10^7^\n 9.97 x10^5^ particles mL^-1^ mg^-1^ with 0.01%DMSO and 6.90 x 10^6^ 3.28\n x10^5^ particles mL^-1^ mg^-1^ with 1 M ivermectin in the 101-150 nm EV\n subsets; EV concentrations were 5.28 x 10^7^ 1.17 x10^6^ particles mL^-1^\n mg^-1^ with 0.01%DMSO and 2.05 x 10^7^ 7.25 x10^6^ particles mL^-1^ mg^-1^\n with 1 M ivermectin in the 151200 nm EV subsets; EV concentrations were\n 1.70 x 10^7^ 6.05 x10^5^ particles mL^-1^ mg^-1^ with 0.01%DMSO and 9.11 x\n 10^6^ 6.09 x10^5^ particles mL^-1^ mg^-1^ with 1 M ivermectin in the\n 201250 nm EV subsets. Percent reductions in EV concentration (particles\n mL^-1^ mg ^-1^) following ivermectin treatment are indicated above the red\n bars. Ivermectin reduced EV concentration (particles mL^-1^ mg ^-1^) by\n 68% in the 101150 nm EV size range, 61% in the 151200 nm range, and 46% in\n the 201250 nm range. Two-way ANOVA did not show a significant overall main\n effect of ivermectin across all size subsets (P = 0.8596; F = 0.03; DFn =\n 1, DFd = 208), but there was a significant interaction between ivermectin\n treatment and EV size (P \u0026lt; 0.0001; F = 4.89; DFn = 7, DFd = 208).\n Post-hoc dk multiple comparisons confirmed that ivermectin significantly\n reduced EV concentration in the 101-150 nm (P \u0026lt; 0.0001), 151-200 nm (P\n \u0026lt; 0.0001), and 201-250 nm (P \u0026lt; 0.0001) subsets, while other size\n ranges were not significantly affected. #### File and variables: FIG5A.csv\n The dataset files lists in vertical columns proteins classified as:\n Digestive-related (140 proteins); Translation (120 proteins); Protein\n Folding (96 proteins); Immune-related (100 proteins); Carbohydrate and\n Energy metabolism (46 proteins); cytoskeletal organization (76 proteins);\n Proteolysis and Protein Catabolism (including Ubiquitin, (45 proteins);\n Lipid metabolism (43 proteins);Signal Transduction (46 proteins);\n Vesicle/Intracellular Transport (19 proteins); Transport (ion/small\n molecule), (61 poretins); Nucleic Acid Metabolism (24 proteins); Stress\n Response \u0026amp; Redox (9 proteins); NO BP GO annotation (433 proteins); and\n other biological processes (316 proteins). These proteins are identified\n and classified by their Accession number (eg FiKPW3), main functional\n category, their sub-family functional category, their name and in column 6\n if Ivermectin (1µm) had a significant effect (marked as YES) on the\n expression level; no significant effect is shown by a black in column 6.\n Proteins were classified by a priority scheme: proteins matching curated\n putative immune-related or digestive-related protein families (by protein\n name or Gene Ontology annotation) were assigned to those categories first,\n and all remaining proteins were grouped by Gene Ontology Biological\n Process (UniProtKB). **Description: Fig. 5a. Pie chart of the functional\n classification of the** ***A. suum*** **intestinal-EV proteome.**\n Distribution of the 1,574 *A. suum* intestinal-EV proteins across\n functional categories. Categories and their proportions of the total\n proteome were: No GO annotation, 436 (27.7%); Other biological process,\n 265 (16.8%); Digestive-related, 130 (8.3%); Translation, 119 (7.6%);\n Protein folding \u0026amp; Transport, 116 (7.4%); Immune-related, 96 (6.1%);\n Carbohydrate \u0026amp; Energy metabolism, 85 (5.4%); Cytoskeleton\n organization, 68 (4.3%); Proteolysis \u0026amp; Protein catabolism (incl.\n ubiquitin), 67 (4.3%); Lipid metabolism, 50 (3.2%); Signal transduction,\n 49 (3.1%); Vesicle/Intracellular transport, 32 (2.0%); Transport\n (ion/small molecule), 27 (1.7%); Nucleic acid metabolism, 25 (1.6%); and\n Stress response \u0026amp; Redox, 9 (0.6%). Presumed immune-related and\n digestive-related proteins form distinct fractions alongside major\n housekeeping categories such as translation, protein folding/transport,\n and energy metabolism. Proteins lacking an informative GO Biological\n Process annotation are shown separately (\"No GO annotation\" and\n \"Other biological process\"), consistent with the incompletely\n characterized *A. suum* proteome. #### File and Variables: File Fig5B.csv\n The data set lists in vertical columns the sub-family composition of the\n 96 putative immune-related proteins. These proteins are identified and\n classified by their Accession number , their protein name, their\n sub-family functional category, t and in the final column if Ivermectin\n (1µm) had a significant effect (shown in column 6 by YES) on the\n expression level. The lack of a significant effect of Ivermectin (1µm) is\n seen as a black in column 6). Proteins were classified by a priority\n scheme: proteins matching curated putative immune-related. 20 Heat shock\n proteins are listed, 20 Transthyretin-like proteins are listed; 16\n Lectin/Galectin proteins are listed; 11 Thioredoxin/Peroxidredoxin\n proteins are listed; 6 cathepsin/Cyesteine proteases are listed; 8\n Cyclophilins are listed; 3 antimicrobial peptides are listed; 2\n phospholipases are listed; 2 WAGO/Argonaute proteins are listed. 2\n cystatin/protease inhibitors are listed; 5 GO immune/defense response\n proteins are listed; 5 other immune families are listed. **Description:\n Fig5B shows** the sub-family composition of the 96 putative immune-related\n proteins; the center value indicates their proportion of the total\n proteome (6.1%). #### File and variables: Fig5C.csv The data set lists in\n vertical columns the sub-family composition of the 130 putative digestion\n function proteins. These proteins are identified and classified by their\n Accession number , their protein name, their sub-family functional\n category, and in the final column if Ivermectin (1µm) had a significant\n effect (shown in column 6 by YES) on the expression level. The lack of a\n significant effect of Ivermectin (1µm) is seen as a black in column 6).\n Proteins were classified by a priority scheme: proteins matching digestion\n function. Listed are 61 protease/peptidases; 23 Glycosidases; 19 Lipases;\n 16 Glycolytic/Energy proteins; 10 ABC transporters; 6 aminotransferases; 5\n lipid transporters. **Description: Fig5C shows** the sub-family\n composition of the 130 digestive-related proteins; the center value\n indicates their proportion of the total proteome (8.3%). #### File and\n variables: Fig6_A_B.csv The dataset file sows in columns the Z-scored log\n protein abundance and corresponding log fold-change (IVM/DMSO) due to\n ivermectin (1µM) for the top 11 potential immune-related and 9 potential\n digestion-related proteins listed in Column 1 of the data set. Except for\n the samples with blank entered each sample has 5 DMSO independent\n estimates and 5 ivermectin (1µM) exposed. The blanks are due to no\n experiment. The negative proteins with negative Z scores were\n down-regulated and the positive Z scores were up regulated. Column 1:\n protein. Column 2 sample. Column 3: DMSO control or Ivermectin test (IVM).\n Column 4 Z score. Column 5 shows the mean log2 Fold Change score for the\n specific protein group calculated from the mean ivermectin /mean control.\n Blanks are without entered values. **Description: Fig 6 A \u0026amp; B shows\n Potential Immune-related affected by ivermectin.** Heatmaps of Z-scored\n log protein abundance and corresponding log fold-change (IVM/DMSO) bar\n charts for the top 9 potential digestive-related proteins. Color scale:\n blue, lower abundance (down); red, higher abundance (up) in 1µM ivermectin\n compared to the 0.01%DMSO. The proteins are ordered from most\n downregulated to most upregulated. Ivermectin sample blocks are separated\n by a vertical divider. The right-hand column shows the mean ivermectin\n Z-score for each protein. Dashed lines mark logFC = 1. Proteins are\n labeled by name and UniProt accession. All proteins shown are significant\n (p \u0026lt; 0.05, logFC \u0026gt; 1). **A shows:** Heat map showing the decreased\n and increased abundance of the top potential immune-related proteins. **B:\n shows** log (fold-change) IVM/DMSO bar charts for the top potential\n immune-related proteins. #### File and Variables: Fig6_C_D.csv The dataset\n file sows in columns the Z-scored log protein abundance and corresponding\n log fold-change (IVM/DMSO) due to ivermectin (1µM) for the top 9 potential\n digestion-related proteins listed in Column 1 of the data set. Except for\n the samples with blank entered each sample has 5 DMSO independent\n estimates and 5 ivermectin (1µM) exposed. The blanks are due to absence of\n experimental values. The negative proteins with negative Z scores were\n down-regulated and the positive Z scores were up regulated. Column 1:\n protein. Column 2 sample. Column 3: DMSO control or Ivermectin test (IVM).\n Column 4 Z score. Column 5 shows the mean log2 Fold Change score for the\n specific protein group calculated from the mean ivermectin /mean control.\n Blanks are without entered values. **Description: Fig 6 C** shows the Heat\n map with the the decreased and increased abundance of the top\n digestion-related proteins. **Fig 6D shows** the log (fold-change)\n IVM/DMSO bar charts for the top digestion-related proteins. #### File and\n Variables: Fig7.csv The dataset lists in 6 columns the effect of\n ivermectin (1µM) on 1325 proteins. Column 1 is the protein Accession\n number. Column 2 is the functional descriptor of the protein. Column 3 is\n the log2 functional change. Column 4 is the -log10(p). Column 5 is the\n p-value. Column lists the interpretation of significance: Yes as\n significant; No as not significant. **Description: Fig 7 Volcano plot of\n differential protein abundance by ivermectin treated** ***A. suum***\n **intestinal EVs.** Each point represents one protein; the x-axis shows\n log (fold change) IVM/DMSO, and the y-axis shows log(p-value)\n (Welch's t-test, N = 5). Dashed lines indicate the significance\n thresholds (p = 0.05 and logFC \u0026gt; 1). Of 1325 quantified proteins, 38\n were significantly altered (23 decreased and 15 increased following\n ivermectin exposure). Light-grey points, not significant; black points,\n significant proteins not assigned to the immune or digestive categories;\n yellow points, significant potential immune-related proteins; green\n points, significant digestive-related proteins. Significant potential\n immune-related and digestive-related proteins are labelled by name.\n Proteins on the left are decreased in ivermectin relative to DMSO.\n Proteins on the right side of the plot are increased in ivermectin\n relative to DMSO.","descriptionType":"TechnicalInfo"}],"geoLocations":[],"fundingReferences":[{"awardUri":"https://reporter.nih.gov/project-details/10899540","awardTitle":"Slo-1K channels, TRP-2 channels, emodepside and diethylcarbamazine in Filaria","funderName":"National Institute of Allergy and Infectious Diseases","awardNumber":"5R01AI155413-05","funderIdentifier":"https://ror.org/043z4tv69","funderIdentifierType":"ROR"}],"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC5aUzdINDRKU0c8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkxpdSwgRG9uZ2ppZTwvY3JlYXRvck5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiIHNjaGVtZVVSST0iaHR0cDovL29yY2lkLm9yZy8iPjAwMDAtMDAwMy0yNDIyLTE4NDc8L25hbWVJZGVudGlmaWVyPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDRyc3dyZDc4IiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPklvd2EgU3RhdGUgVW5pdmVyc2l0eTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+V2lsbGlhbXMsIFBhdWw8L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDRyc3dyZDc4IiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPklvd2EgU3RhdGUgVW5pdmVyc2l0eTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+S2ltYmVyLCBNaWNoYWVsPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzA0cnN3cmQ3OCIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Jb3dhIFN0YXRlIFVuaXZlcnNpdHk8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPlJvYmVydHNvbiwgQWxhbjwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wNHJzd3JkNzgiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+SW93YSBTdGF0ZSBVbml2ZXJzaXR5PC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5NYXJ0aW4sIFJpY2hhcmQ8L2NyZWF0b3JOYW1lPgogICAgICA8bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmcvIj4wMDAwLTAwMDMtMjQyMi0xODQ3PC9uYW1lSWRlbnRpZmllcj4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzA0cnN3cmQ3OCIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Jb3dhIFN0YXRlIFVuaXZlcnNpdHk8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogIDwvY3JlYXRvcnM+CiAgPHRpdGxlcz4KICAgIDx0aXRsZT4KICAgICAgSW5oaWJpdGlvbiBvZiByZWxlYXNlIG9mIGludGVzdGluYWwgZXh0cmFjZWxsdWxhciB2ZXNpY2xlcyBpbgogICAgICAmbHQ7ZW0mZ3Q7QXNjYXJpcyBzdXVtJmx0Oy9lbSZndDsgYW5kIGltbXVuZSBtb2R1bGF0aW9uIGJ5IHRoZQogICAgICBhbnRoZWxtaW50aWMgaXZlcm1lY3RpbgogICAgPC90aXRsZT4KICA8L3RpdGxlcz4KICA8cHVibGlzaGVyIHB1Ymxpc2hlcklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wMHg2aDVuOTUiIHB1Ymxpc2hlcklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmcvIj5EcnlhZDwvcHVibGlzaGVyPgogIDxyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iRGF0YXNldCI+ZGF0YXNldDwvcmVzb3VyY2VUeXBlPgogIDxwdWJsaWNhdGlvblllYXI+MjAyNjwvcHVibGljYXRpb25ZZWFyPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9ImZvcyIgc2NoZW1lVVJJPSJodHRwczovL3dlYi1hcmNoaXZlLm9lY2Qub3JnLzIwMTItMDYtMTUvMTM4NTc1LTM4MjM1MTQ3LnBkZiI+Rk9TOiBCYXNpYyBtZWRpY2luZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0Pml2ZXJtZWN0aW48L3N1YmplY3Q+CiAgICA8c3ViamVjdD5FeHRyYWNlbGx1bGFyIFZlc2NpY2xlczwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkFzY2FyaXMgc3V1bTwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9IlBMT1MgU3ViamVjdCBBcmVhIFRoZXNhdXJ1cyIgc2NoZW1lVVJJPSJodHRwczovL2dpdGh1Yi5jb20vUExPUy9wbG9zLXRoZXNhdXJ1cyI+TmVtYXRvZGUgaW5mZWN0aW9uczwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9IlBMT1MgU3ViamVjdCBBcmVhIFRoZXNhdXJ1cyIgc2NoZW1lVVJJPSJodHRwczovL2dpdGh1Yi5jb20vUExPUy9wbG9zLXRoZXNhdXJ1cyI+UGhhcm1hY29sb2d5PC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iUExPUyBTdWJqZWN0IEFyZWEgVGhlc2F1cnVzIiBzY2hlbWVVUkk9Imh0dHBzOi8vZ2l0aHViLmNvbS9QTE9TL3Bsb3MtdGhlc2F1cnVzIj5QYXJhc2l0b2xvZ3k8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZnVuZGluZ1JlZmVyZW5jZXM+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgSW5zdGl0dXRlIG9mIEFsbGVyZ3kgYW5kIEluZmVjdGlvdXMgRGlzZWFzZXM8L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wNDN6NHR2Njk8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZE51bWJlciBhd2FyZFVSST0iaHR0cHM6Ly9yZXBvcnRlci5uaWguZ292L3Byb2plY3QtZGV0YWlscy8xMDg5OTU0MCI+NVIwMUFJMTU1NDEzLTA1PC9hd2FyZE51bWJlcj4KICAgICAgPGF3YXJkVGl0bGU+U2xvLTFLIGNoYW5uZWxzLCBUUlAtMiBjaGFubmVscywgZW1vZGVwc2lkZSBhbmQgZGlldGh5bGNhcmJhbWF6aW5lIGluIEZpbGFyaWE8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgPC9mdW5kaW5nUmVmZXJlbmNlcz4KICA8Y29udHJpYnV0b3JzPgogICAgPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iU3BvbnNvciI+CiAgICAgIDxjb250cmlidXRvck5hbWU+RGVwYXJ0bWVudCBvZiBCaW9tZWRpY2FsIFNjaWVuY2UsIElvd2EgU3RhdGUgVW5pdmVyc2l0eTwvY29udHJpYnV0b3JOYW1lPgogICAgPC9jb250cmlidXRvcj4KICA8L2NvbnRyaWJ1dG9ycz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQ3JlYXRlZCI+MjAyNi0wOC0yNVQyMTowMToyMlo8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iU3VibWl0dGVkIj4yMDI2LTA4LTI1VDIxOjAxOjIzWjwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMjYtMDktMDNUMDA6MDA6MDBaPC9kYXRlPgogICAgPGRhdGUgZGF0ZVR5cGU9IkF2YWlsYWJsZSI+MjAyNi0wOS0wM1QwMDowMDowMFo8L2RhdGU+CiAgPC9kYXRlcz4KICA8bGFuZ3VhZ2U+ZW48L2xhbmd1YWdlPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRpb25UeXBlPSJJc0NpdGVkQnkiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj5odHRwczovL2RvaS5vcmcvMTAuNjQ4OTgvMjAyNi4wOC4yNS43NDU4MTY8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDxzaXplcz4KICAgIDxzaXplPjM0MzYxMSBieXRlczwvc2l6ZT4KICA8L3NpemVzPgogIDx2ZXJzaW9uPjQ8L3ZlcnNpb24+CiAgPHJpZ2h0c0xpc3Q+CiAgICA8cmlnaHRzIHJpZ2h0c1VSST0iaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9DQzAtMS4wLmh0bWwiPkNyZWF0aXZlIENvbW1vbnMgWmVybyB2MS4wIFVuaXZlcnNhbDwvcmlnaHRzPgogIDwvcmlnaHRzTGlzdD4KICA8ZGVzY3JpcHRpb25zPgogICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiPgogICAgICBJdmVybWVjdGluIGlzIGFuIGltcG9ydGFudCBicm9hZC1zcGVjdHJ1bSBhbnRoZWxtaW50aWMgdXNlZCB0byB0cmVhdAogICAgICBuZW1hdG9kZSBwYXJhc2l0ZXMgaW5jbHVkaW5nIGdhc3Ryby1pbnRlc3RpbmFsIGluZmVjdGlvbnMgb2YgaHVtYW5zIGFuZAogICAgICBhbmltYWxzLiBUaGUgbW9kZSBvZiBhY3Rpb24gZm9yIEl2ZXJtZWN0aW4gaXMgdW5kZXJzdG9vZCB0byBpbnZvbHZlCiAgICAgIGFjdGl2YXRpb24gb2YgaW5oaWJpdG9yeSBnbHV0YW1hdGUtZ2F0ZWQgY2hsb3JpZGUgY2hhbm5lbHMgKEdsdUNscykuCiAgICAgIEl2ZXJtZWN0aW4gaGFzIGFsc28gYmVlbiByZXBvcnRlZCB0byBpbmhpYml0IHRoZSByZWxlYXNlIG9mIGV4dHJhY2VsbHVsYXIKICAgICAgdmVzaWNsZXMgKEVWcykuIFdlIGZvdW5kIHRoYXQgRVZzIGFyZSByZWxlYXNlZCBmcm9tIHRoZSB3aG9sZSBpbnRlc3RpbmUgb2YKICAgICAgdGhlIGdhc3Ryby1pbnRlc3RpbmFsIHBhcmFzaXRlLCBBc2NhcmlzIHN1dW0uIFByb3Rlb21pYyBhbmFseXNpcwogICAgICBpZGVudGlmaWVkIDEsNTc0IHByb3RlaW5zIHdpdGhpbiB0aGVzZSBpbnRlc3RpbmFsIEVWcywgaW5jbHVkaW5nIDk2CiAgICAgIG5lbWF0b2RlIHByb3RlaW5zIHdpdGggcHV0YXRpdmUgaW1tdW5lLWFzc29jaWF0ZWQgZnVuY3Rpb25zIGJhc2VkIG9uCiAgICAgIGhvbW9sb2d5IHRvIHByb3RlaW5zIGludm9sdmVkIGluIGhvc3QgaW1tdW5lIHByb2Nlc3NlcyBhbmQgMTMwIHByb3RlaW5zCiAgICAgIHdpdGggcHJlZGljdGVkIGRpZ2VzdGl2ZSBmdW5jdGlvbnMuIENvbXBhcmF0aXZlIGFuYWx5c2lzIGZvbGxvd2luZwogICAgICBpdmVybWVjdGluIGV4cG9zdXJlIHJldmVhbGVkIDM4IGRpZmZlcmVudGlhbGx5IGFidW5kYW50IHByb3RlaW5zIHRoYXQKICAgICAgaW5jbHVkZWQgdGhlIHB1dGF0aXZlIGltbXVuZS1yZWxhdGVkIHByb3RlaW5zOiB0cmFuc3RoeXJldGluLWxpa2UKICAgICAgcHJvdGVpbnMsIGEgc21hbGwgaGVhdC1zaG9jayBhbnRpZ2VuLCBhIHBob3NwaG9saXBhc2UgQTIsIGFuZCB0aGUgTkYtzrpCCiAgICAgIHN1YnVuaXQgcDEwNS4gVGh1cywgaXZlcm1lY3RpbiBtb2R1bGF0ZWQgdGhlIHBvdGVudGlhbCBpbW11bmUtcmVsYXRlZAogICAgICBjYXJnbyBvZiBpbnRlc3RpbmFsIEVWcy4gVGhlIGl2ZXJtZWN0aW4gaW5oaWJpdGlvbiBvZiBpbnRlc3RpbmFsIEVWCiAgICAgIHJlbGVhc2Ugd2FzIGNvbmNlbnRyYXRpb24tZGVwZW5kZW50IHdpdGggYW4gSUM1MCBvZiA2NCBuTS4gV2UgYWxzbwogICAgICBpZGVudGlmaWVkIHRoZSBleHByZXNzaW9uIG9mIEdsdUNsIHN1YnVuaXQgcmVjZXB0b3IgZ2VuZXMgaW4gdGhlIEFzY2FyaXMKICAgICAgaW50ZXN0aW5lLiBUaGUgcG90ZW50IGluaGliaXRvcnkgZWZmZWN0IG9mIGl2ZXJtZWN0aW4gb24gdGhlIHJlbGVhc2Ugb2YKICAgICAgdGhlc2UgRVZzIGZyb20gdGhlIG5lbWF0b2RlIGludGVzdGluZSBhbmQgdGhlIGV4cHJlc3Npb24gb2YgR2x1Q2wgY2hhbm5lbAogICAgICBzdWJ1bml0cyBzaGVkcyBmdXJ0aGVyIGxpZ2h0IG9uIHRoZSBzaXRlIGFuZCBtZWNoYW5pc21zIG9mIGFjdGlvbiBvZiB0aGlzCiAgICAgIGltcG9ydGFudCBhbnRoZWxtaW50aWMuIFdlIHNob3cgdGhlIGRhdGFzZXTigJlzIGZvciB0aGUgZmlndXJlcyAyLDMsNCw1LDYsNywKICAgICAgc3VwcGxlbWVudGFyeSBmaWxlIFMxIE5TIHMzLgogICAgPC9kZXNjcmlwdGlvbj4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPgogICAgICAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0OzIuMSBDb2xsZWN0aW9uIGFuZCBtYWludGVuYW5jZSBvZiZsdDsvc3Ryb25nJmd0OwogICAgICAmbHQ7ZW0mZ3Q7Jmx0O3N0cm9uZyZndDtBLiBzdXVtJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9lbSZndDsmbHQ7L3AmZ3Q7CiAgICAgICZsdDtwJmd0O0FkdWx0IGZlbWFsZSAmbHQ7ZW0mZ3Q7QS4gc3V1bSZsdDsvZW0mZ3Q7IHdvcm1zIHdlcmUgY29sbGVjdGVkCiAgICAgIGZyb20gdGhlIEpCUyBTd2lmdCBhbmQgQ28uIHBvcmsgcHJvY2Vzc2luZyBwbGFudCwgTWFyc2hhbGx0b3duLCBJb3dhLgogICAgICBXb3JtcyB3ZXJlIG1haW50YWluZWQgaW4gJmx0O2VtJmd0O0FzY2FyaXMmbHQ7L2VtJmd0OyBSaW5nZXJzIFNvbHV0aW9uCiAgICAgIChBUlM6IDEzIG1NIE5hQ2wsIDkgbU0gQ2FDbOKCgiwgNyBtTSBNZ0Ns4oKCLCAxMiBtTSBD4oKESOKCgeKCgU5P4oKDLCBUcmlzLCA5OSBtTQogICAgICBOYUPigoJI4oKDT+KCgiwgMTkgbU0gS0NsLCBhbmQgNSBtTSBnbHVjb3NlIHBIIDcuOCkgYXQgMzLCsEMgZm9yIDI0IGggdG8gYWxsb3cKICAgICAgZm9yIGFjY2xpbWF0aXphdGlvbiBiZWZvcmUgdXNlIGluIGV4cGVyaW1lbnRzLiBUaGUgd29ybXMgd2VyZSB1c2VkIHRoZQogICAgICBmb2xsb3dpbmcgZGF5LiBBbGwgdGhlIHdvcm1zIHdlcmUgZXhhbWluZWQgYXQgdGhlIHN0YXJ0IG9mIGVhY2gKICAgICAgZXhwZXJpbWVudGFsIGRheSBhbmQgZGlzY2FyZGVkIGlmIHRoZXkgd2VyZSBkYW1hZ2VkIG9yIGltbW90aWxlLiZsdDsvcCZndDsKICAgICAgJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDsyLjIgQ29sbGVjdGlvbiBvZiBFeHRyYWNlbGx1bGFyIFZlc2ljbGVzIChFVnMpCiAgICAgIGZyb20mbHQ7L3N0cm9uZyZndDsgJmx0O2VtJmd0OyZsdDtzdHJvbmcmZ3Q7QS4KICAgICAgc3V1bSZsdDsvc3Ryb25nJmd0OyZsdDsvZW0mZ3Q7ICZsdDtzdHJvbmcmZ3Q7SW50ZXN0aW5hbAogICAgICBTZWN0aW9ucyZsdDsvc3Ryb25nJmd0OyZsdDsvcCZndDsgJmx0O3AmZ3Q7VGhlIHdob2xlIGludGVzdGluZSBvZiBhZHVsdAogICAgICAmbHQ7ZW0mZ3Q7QS4gc3V1bSZsdDsvZW0mZ3Q7IHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcGFyYXNpdGUgYnkgZGlzc2VjdGluZwogICAgICB0aGUgcGFyYXNpdGUgZnJvbSB0aGUgYmFzZSBvZiB0aGUgcGhhcnlueCB0byB0aGUgYW5hbCBwb3JlIChIYXJwdXIsIDE5NzcpLgogICAgICBUaGUgaW50ZXN0aW5lIHdhcyByZW1vdmVkIGZyb20gdGhlIGJvZHkgdXNpbmcgZmluZSBmb3JjZXBzLCBhdm9pZGluZyBvdGhlcgogICAgICB0aXNzdWVzIGluY2x1ZGluZyB0aGUgcmVwcm9kdWN0aXZlIG9yZ2FucyBhbmQgbXVzY2xlCiAgICAgIGJhZ3MmbHQ7ZW0mZ3Q7LiZsdDsvZW0mZ3Q7IFRoZSBpbnRlc3RpbmVzIHdlcmUgZWl0aGVyIHByb2Nlc3NlZCB3aG9sZSBvcgogICAgICBkaXNzZWN0ZWQgaW50byB0aHJlZSBhbmF0b21pY2FsIHJlZ2lvbnM6IDEpIHRoZSBhbnRlcmlvciByZWdpb24sIHdoaWNoIGlzCiAgICAgIHByaW1hcmlseSBpbnZvbHZlZCBpbiBkaWdlc3Rpb24gc3RyZXRjaGluZyBmcm9tIHRoZSBiYXNlIG9mIHRoZSBwaGFyeW54IHRvCiAgICAgIHRoZSB2dWx2YXIgcG9yZTsgMikgdGhlIG1pZGRsZSByZWdpb24gd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIG51dHJpZW50CiAgICAgIGFic29ycHRpb24gYW5kIGV4dGVuZHMgZnJvbSB0aGUgdnVsdmFyIHBvcmUgdG8gdGhlIG92YXJpYW4gdGlzc3VlOyBhbmQgMykKICAgICAgdGhlIHBvc3RlcmlvciByZWdpb24gZnJvbSB0aGUgb3ZhcmlhbiB0aXNzdWUgdG8gdGhlIGFuYWwgcG9yZSAoRmlnIDFBKQogICAgICAoSGFycHVyLCAxOTc3KS4gVGhlIGludGVzdGluYWwgcGllY2VzIHdlcmUgb3BlbmVkIGxvbmdpdHVkaW5hbGx5LCBleHBvc2luZwogICAgICB0aGUgbHVtZW4sIGFuZCB0aG9yb3VnaGx5IHdhc2hlZCB3aXRoICZsdDtlbSZndDtBc2NhcmlzJmx0Oy9lbSZndDsKICAgICAgUGVyaWVudGVyaWMgRmx1aWQgKEFQRjogMjMgbU0gTmFDbCwgMTEwIG1NIHNvZGl1bSBhY2V0YXRlLCAyNCBtTSBLQ2wsIDEgbU0KICAgICAgQ2FDbOKCgiwgNSBtTSBNZ0Ns4oKCLCA1IG1NIEhFUEVTLCBhbmQgMTEgbU0gRC1nbHVjb3NlOyBwSCA3LjYpIHRvIHJlbW92ZQogICAgICByZXNpZHVhbCBsdW1pbmFsIGNvbnRlbnRzIGFuZCBkZWJyaXMuJmx0Oy9wJmd0OyAmbHQ7cCZndDtJbnRlc3RpbmFsCiAgICAgIHNlY3Rpb25zIHdlcmUgd2VpZ2hlZCBhbmQgdHJhbnNmZXJyZWQgaW50byAxNSBtTCB0dWJlcyBjb250YWluaW5nIDEwIG1MCiAgICAgIEFQRiBzdXBwbGVtZW50ZWQgd2l0aCAwLjAxJSBkaW1ldGh5bCBzdWxmb3hpZGUgKERNU08pIGFuZCB3ZXJlIGluY3ViYXRlZAogICAgICBhdCAzNyDCsEMgZm9yIDQgaHJzLiB0byBwcm9tb3RlIEVWIHNlY3JldGlvbi4gRm9sbG93aW5nIGluY3ViYXRpb24sIHRoZQogICAgICBpbnRlc3RpbmFsIHNlY3Rpb25zIHdlcmUgcmVtb3ZlZCwgYW5kIHRoZSBjb25kaXRpb25lZCBBUEYgc29sdXRpb25zIHdlcmUKICAgICAgY29sbGVjdGVkIGZvciBFViBpc29sYXRpb24gYW5kIGNoYXJhY3Rlcml6YXRpb24uIEEgdG90YWwgb2YgZm91cnRlZW4KICAgICAgaW5kZXBlbmRlbnQgd29ybXMgYXMgYmlvbG9naWNhbCBleHBlcmltZW50cyB3ZXJlIHBlcmZvcm1lZCBmb3IgYWxsCiAgICAgIHNlY3Rpb25zIHRlc3RlZC4gRm9yIE5UQSBhbmFseXNpcywgY29uZGl0aW9uZWQgQVBGIHNvbHV0aW9uIGZyb20gd2hvbGUKICAgICAgaW50ZXN0aW5lLCBhbnRlcmlvciwgbWlkZGxlLCBhbmQgcG9zdGVyaW9yIGludGVzdGluYWwgc2VjdGlvbnMgd2VyZQogICAgICBkaWx1dGVkIDUwMC1mb2xkIGluIGZpbHRlcmVkIGRQQlMgcHJpb3IgdG8gcGFydGljbGUKICAgICAgcXVhbnRpZmljYXRpb24uJmx0Oy9wJmd0OyAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0OzIuMyBNZWFzdXJpbmcgdGhlIEVmZmVjdHMKICAgICAgb2YgSXZlcm1lY3RpbiBvbiBJbnRlc3RpbmFsIEVWIFNlY3JldGlvbiZsdDsvc3Ryb25nJmd0OyZsdDsvcCZndDsKICAgICAgJmx0O3AmZ3Q7VG8gYXNzZXNzIHRoZSBlZmZlY3Qgb2YgaXZlcm1lY3RpbiBvbiBFViBzZWNyZXRpb24gZnJvbSB0aGUKICAgICAgaW50ZXN0aW5lLCB0aGUgYW50ZXJpb3IsIG1pZGRsZSwgYW5kIHBvc3RlcmlvciBpbnRlc3RpbmFsIHNlY3Rpb25zIHdlcmUKICAgICAgZGl2aWRlZCBlcXVhbGx5IGludG8gdHdvIGhhbHZlcyAoYW50ZXJpb3IgYW5kIHBvc3RlcmlvciksIGFsbG93aW5nIGZvcgogICAgICBwYWlyZWQgY29tcGFyaXNvbnMgd2l0aGluIHRoZSBzYW1lIHdvcm0uIEZvciBoYWxmIG9mIHRoZSBleHBlcmltZW50cywgdGhlCiAgICAgIGFudGVyaW9yIGhhbGYgb2YgdGhlIGludGVzdGluYWwgc2VjdGlvbiB3YXMgaW5jdWJhdGVkIGluIDEwIG1MIEFQRgogICAgICBjb250YWluaW5nIDAuMDElIERNU08sIHdoaWxlIHRoZSBwb3N0ZXJpb3IgaGFsZiB3YXMgaW5jdWJhdGVkIGluIDEwIG1MIEFQRgogICAgICBjb250YWluaW5nIDEgwrVNIGl2ZXJtZWN0aW4uIEluIHRoZSByZW1haW5pbmcgZXhwZXJpbWVudHMsIHRoZSB0cmVhdG1lbnQKICAgICAgb3JkZXIgd2FzIHJldmVyc2VkLCB3aXRoIHRoZSBhbnRlcmlvciBoYWxmIG9mIHRoZSBpbnRlc3RpbmFsIHNlY3Rpb24gYmVpbmcKICAgICAgdHJlYXRlZCB3aXRoIDEgwrVNIGl2ZXJtZWN0aW4gYW5kIHRoZSBwb3N0ZXJpb3IgaGFsZiB0cmVhdGVkIGluIDAuMDElIERNU08uCiAgICAgIEFsbCBzYW1wbGVzIHdlcmUgaW5jdWJhdGVkIGF0IDM3IMKwQyBmb3IgNCBocnMuIEEgdG90YWwgb2YgZm91cnRlZW4KICAgICAgaW5kZXBlbmRlbnQgYmlvbG9naWNhbCBleHBlcmltZW50cyB3ZXJlIHBlcmZvcm1lZCBmb3IgYWxsIHNlY3Rpb25zIHRlc3RlZC4KICAgICAgRm9yIE5UQSBhbmFseXNpcywgY29uZGl0aW9uZWQgQVBGIHNvbHV0aW9ucyBmcm9tIGl2ZXJtZWN0aW4gYW5kIERNU08KICAgICAgdHJlYXRlZCBhbnRlcmlvciwgbWlkZGxlLCBhbmQgcG9zdGVyaW9yIGludGVzdGluYWwgc2VjdGlvbnMgd2VyZSBkaWx1dGVkCiAgICAgIDEwMC1mb2xkIGluIGZpbHRlcmVkIGRQQlMgcHJpb3IgdG8gcGFydGljbGUgcXVhbnRpZmljYXRpb24uJmx0O2JyJmd0OwogICAgICDCoCZsdDticiZndDsgRm9yIGRvc2UtcmVzcG9uc2UgZXhwZXJpbWVudHMgdGhlIGFudGVyaW9yIHNlY3Rpb25zIG9mCiAgICAgICZsdDtlbSZndDtBLiBzdXVtJmx0Oy9lbSZndDsgaW50ZXN0aW5lcyB3ZXJlIGRpdmlkZWQgaW50byBzaXggMSBjbSBwaWVjZXMuCiAgICAgIEZvciBhbGwgZXhwZXJpbWVudHMsIHNhbXBsZXMgd2VyZSBpbmN1YmF0ZWQgaW4gZWl0aGVyIDEwIM68TSwgMSDOvE0sIDEwMCBuTSwKICAgICAgMTAgbk0sIDEgbk0sIGFuZCAxMDAgcE0gaXZlcm1lY3RpbiwgYXQgMzfCsEMgZm9yIDQgaHJzLiBGb3IgdGhyZWUKICAgICAgZXhwZXJpbWVudHMsIHRoZSBzYW1wbGVzIHdlcmUgdHJlYXRlZCB3aXRoIHRoZSBwaWVjZSBuZWFyZXIgdGhlIG1vdXRoCiAgICAgIGJlaW5nIGV4cG9zZWQgdG8gdGhlIGhpZ2hlc3QgaXZlcm1lY3RpbiBjb25jZW50cmF0aW9uIGFuZCB0aGUgcGllY2UgbmVhcgogICAgICB0aGUgdnVsdmFyIHBvcmUgYmVpbmcgdHJlYXRlZCB3aXRoIHRoZSBsb3dlc3QgY29uY2VudHJhdGlvbi4gVG8gY29udHJvbAogICAgICBwb3NpdGlvbmFsIGJpYXMgaW4gdGhlIHJlbWFpbmluZyB0aHJlZSBleHBlcmltZW50cywgdGhlIGFzc2lnbm1lbnQgd2FzCiAgICAgIHJldmVyc2VkIHdpdGggdGhlIHBpZWNlIG5lYXIgdGhlIHZ1bHZhciBwb3JlIGJlaW5nIGV4cG9zZWQgdG8gdGhlIGhpZ2hlc3QKICAgICAgY29uY2VudHJhdGlvbiBvZiBpdmVybWVjdGluIGFuZCB0aGUgcGllY2UgbmVhciB0aGUgbW91dGggYmVpbmcgZXhwb3NlZCB0bwogICAgICB0aGUgbG93ZXN0LiBGb3IgY29udHJvbCBleHBlcmltZW50cyB0aGUgYW50ZXJpb3IgaW50ZXN0aW5lcyBvZiBzaXgKICAgICAgaW5kaXZpZHVhbCAmbHQ7ZW0mZ3Q7QS4gc3V1bSZsdDsvZW0mZ3Q7IHdlcmUgZGlzc2VjdGVkIGludG8gc2l4IDEgY20KICAgICAgcGllY2VzIGFuZCBpbmN1YmF0ZWQgaW4gQVBGIGNvbnRhaW5pbmcgMC4wMSUgRE1TTyBhdCAzNyDCsEMgZm9yIDQgaHJzLiBBdAogICAgICB0aGUgZW5kIG9mIGluY3ViYXRpb24sIGFsbCBzb2x1dGlvbnMgd2VyZSBjb2xsZWN0ZWQgZm9yIEVWIGlzb2xhdGlvbiBhbmQKICAgICAgcXVhbnRpZmljYXRpb24uIEZvciBOVEEgYW5hbHlzaXMgaW4gdGhlIGl2ZXJtZWN0aW4gZG9zZS1yZXNwb25zZQogICAgICBleHBlcmltZW50cywgY29uZGl0aW9uZWQgQVBGIHNvbHV0aW9ucyBmcm9tIGFudGVyaW9yIGludGVzdGluYWwgc2VjdGlvbnMKICAgICAgd2VyZSBkaWx1dGVkIDEwMC1mb2xkIGluIGZpbHRlcmVkIGRQQlMgcHJpb3IgdG8gcGFydGljbGUKICAgICAgcXVhbnRpZmljYXRpb24uJmx0Oy9wJmd0OyAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0OzIuNCBFViBpc29sYXRpb24sCiAgICAgIHF1YW50aWZpY2F0aW9uLCBhbmQgY2hhcmFjdGVyaXphdGlvbiZsdDsvc3Ryb25nJmd0OyZsdDsvcCZndDsKICAgICAgJmx0O3AmZ3Q7QWZ0ZXIgaW5jdWJhdGlvbiwgY29uZGl0aW9uZWQgc29sdXRpb25zIHdlcmUgcGFzc2VkIHRocm91Z2ggYSAwLjIKICAgICAgwrVtIFBWREYgc3lyaW5nZSBmaWx0ZXIgKEdFIEhlYWx0aGNhcmUsIENoaWNhZ28sIElMKSBhbmQgdWx0cmFjZW50cmlmdWdlZAogICAgICBhdCAxMjAsMDAwIMOXIGcgZm9yIDkwIG1pbnMgYXQgNMKwQy4gU3VwZXJuYXRhbnRzIHdlcmUgZGVjYW50ZWQsIGxlYXZpbmcKICAgICAgYXBwcm94aW1hdGVseSAxLjUgbUwgYWJvdmUgdGhlIHBlbGxldCB0byBhdm9pZCBkaXN0dXJiYW5jZS4gVGhlIEVWcwogICAgICBjb250YWluZWQgaW4gdGhlIHBlbGxldCB3ZXJlIHB1cmlmaWVkIGJ5IHNpemUtZXhjbHVzaW9uIGNocm9tYXRvZ3JhcGh5CiAgICAgIChTbWFydFNFQ+KEoiBzaW5nbGUgY29sdW1ucyksIGFuZCB0aGUgRVYtY29udGFpbmluZyBmcmFjdGlvbnMgd2VyZQogICAgICBjb25jZW50cmF0ZWQgYnkgdWx0cmFjZW50cmlmdWdhdGlvbiBhdCAxODYsMDAwIMOXIGcgZm9yIDIgaHJzLiBhdCA0wrBDLiBUaGUKICAgICAgcGVsbGV0cyB3ZXJlIHJlc3VzcGVuZGVkIGluIDUwMCDCtUwgb2Ygc3RlcmlsZS1maWx0ZXJlZCBkUEJTIChUaGVybW8gRmlzaGVyCiAgICAgIFNjaWVudGlmaWMpLiBTYW1wbGVzIHdlcmUgZGlsdXRlZCBpbiBmaWx0ZXJlZCBkUEJTIHRvIGFjaGlldmUgcGFydGljbGUKICAgICAgY291bnRzICgyMC0xMjAgcGFydGljbGVzIHBlciBmcmFtZSkuIERpbHV0aW9uIGZhY3RvcnMgd2VyZSBvcHRpbWl6ZWQgZm9yCiAgICAgIGVhY2ggZXhwZXJpbWVudCBhbmQgYXJlIGluZGljYXRlZCBpbiB0aGUgY29ycmVzcG9uZGluZyBzZWN0aW9ucywgMi4yIGFuZAogICAgICAyLjMuIEZvciBlYWNoIHNhbXBsZSwgdmlkZW9zIG9mIDUgeCA2MCBzZWMgd2VyZSByZWNvcmRlZCBhdCBhIGNhbWVyYSBsZXZlbAogICAgICBvZiAxMiwgYW5kIHBhcnRpY2xlcyB3ZXJlIGRldGVjdGVkIHVzaW5nIGEgZGV0ZWN0aW9uIHRocmVzaG9sZCBvZiBmaXZlLgogICAgICBUaGUgRVYgY29uY2VudHJhdGlvbiBhbmQgc2l6ZSBkaXN0cmlidXRpb25zIHdlcmUgZGV0ZXJtaW5lZCBieQogICAgICBuYW5vcGFydGljbGUgdHJhY2tpbmcgYW5hbHlzaXMgKE5UQTsgTmFuby1TaWdodCBMTTEwLCBNYWx2ZXJuIEluc3RydW1lbnRzLAogICAgICBNYWx2ZXJuLCBVSykmbHQ7L3AmZ3Q7ICZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Mi41IEVWIHZpc3VhbGl6YXRpb24gYnkKICAgICAgVHJhbnNtaXNzaW9uIEVsZWN0cm9uIE1pY3Jvc2NvcHkgKFRFTSkmbHQ7L3N0cm9uZyZndDsmbHQ7L3AmZ3Q7CiAgICAgICZsdDtwJmd0O0FsaXF1b3RzIG9mIHB1cmlmaWVkIEVWcyB3ZXJlIGZpeGVkIGluIDMlIGdsdXRhcmFsZGVoeWRlICsgMSUKICAgICAgcGFyYWZvcm1hbGRlaHlkZSBpbiAwLjEgTSBjYWNvZHlsYXRlIGJ1ZmZlci4gMjAwLW1lc2ggY29wcGVyIGdyaWRzIHdpdGgKICAgICAgY2FyYm9uIGZpbG0gKEVNUykgd2VyZSBnbG93LWRpc2NoYXJnZWQgKFBlbGNvIGVhc2lHbG93LCBUZWQgUGVsbGEpIHRvCiAgICAgIHJlbmRlciBhIGh5ZHJvcGhpbGljIHN1cmZhY2UuIDIgwrVMIG9mIGZpeGVkIEVWIHN1c3BlbnNpb24gd2VyZSBhcHBsaWVkIHRvCiAgICAgIGVhY2ggZ3JpZCBmb3IgMzBzLCBleGNlc3Mgd2lja2VkIHdpdGggZmlsdGVyIHBhcGVyLCBhbmQgaW1tZWRpYXRlbHkKICAgICAgbmVnYXRpdmUtc3RhaW5lZCB3aXRoIDIlICh3L3YpIHVyYW55bCBhY2V0YXRlICgyIMK1TCwgMzBzKSwgdGhlbiB3aWNrZWQgYW5kCiAgICAgIGFpci1kcmllZC4gR3JpZHMgd2VyZSBleGFtaW5lZCBvbiBhIEpFT0wgMjEwMCB0cmFuc21pc3Npb24gZWxlY3Ryb24KICAgICAgbWljcm9zY29wZSBvcGVyYXRlZCBhdCAyMDAga1YgYW5kIGltYWdlZCB3aXRoIGEgR2F0YW4gT25lVmlldyBjYW1lcmEgYXQKICAgICAgdGhlIElvd2EgU3RhdGUgVW5pdmVyc2l0eSBMaWdodCBhbmQgRWxlY3Ryb24gTWljcm9zY29weQogICAgICBGYWNpbGl0eS4mbHQ7L3AmZ3Q7ICZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Mi42IFByb3Rlb21pYyBBbmFseXNpcyBvZiBFVgogICAgICBDb250ZW50cyZsdDsvc3Ryb25nJmd0OyZsdDsvcCZndDsgJmx0O3AmZ3Q7RVYgcHJvdGVpbiBseXNhdGVzIHdlcmUKICAgICAgcHJlcGFyZWQgZnJvbSBFViBwZWxsZXRzIHByaW9yIHRvIExD4oCTTVMvTVMgcHJvdGVvbWljIGFuYWx5c2lzLiBFViBwZWxsZXRzCiAgICAgIHdlcmUga2VwdCBvbiBpY2UgYW5kIHJlc3VzcGVuZGVkIGluIDMwIMK1TCBvZiA4IE0gdXJlYSBwcmVwYXJlZCBpbiA1MCBtTQogICAgICBhbW1vbml1bSBiaWNhcmJvbmF0ZSBidWZmZXIgKEFCQywgcEggOC41KS4gVGhlIHVyZWHigJNBQkMgbHlzaXMgYnVmZmVyIHdhcwogICAgICBwcmVwYXJlZCBhdCByb29tIHRlbXBlcmF0dXJlIHdpdGhvdXQgaGVhdGluZyBhbmQgZGVpb25pemVkIHVzaW5nIEFHIDUwMS1YOAogICAgICByZXNpbiBiZWZvcmUgdXNlIHRvIHJlZHVjZSBpb25pYyBjb250YW1pbmFudHMgYW5kIG1pbmltaXplIHVyZWEtZGVyaXZlZAogICAgICBjYXJiYW15bGF0aW9uLiBFViBwZWxsZXRzIHdlcmUgbHlzZWQgYnkgcmVwZWF0ZWQgcGlwZXR0aW5nLCB2b3J0ZXhpbmcsIGFuZAogICAgICBpbmN1YmF0aW9uIGF0IHJvb20gdGVtcGVyYXR1cmUuIFNwZWNpZmljYWxseSwgZWFjaCBzYW1wbGUgd2FzIHBpcGV0dGVkIHVwCiAgICAgIGFuZCBkb3duIGFwcHJveGltYXRlbHkgMTAwIHRpbWVzLCB2b3J0ZXhlZCBmb3IgMSBtaW4sIGluY3ViYXRlZCBhdCByb29tCiAgICAgIHRlbXBlcmF0dXJlIGZvciAxMCBtaW4sIGFuZCB2b3J0ZXhlZCBhZ2FpbiBmb3IgMzAgcy4gVGhpcyBjeWNsZSB3YXMKICAgICAgcmVwZWF0ZWQgdHdpY2UgdG8gcHJvbW90ZSBjb21wbGV0ZSBzb2x1YmlsaXphdGlvbiBvZiBFVi1hc3NvY2lhdGVkCiAgICAgIHByb3RlaW5zLiBUaGUgbHlzYXRlcyB3ZXJlIHRoZW4gY2VudHJpZnVnZWQgYXQgMTIsMDAw4oCTMTYsMDAwIMOXIGcgZm9yIDEwCiAgICAgIG1pbiBhdCA0IMKwQyB0byByZW1vdmUgaW5zb2x1YmxlIGRlYnJpcy4gVGhlIHJlc3VsdGluZyBzdXBlcm5hdGFudCB3YXMKICAgICAgY29sbGVjdGVkIGFzIHRoZSBzb2x1YmxlIEVWIHByb3RlaW4gbHlzYXRlIGZvciBkb3duc3RyZWFtIHByb3Rlb21pYwogICAgICBhbmFseXNpcy4gV2hlbiBwcm90ZWluIHF1YW50aWZpY2F0aW9uIHdhcyByZXF1aXJlZCwgYWxpcXVvdHMgd2VyZSBkaWx1dGVkCiAgICAgIHRvIHJlZHVjZSB0aGUgdXJlYSBjb25jZW50cmF0aW9uIGJlZm9yZSBtZWFzdXJlbWVudCBvciBhbmFseXplZCB1c2luZyBhCiAgICAgIHVyZWEtY29tcGF0aWJsZSBwcm90ZWluIGFzc2F5IChXacWbbmlld3NraSBldCBhbC4sIDIwMDksIFJvbnRvZ2lhbm5pIGV0CiAgICAgIGFsLiwgMjAxOSkuIFNhbXBsZXMgd2VyZSBtYWludGFpbmVkIG9uIGljZSBvciBhdCA0IMKwQyBmb3Igc2hvcnQtdGVybQogICAgICBoYW5kbGluZyBhbmQgd2VyZSBzdG9yZWQgYXQg4oiSODAgwrBDIGlmIHNhbWUtZGF5IHByb2Nlc3Npbmcgd2FzIG5vdAogICAgICBwb3NzaWJsZSwgd2l0aCByZXBlYXRlZCBmcmVlemXigJN0aGF3IGN5Y2xlcyBhdm9pZGVkLiZsdDsvcCZndDsKICAgICAgJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDsyLjcgUHJvdGVpbiBkaWdlc3Rpb24gYW5kIExD4oCTTVMvTVMKICAgICAgYW5hbHlzaXMmbHQ7L3N0cm9uZyZndDsmbHQ7L3AmZ3Q7ICZsdDtwJmd0O0NydWRlIEVWIHByb3RlaW4gZXh0cmFjdHMgd2VyZQogICAgICBwcm9jZXNzZWQgZm9yIGJvdHRvbS11cCBwcm90ZW9taWMgYW5hbHlzaXMgYnkgaW4tc29sdXRpb24gZW56eW1hdGljCiAgICAgIGRpZ2VzdGlvbi4gQnJpZWZseSwgcHJvdGVpbiBleHRyYWN0cyB3ZXJlIHJlZHVjZWQgd2l0aCBkaXRoaW90aHJlaXRvbAogICAgICAoRFRUKSwgYW5kIGN5c3RlaW5lIHJlc2lkdWVzIHdlcmUgYWxreWxhdGVkIHdpdGggaW9kb2FjZXRhbWlkZSBwcmlvciB0bwogICAgICBlbnp5bWF0aWMgZGlnZXN0aW9uLiBTYW1wbGVzIHdlcmUgdGhlbiBkaWdlc3RlZCBvdmVybmlnaHQgd2l0aAogICAgICB0cnlwc2luL0x5cy1DLiBEaWdlc3Rpb24gd2FzIHN0b3BwZWQgYnkgdGhlIGFkZGl0aW9uIG9mIGZvcm1pYyBhY2lkLCBhbmQKICAgICAgdGhlIHNhbXBsZXMgd2VyZSBkcmllZCB1c2luZyBhIFNwZWVkVmFjIGNvbmNlbnRyYXRvci4gUGVwdGlkZXMgd2VyZQogICAgICBkZXNhbHRlZCB1c2luZyBDMTggY29sdW1ucyAoQmlvUHVyZVNQTiBQbGF0ZSwgSEhORlIgUzE4VjsgTmVzdCBHcm91cCkgYW5kCiAgICAgIGRyaWVkIGFnYWluIGluIGEgU3BlZWRWYWMuIFBlcHRpZGUgY29uY2VudHJhdGlvbiB3YXMgZGV0ZXJtaW5lZCB1c2luZyBhCiAgICAgIGJpY2luY2hvbmluaWMgYWNpZCBhc3NheSBraXQgKEJDQS0xOyBTaWdtYS1BbGRyaWNoKS4gUGVwdGlkZSBSZXRlbnRpb24KICAgICAgVGltZSBDYWxpYnJhdGlvbiBzdGFuZGFyZCBtaXh0dXJlIChQUlRDOyBQaWVyY2UsIHBhcnQgTm8uIDg4MzIwKSB3YXMKICAgICAgc3Bpa2VkIGludG8gZWFjaCBzYW1wbGUgYXMgYW4gaW50ZXJuYWwgY29udHJvbCBmb3IgTEPigJNNUy9NUyBwZXJmb3JtYW5jZQogICAgICBtb25pdG9yaW5nLiBTYW1wbGVzIHdlcmUgbm9ybWFsaXplZCB0byAyMDAgbmcvwrVMIHBlcHRpZGUgYW5kIDUwIGZtb2wvwrVMCiAgICAgIFBSVEMsIGFuZCAyIMK1TCBvZiBlYWNoIHNhbXBsZSB3YXMgaW5qZWN0ZWQgZm9yIExD4oCTTVMvTVMKICAgICAgYW5hbHlzaXMuJmx0Oy9wJmd0OyAmbHQ7cCZndDtQZXB0aWRlcyB3ZXJlIHNlcGFyYXRlZCBieSBsaXF1aWQKICAgICAgY2hyb21hdG9ncmFwaHkgdXNpbmcgYSBUaGVybW8gU2NpZW50aWZpYyBWYW5xdWlzaCBOZW8gVUhQTEMgc3lzdGVtIGFuZAogICAgICBhbmFseXplZCBieSB0YW5kZW0gbWFzcyBzcGVjdHJvbWV0cnkgb24gYSBUaGVybW8gU2NpZW50aWZpYyBPcmJpdHJhcAogICAgICBBc3RyYWwgbWFzcyBzcGVjdHJvbWV0ZXIgZXF1aXBwZWQgd2l0aCBhIFRoZXJtbyBTY2llbnRpZmljIEVBU1ktU3ByYXkgaW9uCiAgICAgIHNvdXJjZSBhbmQgY29sdW1uLiBUaGUgcmVzdWx0aW5nIGludGFjdCBhbmQgZnJhZ21lbnRhdGlvbiBwYXR0ZXJuIGlzCiAgICAgIGNvbXBhcmVkIHRvIGEgdGhlb3JldGljYWwgZnJhZ21lbnRhdGlvbiBwYXR0ZXJuIHVzaW5nIENISU1FUllTLiBDSElNRVJZUwogICAgICB3YXMgdXNlZCB0byBpZGVudGlmeSBhbmQgcXVhbnRpZnkgcGVwdGlkZXMgZnJvbSBjb21wbGV4IHRhbmRlbSBtYXNzCiAgICAgIHNwZWN0cmEsIGluY2x1ZGluZyBzcGVjdHJhIGNvbnRhaW5pbmcgY28tZnJhZ21lbnRlZCBwZXB0aWRlIGlvbnMuIFByb3RlaW4KICAgICAgaWRlbnRpZmljYXRpb24gYW5kIHF1YW50aWZpY2F0aW9uIHdlcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHBlcHRpZGUtc3BlY3RydW0KICAgICAgbWF0Y2hpbmcgYW5kIGNvbXBhcmlzb24gb2YgdGhlIG9ic2VydmVkIE1TL01TIGZyYWdtZW50YXRpb24gcGF0dGVybnMgd2l0aAogICAgICB0aGVvcmV0aWNhbCBmcmFnbWVudGF0aW9uIHBhdHRlcm5zIGdlbmVyYXRlZCBmcm9tIHRoZSBwcm90ZWluIGRhdGFiYXNlLgogICAgICBUaGUgY29tcGxldGUgcHJvdGVvbWljIGRhdGFzZXQsIGluY2x1ZGluZyBwcm90ZWluIGlkZW50aWZpY2F0aW9ucywgcGVwdGlkZQogICAgICBjb3VudHMsIGFuZCBncm91cGVkIGFidW5kYW5jZSB2YWx1ZXMgZm9yIGFsbCBETVNPIGFuZCBpdmVybWVjdGluIHRyZWF0ZWQKICAgICAgcmVwbGljYXRlcywgaXMgcHJvdmlkZWQgaW4gU3VwcGxlbWVudGFyeSBEYXRhIEZpbGUgUzEuJmx0Oy9wJmd0OwogICAgICAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0OzIuOCBGdW5jdGlvbmFsIGNsYXNzaWZpY2F0aW9uIG9mIGV4dHJhY2VsbHVsYXIKICAgICAgdmVzaWNsZSBwcm90ZWlucyZsdDsvc3Ryb25nJmd0OyZsdDsvcCZndDsgJmx0O3AmZ3Q7VG8gY2hhcmFjdGVyaXplIHRoZQogICAgICBmdW5jdGlvbmFsIGNvbXBvc2l0aW9uIG9mIHRoZSBpbnRlc3RpbmFsIGV4dHJhY2VsbHVsYXIgdmVzaWNsZSBwcm90ZW9tZSwKICAgICAgaWRlbnRpZmllZCAmbHQ7ZW0mZ3Q7QXNjYXJpcyBzdXVtJmx0Oy9lbSZndDsgcHJvdGVpbnMgd2VyZSBhc3NpZ25lZCB0bwogICAgICBmdW5jdGlvbmFsIGNhdGVnb3JpZXMgdXNpbmcgYSBwcmlvcml0eS1iYXNlZCBzY2hlbWUgdGhhdCBjb21iaW5lZAogICAgICBVbmlQcm90S0IgKHJlbGVhc2UgMjAyNl8wMjsgYWNjZXNzZWQgSnVuZSAyMDI2KWFubm90YXRpb24gd2l0aCBtYW51YWwKICAgICAgY3VyYXRpb24uIEZvciBlYWNoIHByb3RlaW4sIHRoZSBVbmlQcm90S0IgcHJvdGVpbiBuYW1lIGFuZCBHZW5lIE9udG9sb2d5CiAgICAgIChHTykgYmlvbG9naWNhbCBwcm9jZXNzIHRlcm1zIHdlcmUgcmV0cmlldmVkIGFuZCBncm91cGVkIGFjY29yZGluZyB0bwogICAgICB0aGVpciBHTyBiaW9sb2dpY2FsIHByb2Nlc3MgdGVybXMuIEFsbCByZW1haW5pbmcgcHJvdGVpbnMgbGFja2luZyBHTwogICAgICBhbm5vdGF0aW9uIHdlcmUgY2xhc3NpZmllZCBzZXBhcmF0ZWx5LiBUaGUgY3VyYXRlZCBrZXl3b3JkIGxpc3RzIHdlcmUKICAgICAgY29tcGlsZWQgZnJvbSBwcm90ZWluIGZhbWlsaWVzIHByZXZpb3VzbHkgcmVwb3J0ZWQgaW4gbmVtYXRvZGUgYW5kCiAgICAgIGhlbG1pbnRoIHNlY3JldG9tZSBhbmQgZXh0cmFjZWxsdWxhciB2ZXNpY2xlIHN0dWRpZXMsIGFuZCBhbGwgZmFtaWx5CiAgICAgIGFzc2lnbm1lbnRzIHdlcmUgbWFudWFsbHkgcmV2aWV3ZWQuICZsdDtlbSZndDtBLiBzdXVtJmx0Oy9lbSZndDsgaXMgbm90CiAgICAgIHJlcHJlc2VudGVkIGluIHN0YW5kYXJkIEdPLXNsaW0gZW5yaWNobWVudCBkYXRhYmFzZXMgKGUuZy4sIFBBTlRIRVIpLCBzbyBhCiAgICAgIGN1cmF0ZWQgYXBwcm9hY2ggd2FzIGFwcGxpZWQgaW4gcGxhY2Ugb2YgYXV0b21hdGVkIGFuYWx5c2lzLiBDYXRlZ29yeSBhbmQKICAgICAgc3ViLWZhbWlseSBjb3VudHMgd2VyZSB2aXN1YWxpemVkIGFzIHBpZSBhbmQgZG9udXQgY2hhcnRzLiZsdDsvcCZndDsKICAgICAgJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDsyLjkmbHQ7L3N0cm9uZyZndDsgJmx0O3N0cm9uZyZndDtNZWFzdXJlbWVudCBvZgogICAgICBkaWZmZXJlbnRpYWwgYWJ1bmRhbmNlIGFuYWx5c2lzIGFuZCB2aXN1YWxpemF0aW9uJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OwogICAgICAmbHQ7cCZndDtFeHRyYWNlbGx1bGFyIHZlc2ljbGUgcHJvdGVpbnMgd2VyZSBwZXJmb3JtZWQgdXNpbmcgdGhlIGdyb3VwZWQKICAgICAgcHJvdGVpbiBhYnVuZGFuY2VzIGdlbmVyYXRlZCBieSBQcm90ZW9tZSBEaXNjb3ZlcmVyLCBjb21wcmlzaW5nIGZpdmUKICAgICAgaXZlcm1lY3Rpbi10cmVhdGVkIGFuZCBmaXZlIERNU08tdHJlYXRlZCAodmVoaWNsZSBjb250cm9sKSByZXBsaWNhdGVzLAogICAgICB3aXRoIGFsbCBhYnVuZGFuY2VzIG5vcm1hbGl6ZWQgdG8gdGhlIFBSVEMgc3Bpa2UtaW4gc3RhbmRhcmQuICdNYXN0ZXIKICAgICAgUHJvdGVpbicgKEFueSBVbmlQcm90LW1hcHBlZCAmbHQ7ZW0mZ3Q7QS4gc3V1bSZsdDsvZW0mZ3Q7KSB3ZXJlCiAgICAgIHJldGFpbmVkLCBhbmQgY29udGFtaW5hbnQgZW50cmllcyAoQ29udF8pIGFuZCBQUlRDIHBlcHRpZGVzIHdlcmUgcmVtb3ZlZC4KICAgICAgQWxsICZsdDtlbSZndDtBc2NhcmlzIHN1dW0mbHQ7L2VtJmd0OyBwcm90ZWlucyB3ZXJlIG1hcHBlZCB0byBVbmlQcm90CiAgICAgIGlkZW50aWZpZXJzLiBGb3IgZWFjaCBwcm90ZWluLCB3ZSBtZWFzdXJlZCB0aGUgYWJ1bmRhbmNlIHZhbHVlcyBpbiBlYWNoCiAgICAgIHRyZWF0bWVudCBncm91cCwgYW5kIHRoZSB2YWxpZCB2YWx1ZXMgd2VyZSBjaGVja2VkLiBQcm90ZWlucyBiZWxvdyB0d28KICAgICAgdmFsaWQgYWJ1bmRhbmNlIHZhbHVlcyBpbiBlaXRoZXIgdHJlYXRtZW50IGdyb3VwIChvbmx5IHByZXNlbnQgaW4gMSB3b3JtKQogICAgICB3ZXJlIGV4Y2x1ZGVkIGZyb20gdGhlIGRpZmZlcmVudGlhbC1hYnVuZGFuY2UgdGVzdCBhcyBhIHJlbGlhYmxlCiAgICAgIGVzdGltYXRpb24gd2FzIG5vdCBwb3NzaWJsZS4gVGhlIGdyb3VwZWQgcHJvdGVpbiBhYnVuZGFuY2VzIGZyb20gZml2ZQogICAgICBpdmVybWVjdGluLXRyZWF0ZWQgYW5kIGZpdmUgRE1TTy10cmVhdGVkIHJlcGxpY2F0ZXMgd2VyZSBsb2figoItdHJhbnNmb3JtZWQuCiAgICAgIEZvciBlYWNoIHByb3RlaW4sIHRoZSBsb2figoIgZm9sZCBjaGFuZ2Ugd2FzIGNhbGN1bGF0ZWQgYXMgdGhlIGRpZmZlcmVuY2UKICAgICAgYmV0d2VlbiB0aGUgbWVhbiBsb2figoIgYWJ1bmRhbmNlIG9mIHRoZSBpdmVybWVjdGluIGdyb3VwcyBhbmQgdGhhdCBvZiB0aGUKICAgICAgRE1TTyBncm91cHMgKG1lYW4gbG9nJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7IERNU08sIG1lYW4KICAgICAgbG9nJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7IElWTTsgbG9nJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7IEZDID0gbWVhbgogICAgICBsb2cmbHQ7c3ViJmd0OzImbHQ7L3N1YiZndDsgSVZNIC0gbWVhbiBsb2cmbHQ7c3ViJmd0OzImbHQ7L3N1YiZndDsgRE1TTykuCiAgICAgIFRvIGRldGVybWluZSBzaWduaWZpY2FuY2UgdGhlIGZpdmUgSVZNIGxvZyZsdDtzdWImZ3Q7MiZsdDsvc3ViJmd0OyB2cyBmaXZlCiAgICAgIERNU08gbG9nJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7IHdlcmUgYXNzZXNzZWQgdXNpbmcgV2VsY2gncwogICAgICAmbHQ7ZW0mZ3Q7dCZsdDsvZW0mZ3Q7LXRlc3QgKHVuZXF1YWwgdmFyaWFuY2UpLCBhbmQKICAgICAgJmx0O2VtJmd0O3AmbHQ7L2VtJmd0Oy12YWx1ZXMgd2VyZSBhZGp1c3RlZCBmb3IgbXVsdGlwbGUgY29tcGFyaXNvbnMgdXNpbmcKICAgICAgdGhlIEJlbmphbWluaeKAk0hvY2hiZXJnIGZhbHNlIGRpc2NvdmVyeSByYXRlIChGRFIpLiBQcm90ZWlucyB3aXRoCiAgICAgICZsdDtlbSZndDtwJmx0Oy9lbSZndDsgJmFtcDtsdDsgMC4wNSBhbmQgbG9n4oKCIEZDICZhbXA7Z3Q7IDEgd2VyZQogICAgICBjb25zaWRlcmVkIGNhbmRpZGF0ZSBkaWZmZXJlbnRpYWxseSBhYnVuZGFudCBwcm90ZWlucy4gRm9yIGhlYXRtYXAKICAgICAgdmlzdWFsaXphdGlvbiwgYWJ1bmRhbmNlIHZhbHVlcyB3ZXJlIGNvbnZlcnRlZCB0bwogICAgICAmbHQ7ZW0mZ3Q7eiZsdDsvZW0mZ3Q7LXNjb3JlcyBhY3Jvc3MgdGhlIHRlbiBzYW1wbGVzIGZvciBlYWNoIHByb3RlaW4gW3ogPQogICAgICAobG9nJmx0O3N1YiZndDsyJmx0Oy9zdWImZ3Q7IHZhbHVlIC0gbWVhbikvU0QsIGFjcm9zcyB0aGUgMTAgc2FtcGxlcyAoRE1TTwogICAgICAmYW1wO2FtcDsgSVZNKV0uIFZvbGNhbm8gcGxvdHMgd2VyZSBnZW5lcmF0ZWQgYnkgcGxvdHRpbmcgZWFjaCBwcm90ZWluCiAgICAgIGxvZyZsdDtzdWImZ3Q7MiZsdDsvc3ViJmd0OyBGQyAoeCkgdnMgLWxvZyZsdDtzdWImZ3Q7MTAmbHQ7L3N1YiZndDsocCkKICAgICAgKHkpLiZsdDsvcCZndDsgJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDsyLjEwJmx0Oy9zdHJvbmcmZ3Q7CiAgICAgICZsdDtlbSZndDsmbHQ7c3Ryb25nJmd0O0EuIHN1dW0mbHQ7L3N0cm9uZyZndDsmbHQ7L2VtJmd0OwogICAgICAmbHQ7c3Ryb25nJmd0O2NETkEgc3ludGhlc2lzIGFuZCBSVC1QQ1IgZGV0ZWN0aW9uIG9mIEdsdXRhbWF0ZS1nYXRlZAogICAgICBDaGxvcmlkZSAoR2x1Q2wpIGNoYW5uZWxzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9wJmd0OyAmbHQ7cCZndDtBIDMgY20gc2VnbWVudAogICAgICBvZiB0aGUgYW50ZXJpb3IgYm9keSBvZiBhZHVsdCBmZW1hbGUgJmx0O2VtJmd0O0EuIHN1dW0mbHQ7L2VtJmd0OyB3YXMKICAgICAgZXhjaXNlZCBhbmQgb3BlbmVkIGxvbmdpdHVkaW5hbGx5LiBUaGUgaW50ZXN0aW5lIHdhcyBzZXBhcmF0ZWQgZnJvbSB0aGUKICAgICAgYm9keSB3YWxsIHVzaW5nIHR3byBmaW5lIGZvcmNlcHMgYW5kIGVhY2ggdGlzc3VlIHdhcyB0cmFuc2ZlcnJlZCB0byAxLjUgbUwKICAgICAgUk5hc2UtZnJlZSB0dWJlcy4gVGlzc3VlcyB3ZXJlIHNuYXAtZnJvemVuIGluIGxpcXVpZCBuaXRyb2dlbiBhbmQgc3RvcmVkCiAgICAgIGF0IOKIkjgwwrBDIHVudGlsIHByb2Nlc3NpbmcuIFJOQSB3YXMgaXNvbGF0ZWQgZnJvbSBmcm96ZW4gdGlzc3VlcyB0aGF0IHdlcmUKICAgICAgaG9tb2dlbml6ZWQgc2VwYXJhdGVseSBpbiAxIG1MIFRSSXpvbOKEoiBSZWFnZW50IChMaWZlIFRlY2hub2xvZ2llcywgVVNBKQogICAgICB1c2luZyBhIG1vcnRhciBhbmQgcGVzdGxlIGFjY29yZGluZyB0byB0aGUgbWFudWZhY3R1cmVy4oCZcyBwcm90b2NvbC4gY0ROQQogICAgICB3YXMgc3ludGhlc2l6ZWQgZnJvbSBvbmUgbWljcm9ncmFtICgxIM68ZykgUk5BIHBlciBzYW1wbGUgdXNpbmcgU3VwZXJTY3JpcHQKICAgICAgSVYgVklMT+KEoiBNYXN0ZXIgTWl4IChMaWZlIFRlY2hub2xvZ2llcywgVVNBKS4gUGFpcmVkIGludGVzdGluZSBhbmQgYm9keQogICAgICB3YWxsIHRpc3N1ZXMgd2VyZSBjb2xsZWN0ZWQgZnJvbSBmaXZlIGluZGl2aWR1YWwgYWR1bHQgZmVtYWxlIHdvcm1zIGZvcgogICAgICBSVC1QQ1IgYW5hbHlzaXMuJmx0Oy9wJmd0OyAmbHQ7cCZndDtSVC1QQ1Igd2FzIHBlcmZvcm1lZCB0byBkZXRlY3QKICAgICAgJmx0O2VtJmd0O0FzdS1nbGMtMiZsdDsvZW0mZ3Q7LCAmbHQ7ZW0mZ3Q7QXN1LWdsYy0zJmx0Oy9lbSZndDssCiAgICAgICZsdDtlbSZndDtBc3UtZ2xjLTQmbHQ7L2VtJmd0OywgYW5kICZsdDtlbSZndDtBc3UtYXZyLTE0Jmx0Oy9lbSZndDsKICAgICAgKFN1cHBsZW1lbnRhcnkgVGFibGUgMikgaW4gdGhlIGNETkEgcG9vbCBvZiB0aGUgaW50ZXN0aW5lIGFuZCBib2R5IHdhbGwKICAgICAgdXNpbmcgcHJpbWVycyB0YXJnZXRpbmcgdGhlIGNvZGluZyByZWdpb24gb2YgZWFjaCBnZW5lIChTdXBwbGVtZW50YXJ5CiAgICAgIFRhYmxlIDEpLiBUaGUgcmVmZXJlbmNlIGdlbmUgJmx0O2VtJmd0O0FzdS1nYXBkaCZsdDsvZW0mZ3Q7IHNlcnZlZCBhcyB0aGUKICAgICAgcG9zaXRpdmUgY29udHJvbC4gTmVnYXRpdmUgY29udHJvbHMgaW5jbHVkZWQgZW56eW1lLCB3YXRlciwgYW5kIGJvdGgKICAgICAgZm9yd2FyZCBhbmQgcmV2ZXJzZSBwcmltZXJzIGZvciB0aGUgdGFyZ2V0IGdlbmUgd2l0aCBubyBjRE5BIHRlbXBsYXRlLgogICAgICBSVC1QQ1IgZGV0ZWN0aW9uIHdhcyBwZXJmb3JtZWQgb24gY0ROQSBkZXJpdmVkIGZyb20gYWxsIGZpdmUgaW5kaXZpZHVhbAogICAgICB3b3JtcyBkZXNjcmliZWQgYWJvdmUuIFRoZSBjeWNsaW5nIGNvbmRpdGlvbnMgZm9yIFBDUiB3ZXJlIGFuIGluaXRpYWwKICAgICAgZGVuYXR1cmF0aW9uIGZvciAyIG1pbiBhdCA5NcKwQywgZm9sbG93ZWQgYnkgMzUgY3ljbGVzIGF0IDk1wrBDIGZvciAzMHMsCiAgICAgIDYwwrBDIGZvciAzNXMsIDcywrBDIGZvciA0NXMsIGZvbGxvd2VkIGJ5IGEgZmluYWwgZXh0ZW5zaW9uIHBlcmlvZCBhdCA3MsKwQwogICAgICBmb3IgMTAgbWlucyB1c2luZyBHb1RhccKuIEcyIEhvdCBTdGFydCBHcmVlbiBNYXN0ZXIgTWl4IChQcm9tZWdhLCBVU0EpLiBUaGUKICAgICAgUENSIHByb2R1Y3RzIG9mIGVhY2ggZ2VuZSB3ZXJlIHRoZW4gc2VwYXJhdGVkIG9uIGFuIGluZGl2aWR1YWwgMiUgQWdhcm9zZQogICAgICBnZWxzIGNvbnRhaW5pbmcgU1lCUsKuIFNhZmUgRE5BIEdlbCBTdGFpbiAoVGhlcm1vRmlzaGVyIFNjaWVudGlmaWMpLCBmb3IgNjAKICAgICAgbWlucyBhdCAxMDAgViwgZm9sbG93ZWQgYnkgdmlzdWFsaXphdGlvbiB1bmRlciBVViBsaWdodCB0byBjb25maXJtIHRoZQogICAgICBwcmVzZW5jZSBvZiB0aGUgZ2VuZXMuIEFsbCBwaG90b2dyYXBocyB3ZXJlIGFjcXVpcmVkIHVzaW5nIFZpc2lvbndvcmtz4oSiCiAgICAgIHNvZnR3YXJlIChBbmFseXRpayBKZW5hKSB3aXRoIGFuIGV4cG9zdXJlIHNldHRpbmcgb2YgM3MgcGVyIDEKICAgICAgZnJhbWUuJmx0Oy9wJmd0OyAmbHQ7cCZndDtSVC1QQ1Igd2FzIHBlcmZvcm1lZCB0byBnZW5lcmF0ZSBmdWxsIGxlbmd0aAogICAgICB0cmFuc2NyaXB0cyBvZiAmbHQ7ZW0mZ3Q7QXN1LWF2ci0xNCZsdDsvZW0mZ3Q7IGZyb20gdGhlIGNETkEgb2YgdGhlCiAgICAgIHBhcmFzaXRlIGludGVzdGluZSB1c2luZyBwcmltZXJzIHRoYXQgdGFyZ2V0ZWQgdGhlIHN0YXJ0IGFuZCBlbmQgY29kb24KICAgICAgKFN1cHBsZW1lbnRhcnkgVGFibGUgMSkuIFRoZSByZWZlcmVuY2UgZ2VuZSAmbHQ7ZW0mZ3Q7QXN1LWdhcGRoJmx0Oy9lbSZndDsKICAgICAgc2VydmVkIGFzIHRoZSBwb3NpdGl2ZSBjb250cm9sLiBOZWdhdGl2ZSBjb250cm9scyBpbmNsdWRlZCBlbnp5bWUsIHdhdGVyLAogICAgICBhbmQgYm90aCBmb3J3YXJkIGFuZCByZXZlcnNlIHByaW1lcnMgZm9yICZsdDtlbSZndDtBc3UtYXZyLTE0Jmx0Oy9lbSZndDsKICAgICAgd2l0aCBubyBjRE5BIHRlbXBsYXRlLiBBbXBsaWZpY2F0aW9uIHdhcyBwZXJmb3JtZWQgd2l0aCBQbGF0aW51bSBTdXBlckZp4oSiCiAgICAgIElJIEdyZWVuIFBDUiBNYXN0ZXIgTWl4IChUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMpIHVuZGVyIHRoZSBmb2xsb3dpbmcKICAgICAgY29uZGl0aW9uczogOTggwrBDIDMwczsgMzUgY3ljbGVzIGF0IDk4IMKwQyAzMCBzLCA1OSDCsEMgZm9yIDIwIHMsIDcyIMKwQyBmb3IKICAgICAgNDAgcyBhbmQgYSBmaW5hbCBleHRlbnNpb24gYXQgNzIgwrBDIGZvciAxMCBtaW5zLiBQcm9kdWN0cyB3ZXJlIGlkZW50aWZpZWQKICAgICAgb24gYSAxJSBhZ2Fyb3NlIGdlbCBjb250YWluaW5nIFNZQlLCriBTYWZlIChUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMpIGF0CiAgICAgIDEwMCBWIGZvciA2MCBtaW5zLCB2aXN1YWxpemVkIHVuZGVyIFVWIGlsbHVtaW5hdGlvbiwgYW5kIGltYWdlZCB3aXRoCiAgICAgIFZpc2lvbldvcmtz4oSiIChBbmFseXRpayBKZW5hOyAzIHMgZXhwb3N1cmUpLiBUYXJnZXQgYmFuZHMgd2VyZSBleGNpc2VkIGFuZAogICAgICBwdXJpZmllZCB3aXRoIHRoZSBOdWNsZW9TcGluIEdlbCBhbmQgUENSIENsZWFuLXVwIGtpdCAoTWFjaGVyZXktTmFnZWwpIHBlcgogICAgICB0aGUgbWFudWZhY3R1cmVy4oCZcyBpbnN0cnVjdGlvbnMuIFB1cmlmaWVkIGFtcGxpY29ucyB3ZXJlIHN1Ym1pdHRlZCB0byB0aGUKICAgICAgSW93YSBTdGF0ZSBVbml2ZXJzaXR5IEROQSBTZXF1ZW5jaW5nIEZhY2lsaXR5IGZvciBTYW5nZXIgc2VxdWVuY2luZwogICAgICAoYmlkaXJlY3Rpb25hbCByZWFkcyB3ZXJlIGFjaGlldmVkIHVzaW5nIHRoZSBzYW1lIGZvcndhcmQgYW5kIHJldmVyc2UKICAgICAgcHJpbWVycykuJmx0Oy9wJmd0OyAmbHQ7cCZndDsmbHQ7c3Ryb25nJmd0OzIuMTEgU3RhdGlzdGljYWwKICAgICAgYW5hbHlzaXMmbHQ7L3N0cm9uZyZndDsmbHQ7L3AmZ3Q7ICZsdDtwJmd0O1N0YXRpc3RpY2FsIGFuYWx5c2VzIHdlcmUKICAgICAgcGVyZm9ybWVkIHVzaW5nIFByaXNtIHZlcnNpb24gMTAuMCAoR3JhcGhQYWQgU29mdHdhcmUsIExhIEpvbGxhLCBDQSwgVVNBKS4KICAgICAgRVYgY29uY2VudHJhdGlvbnMgd2VyZSBub3JtYWxpemVkIHRvIHRpc3N1ZSB3ZXQgd2VpZ2h0IChtZykgZm9yIGFuYWx5c2lzLgogICAgICBEaWZmZXJlbmNlcyBpbiBFViBzZWNyZXRpb24gYW1vbmcgaW50ZXN0aW5hbCByZWdpb25zIHdlcmUgYW5hbHl6ZWQgdXNpbmcKICAgICAgb25lLXdheSBBTk9WQSBmb2xsb3dlZCBieSBhIHBvc3QgaG9jIMWgw61kw6FrIG11bHRpcGxlLWNvbXBhcmlzb25zIHRlc3QuIFRoZQogICAgICBlZmZlY3Qgb2YgaXZlcm1lY3RpbiBvbiByZWdpb25hbCBFViByZWxlYXNlIHdhcyBhbmFseXplZCB1c2luZyBhbiB1bnBhaXJlZAogICAgICB0LXRlc3QsIHdpdGggYSAmbHQ7ZW0mZ3Q7UCZsdDsvZW0mZ3Q7IHZhbHVlICZhbXA7bHQ7IDAuMDUgYmVpbmcgY29uc2lkZXJlZAogICAgICBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IGZvciBhbGwgYW5hbHlzZXMuIERvc2XigJNyZXNwb25zZSByZWxhdGlvbnNoaXBzCiAgICAgIHdlcmUgYW5hbHl6ZWQgdXNpbmcgbm9ubGluZWFyIHJlZ3Jlc3Npb24gd2l0aCBhIGxvZyAoaW5oaWJpdG9yKSB2ZXJzdXMKICAgICAgcmVzcG9uc2XigJN2YXJpYWJsZSBzbG9wZSBtb2RlbCwgYW5kIGl2ZXJtZWN0aW4gY29uY2VudHJhdGlvbnMgd2VyZQogICAgICBsb2cmbHQ7c3ViJmd0OzEwJmx0Oy9zdWImZ3Q7LXRyYW5zZm9ybWVkIHByaW9yIHRvIGFuYWx5c2lzLiBBIHR3by13YXkKICAgICAgQU5PVkEgbW9kZWwgd2FzIHVzZWQgdG8gY29tcGFyZSB0aGUgbWVhbnMgb2YgRVYgc2l6ZSBwcm9maWxlcyBmb2xsb3dpbmcKICAgICAgZHJ1ZyB0cmVhdG1lbnQsIGFuZCBzdGF0aXN0aWNhbCBzaWduaWZpY2FuY2Ugd2FzIGRldGVybWluZWQgdXNpbmcgYSBwb3N0CiAgICAgIGhvYyDFoMOtZMOhayBtdWx0aXBsZS1jb21wYXJpc29ucyB0ZXN0ICgmbHQ7ZW0mZ3Q7UCZsdDsvZW0mZ3Q7ICZhbXA7bHQ7IDAuMDUKICAgICAgd2FzIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQpLiBUbyBhY2NvdW50IGZvciB0aGUgd2lkZSBkeW5hbWljIHJhbmdlIG9mIEVWCiAgICAgIGNvbmNlbnRyYXRpb24gdmFsdWVzIChwYXJ0aWNsZXMgbUwmbHQ7c3VwJmd0Oy0xJmx0Oy9zdXAmZ3Q7CiAgICAgIG1nJmx0O3N1cCZndDstMSZsdDsvc3VwJmd0OykgYWNyb3NzIHNpemUgc3Vic2V0cywgYSBjb25zdGFudCB2YWx1ZSBvZiAxCiAgICAgIHdhcyBhZGRlZCB0byBhbGwgRVYgY29uY2VudHJhdGlvbiB2YWx1ZXMgKDggc2l6ZSBzdWJzZXRzIHggMTQgRE1TTyBhbmQKICAgICAgaXZlcm1lY3RpbiB0cmVhdGVkIHJlcGxpY2F0ZXMgcGVyIHJlZ2lvbikgcHJpb3IgdG8gbG9nIHRyYW5zZm9ybWF0aW9uLCB0bwogICAgICBhdm9pZCB1bmRlZmluZWQgdmFsdWVzIGFyaXNpbmcgZnJvbSB6ZXJvIGNvdW50cyBpbiB0aGUgbG9nIHRyYW5zZm9ybWF0aW9uLgogICAgICBUaGUgYWRqdXN0ZWQgdmFsdWVzIHdlcmUgdGhlbSBsb2cmbHQ7c3ViJmd0OzEwJmx0Oy9zdWImZ3Q7LXRyYW5zZm9ybWVkLiBBCiAgICAgIHR3by13YXkgQU5PVkEgbW9kZWwgd2FzIGFwcGxpZWQgdG8gdGhlCiAgICAgIGxvZyZsdDtzdWImZ3Q7MTAmbHQ7L3N1YiZndDstdHJhbnNmb3JtZWQgZGF0YSB0byBjb21wYXJlIEVWIHNpemUgcHJvZmlsZXMKICAgICAgZm9sbG93aW5nIGRydWcgdHJlYXRtZW50LCBhbmQgc3RhdGlzdGljYWwgc2lnbmlmaWNhbmNlIHdhcyBkZXRlcm1pbmVkCiAgICAgIHVzaW5nIGEgcG9zdCBob2MgxaDDrWTDoWsgbXVsdGlwbGUtY29tcGFyaXNvbnMgdGVzdCAoJmx0O2VtJmd0O1AmbHQ7L2VtJmd0OwogICAgICAmYW1wO2x0OyAwLjA1IHdhcyBjb25zaWRlcmVkIHNpZ25pZmljYW50KS4mbHQ7L3AmZ3Q7ICZsdDtwJmd0O1Byb3Rlb21pYwogICAgICBkYXRhIHByb2Nlc3NpbmcgYW5kIHN0YXRpc3RpY2FsIGFuYWx5c2VzIHdlcmUgcGVyZm9ybWVkIGluIFB5dGhvbiB1c2luZwogICAgICB0aGUgcGFuZGFzLCBOdW1QeSwgYW5kIFNjaVB5IHBhY2thZ2VzLCBhbmQgZmlndXJlcyB3ZXJlIGdlbmVyYXRlZCBpbiBSCiAgICAgICh2ZXJzaW9uIDQuNS4yKS4gRGlmZmVyZW50aWFsIHByb3RlaW4gYWJ1bmRhbmNlIGJldHdlZW4gaXZlcm1lY3RpbiBhbmQKICAgICAgRE1TTyB0cmVhdGVkIGludGVzdGluYWwgRVZzIHdhcyBhc3Nlc3NlZCBieSBXZWxjaCdzCiAgICAgICZsdDtlbSZndDt0Jmx0Oy9lbSZndDstdGVzdCBvbiBsb2figoItdHJhbnNmb3JtZWQgYWJ1bmRhbmNlcyB0byBzdGFiaWxpemUKICAgICAgdGhlIHZhcmlhbmNlLCBhcHByb3hpbWF0ZSBhIG5vcm1hbCBkaXN0cmlidXRpb24gYW5kIG5vdCBhc3N1bWUgZXF1YWwKICAgICAgdmFyaWFuY2VzIGJldHdlZW4gZ3JvdXBzIChuID0gNSByZXBsaWNhdGVzKS4gJmx0O2VtJmd0O1AmbHQ7L2VtJmd0OyB2YWx1ZXMKICAgICAgd2VyZSBjb3JyZWN0ZWQgZm9yIG11bHRpcGxlIHRlc3RpbmcgdXNpbmcgdGhlIEJlbmphbWluaeKAk0hvY2hiZXJnCiAgICAgIGZhbHNlLWRpc2NvdmVyeS1yYXRlIChGRFIpIHByb2NlZHVyZS4gUHJvdGVpbnMgd2l0aCAmbHQ7ZW0mZ3Q7UCZsdDsvZW0mZ3Q7CiAgICAgICZhbXA7bHQ7IDAuMDUgYW5kIGxvZ+KCgiBmb2xkIGNoYW5nZSAmYW1wO2d0OzEgd2VyZSBjb25zaWRlcmVkCiAgICAgIGRpZmZlcmVudGlhbGx5IGFidW5kYW50LiBHaXZlbiB0aGUgc2FtcGxlIHNpemUsIHRoZXNlIHByb3RlaW5zIGFyZQogICAgICByZXBvcnRlZCBhcyBjYW5kaWRhdGUgZGlmZmVyZW50aWFsbHkgYWJ1bmRhbnQgcHJvdGVpbnMgZm9yIGZ1bmN0aW9uYWwKICAgICAgaW50ZXJwcmV0YXRpb24uIFRvIGVuc3VyZSByZXByb2R1Y2liaWxpdHksIGV4cGVyaW1lbnRzIHdlcmUgcmVwZWF0ZWQKICAgICAgaW5kZXBlbmRlbnRseSwgYW5kIGRldGFpbHMgaW5jbHVkaW5nIHRoZSBudW1iZXIgb2YgYWR1bHQgZmVtYWxlIHdvcm1zCiAgICAgIHVzZWQsIGludGVzdGluYWwgcHJlcGFyYXRpb25zLCBkcnVnIGNvbmNlbnRyYXRpb25zLCBhbmQgdHJlYXRtZW50CiAgICAgIGR1cmF0aW9ucyAoSVZNIGFuZCBETVNPKSBhcmUgcHJvdmlkZWQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZmlndXJlCiAgICAgIGxlZ2VuZHMuJmx0Oy9wJmd0OwogICAgPC9kZXNjcmlwdGlvbj4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IlRlY2huaWNhbEluZm8iPgogICAgICAjIEluaGliaXRpb24gb2YgcmVsZWFzZSBvZiBpbnRlc3RpbmFsIGV4dHJhY2VsbHVsYXIgdmVzaWNsZXMgaW4gKkFzY2FyaXMKICAgICAgc3V1bSogYW5kIGltbXVuZSBtb2R1bGF0aW9uIGJ5IHRoZSBhbnRoZWxtaW50aWMgaXZlcm1lY3RpbiBEYXRhc2V0IERPSToKICAgICAgWzEwLjUwNjEvZHJ5YWQuenM3aDQ0anNnXShodHRwczovL2RvaS5vcmcvMTAuNTA2MS9kcnlhZC56czdoNDRqc2cpICMjCiAgICAgIE1hbnVzY3JpcHQgRGF0YSBGaWxlcyBmb3IgRmlncyAyLCAzLCA0LCA1LCA2IGFuZCA3IG9mIG1hbnVzY3JpcHQgIyMjIEZpbGVzCiAgICAgIGFuZCB2YXJpYWJsZXMgIyMjIyBGaWxlIGFuZCB2YXJpYWJsZXM6IEZpZzJBLmNzdiBUaGlzIGRhdGFzZXQgZmlsZSBzaG93cwogICAgICB0aGUgRVYgY291bnRzLCB0aGUgRVYgY291bnRzIHBlciBtbCwgdGhlIGludGVzdGluZSB3ZXQgd2VpZ2h0cyAobWcpIGZvciAxNAogICAgICB3aG9sZSBBc2NhcmlzIGludGVzdGluZXMsIDE0IGFudGVyaW9yIEFzY2FyaXMgaW50ZXN0aW5lIHJlZ2lvbnMsIDE0CiAgICAgIEFzY2FyaXMgbWlkZGxlIGludGVzdGluZSByZWdpb25zIGFuZCAxNCBBc2NhcmlzIHBvc3RlcmlvciByZWdpb25zLiBUaGUgMTQKICAgICAgZGlmZmVyZW50IHByZXBhcmF0aW9ucyBhcmUgYXJyYW5nZWQgaW4gdmVydGljYWwgY29sdW1ucyAqKkRlc2NyaXB0aW9uOgogICAgICBGaWcuIDJBIHJldmVhbHMgdGhlIHJlZ2lvbmFsIGNvbmNlbnRyYXRpb25zIG9mIGludGVzdGluYWwgZXh0cmFjZWxsdWxhcgogICAgICB2ZXNpY2xlcyAoRVZzKSBmcm9tKiogKioqQXNjYXJpcyBzdXVtKioqKiouKipcIFF1YW50aWZpY2F0aW9uIG9mIEVWCiAgICAgIGNvbmNlbnRyYXRpb25zIHJlbGVhc2VkIGZyb20gdGhlIHdob2xlIGludGVzdGluZSBhbmQgZnJvbSBhbnRlcmlvciwKICAgICAgbWlkZGxlLCBhbmQgcG9zdGVyaW9yIGludGVzdGluZSByZWdpb25zLiBBbmFseXNpcyByZXZlYWxlZCB0aGUgbWVhbiBTRU0KICAgICAgY29uY2VudHJhdGlvbnMvd2V0IHdlaWdodCBvZiA0LjUyIHggMTBeOV4gMi41eDEwXjheIHBhcnRpY2xlcyBtTF4tMV4KICAgICAgbWdeLTFeIGZyb20gd2hvbGUgaW50ZXN0aW5lLCA4LjQ2IHggMTBeOV4gMi43IHgxMF44XiBwYXJ0aWNsZXMgbUxeLTFeCiAgICAgIG1nXi0xXiBmcm9tIGFudGVyaW9yIGludGVzdGluZSwgNC4xMSB4IDEwXjleIDkuMCB4MTBeN14gcGFydGljbGVzIG1MXi0xXgogICAgICBtZ14tMV4gZnJvbSBtaWRkbGUgaW50ZXN0aW5lLCBhbmQgNC41NSB4IDEwXjleIDEuMTggeDEwXjheIHBhcnRpY2xlcwogICAgICBtTF4tMV4gbWdeLTFeIGZyb20gcG9zdGVyaW9yIGludGVzdGluZS5TdGF0aXN0aWNhbCBzaWduaWZpY2FuY2UgaXMKICAgICAgaW5kaWNhdGVkIGJ5ICoqKiogZm9yICpQKiAmbHQ7IDAuMDAwMS4gRVYgY29uY2VudHJhdGlvbnMgcGVyIG1nIGluIHRoZQogICAgICBhbnRlcmlvciByZWdpb24gd2VyZSBzaWduaWZpY2FudGx5IGhpZ2hlciB0aGFuIHRob3NlIGluIHRoZSB3aG9sZQogICAgICBpbnRlc3RpbmUsIG1pZGRsZSBpbnRlc3RpbmUsIGFuZCBwb3N0ZXJpb3IgaW50ZXN0aW5lIChQICZsdDsgMC4wMDAxKS4KICAgICAgbWVhbnMgU0VNLCAqTiogPSAxNC4gIyMjIyBGaWxlIGFuZCB2YXJpYWJsZXM6IEZpZzNfQS5jc3YgVGhpcyBkYXRhc2V0IGZpbGUKICAgICAgc2hvd3MgdGhlIEVWIGNvdW50cyBwZXIgbWwgcGVyIG1nIHdldCB3ZWlnaHQgKG1nKSBvZiAxNCBjb250cm9sIGFudGVyaW9yCiAgICAgIEFzY2FyaXMgaW50ZXN0aW5lIHJlZ2lvbnMgYW5kIGZvciAxNCBpdmVybWVjdGluIDHCtU0gdHJlYXRlZCBhbnRlcmlvcgogICAgICBBc2NhcmlzIGludGVzdGluZXMgcmVnaW9uczsgaXQgYWxzbyBzaG93cyBoZSBFViBjb3VudHMgcGVyIG1sIHBlciBtZyB3ZXQKICAgICAgd2VpZ2h0IChtZykgb2YgMTQgY29udHJvbCBtaWRkbGUgQXNjYXJpcyBpbnRlc3RpbmUgcmVnaW9ucyBhbmQgZm9yIDE0CiAgICAgIGl2ZXJtZWN0aW4gMcK1TSB0cmVhdGVkIG1pZGRsZSBBc2NhcmlzIGludGVzdGluZSByZWdpb25zOyBhbmQgdGhlIEVWIGNvdW50cwogICAgICBwZXIgbWwgcGVyIG1nIHdldCB3ZWlnaHQgKG1nKSBvZiAxNCBjb250cm9sIHBvc3RlcmlvciBBc2NhcmlzIGludGVzdGluZQogICAgICByZWdpb25zIGFuZCBmb3IgMTQgaXZlbWVjdGluIDHCtU0gdHJlYXRlZCBwb3N0ZXJpb3IgQXNjYXJpcyBpbnRlc3RpbmUKICAgICAgcmVnaW9uczsgIyMjIyMgKipEZXNjcmlwdGlvbjogRmlnLiAzQSBTaG93cyBJdmVybWVjdGluIGluaGliaXRzCiAgICAgIGV4dHJhY2VsbHVsYXIgdmVzaWNsZSAoRVYpIHNlY3JldGlvbiBmcm9tIHRoZSBpbnRlc3RpbmUgb2YgYWR1bHQgZmVtYWxlKioKICAgICAgKioqQXNjYXJpcyBzdXVtKioqIEFkdWx0IGZlbWFsZSBpbnRlc3RpbmFsIHRpc3N1ZXMgKGFudGVyaW9yLCBtaWRkbGUsIGFuZAogICAgICBwb3N0ZXJpb3IgcmVnaW9ucykgd2VyZSBjdWx0dXJlZCBhdCAzNyBDIGluICpBc2NhcmlzKiBwZXJpZW50ZXJpYyBmbHVpZAogICAgICB3aXRoIDEgTSBpdmVybWVjdGluIChJVk0pIG9yIDAuMDElIERNU08uIE1lZGlhIHdhcyBjb2xsZWN0ZWQgYWZ0ZXIgNCBoLAogICAgICBhbmQgRVZzIHdlcmUgaXNvbGF0ZWQgYW5kIHF1YW50aWZpZWQgYnkgbmFub3BhcnRpY2xlIHRyYWNraW5nIGFuYWx5c2lzLiBFVgogICAgICBjb25jZW50cmF0aW9ucyBvYnRhaW5lZCBmcm9tIHRoZSB0aHJlZSBpbnRlc3RpbmFsIHJlZ2lvbnMgb2YgMTQKICAgICAgaW5kZXBlbmRlbnQgd29ybXMsIG5vcm1hbGl6ZWQgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBpbnRlc3RpbmFsIHdldAogICAgICB3ZWlnaHQuKkFudGVyaW9yIGludGVzdGluZToqIEVWIGNvbmNlbnRyYXRpb25zOiBNZWFucyBTRU0gNy4yNiB4IDEwXjleCiAgICAgIDIuMTV4MTBeOF4gcGFydGljbGVzIG1MXi0xXiBtZ14tMV4gZm9yIGNvbnRyb2wgYW5kIDMuMDIgeCAxMF45XiA4LjAzeDEwXjdeCiAgICAgIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeIGZvciAxIE0gaXZlcm1lY3RpbiAoSVZNKS4gKioqKiAqUCogJmx0OyAwLjAwMDEsIE4KICAgICAgPSAxNCwgdW5wYWlyZWQgKnQtdGVzdC4qICpNaWRkbGUgaW50ZXN0aW5lOiogRVYgY29uY2VudHJhdGlvbnM6IE1lYW5zIFNFTQogICAgICAzLjU3IHggMTBeOV4gNi45OHgxMF43XiBwYXJ0aWNsZXMgbUxeLTFeIG1nXjFeIGZvciBjb250cm9sIGFuZCAxLjM1IHgKICAgICAgMTBeOV4gOC4wNiB4MTBeN14gcGFydGljbGVzIG1MXi0xXiBtZ14tMV4gZm9yIDEgTSBpdmVybWVjdGluLiAqKioqICpQKgogICAgICAmbHQ7IDAuMDAwMSwgTiA9IDE0LCB1bnBhaXJlZCAqdC10ZXN0LiogKlBvc3RlcmlvciBpbnRlc3RpbmU6KiBFVgogICAgICBjb25jZW50cmF0aW9uczogTWVhbnMgU0VNIHdlcmUgNC44NSB4IDEwXjleIDkuMjUgeDEwXjdeIHBhcnRpY2xlcyBtTF4tMV4KICAgICAgbWdeLTFeIGZvciBjb250cm9sIHdpdGggMC4wMSUgRE1TTyBhbmQgMi4wMyB4IDEwXjleIDYuODMgeDEwXjdeIHBhcnRpY2xlcwogICAgICBtTF4tMV4gbWdeLTFeIGZvciAxIE0gaXZlcm1lY3Rpbi4gKioqKipQKiAmbHQ7IDAuMDAwMSwgTiA9IDE0LCB1bnBhaXJlZAogICAgICAqdC10ZXNeLiBeKiAjIyMjIEZpbGUgYW5kIHZhcmlhYmxlczogRmlnM0IuY3N2IFRoZSBkYXRhc2V0IGZpbGUgc2hvd3MgaW4KICAgICAgY29sdW1uIDEgdGhlIG1vbGFyIGNvbmNlbnRyYXRpb24gb2YgaXZlcm1lY3RpbiBhbmQgaW4gdGhlIHNpeCBvdGhlcgogICAgICBjb2x1bW5zIHRoZSBFViBjb25jZW50cmF0aW9uIHBlciBtbCBwZXIgbWcgd2V0IHdlaWdodCBvZiB0aGUgYW50ZXJpb3IKICAgICAgcmVnaW9uIG9mIHRoZSBBc2NhcmlzIGludGVzdGluZSB0byBhbGxvdyBhIGRvc2UgcmVzcG9uc2UgcmVsYXRpb25zaGlwIHRvCiAgICAgIGJlIGRldGVybWluZWQuICoqRGVzY3JpcHRpb246IEZpZyAzQiBzaG93cyoqIHRoZSBJdmVybWVjdGluIGRvc2UtcmVzcG9uc2UKICAgICAgZm9yIHRoZSBhbnRlcmlvciByZWdpb24gb2YgdGhlIGludGVzdGluZS4gVGhlIGFudGVyaW9yIHJlZ2lvbiB3YXMKICAgICAgZGlzc2VjdGVkIGludG8gc2l4IHNlcXVlbnRpYWwgMSBjbSBwaWVjZXMgZnJvbSBwaGFyeW54IHRvIHZ1bHZhciBwb3JlLCBhbmQKICAgICAgZWFjaCBwaWVjZSB3YXMgaW5jdWJhdGVkIHdpdGggYW4gaXZlcm1lY3RpbiBjb25jZW50cmF0aW9uIHRoYXQgcmFuZ2VkIGZyb20KICAgICAgMTAgTSB0byAxMDAgcE0gKDEwXi01XjEwXi0xMF4gTSkgZm9yIDQgaC4gSW4gdGhyZWUgZXhwZXJpbWVudHMsIHRpc3N1ZXMKICAgICAgd2VyZSB0cmVhdGVkIGZyb20gcGhhcnlueCB0byB2dWx2YXIgcG9yZSwgYW5kIGluIHRocmVlIGV4cGVyaW1lbnRzIGZyb20KICAgICAgdnVsdmFyIHBvcmUgdG8gcGhhcnlueC4gRVYgY29uY2VudHJhdGlvbnMgb2J0YWluZWQgZnJvbSBhbnRlcmlvciByZWdpb24gb2YKICAgICAgNiBpbmRlcGVuZGVudCB3b3JtcyB3ZXJlIG5vcm1hbGl6ZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXN0aW5hbCB3ZXQKICAgICAgd2VpZ2h0LiBJdmVybWVjdGluIGluaGliaXRlZCBFViByZWxlYXNlIGluIGEgY29uY2VudHJhdGlvbi1kZXBlbmRlbnQKICAgICAgbWFubmVyLCB3aXRoIGFuIGVzdGltYXRlZCAqSUMqIG9mIDY0IG5NLCBOPTYuICMjIyMgRmlsZSBhbmQgdmFyaWFibGVzOgogICAgICBGaWc0QS5jc3YgVGhlIGRhdGFzZXQgZmlsZSBzaG93cyBpbiBjb2x1bW4gMSB0aGUgRVYgc2l6ZSAobk0pIHJhbmdlcwogICAgICBtZWFzdXJlZCBhbmQgdGhlIEVWIGNvbmNlbnRyYXRpb25zL21sL21nIHdldCB3ZWlnaHQgb2YgdGhlIGFudGVyaW9yIHJlZ2lvbgogICAgICBvZiB0aGUgQXNjYXJpcyBpbnRlc3RpbmUgb2YgMTQgd29ybXMgdW5kZXIgY29udHJvbCBjb25kaXRpb25zIGFuZCBpbiB0aGUKICAgICAgcHJlc2VuY2Ugb2YgSXZlcm1lY3RpbiAxwrVNLiAqKkRlc2NyaXB0aW9uOiBGaWcuIDRBIFNob3dzIHRoYXQgdGhlCiAgICAgIHNlY3JldGlvbiBvZiBFViBzaXplIHN1YnNldHMgZnJvbSB0aGUgYW50ZXJpb3IgaW50ZXN0aW5lIGFyZSBpbmhpYml0ZWQgYnkKICAgICAgaXZlcm1lY3Rpbi4qKsKgIEFkdWx0IGZlbWFsZSBpbnRlc3RpbmFsIHRpc3N1ZXMgKGFudGVyaW9yLCBtaWRkbGUsIGFuZAogICAgICBwb3N0ZXJpb3IgcmVnaW9ucykgd2VyZSBjdWx0dXJlZCBhdCAzNyBDIGluICpBc2NhcmlzKiBwZXJpZW50ZXJpYyBmbHVpZAogICAgICB3aXRoIDEgTSBpdmVybWVjdGluIChJVk0pIG9yIDAuMDElIERNU08gKHBIIDcuNikuIE1lZGlhIHdhcyBjb2xsZWN0ZWQKICAgICAgYWZ0ZXIgNCBoLCBhbmQgRVZzIHdlcmUgaXNvbGF0ZWQgYW5kIHF1YW50aWZpZWQuIEEgdHdvLXdheSBBTk9WQSBtb2RlbCB3YXMKICAgICAgdXNlZCB0byBjb21wYXJlIHRoZSBtZWFucyBvZiBFViBzaXplIHByb2ZpbGVzIGZvbGxvd2luZyBkcnVnIHRyZWF0bWVudCwKICAgICAgYW5kIHN0YXRpc3RpY2FsIHNpZ25pZmljYW5jZSB3YXMgZGV0ZXJtaW5lZCB1c2luZyBhIHBvc3QtaG9jIGRrCiAgICAgIG11bHRpcGxlLWNvbXBhcmlzb25zIHRlc3QgKCpQKiAmbHQ7IDAuMDUgd2FzIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQsICoqKgogICAgICBmb3IgKlAqICZsdDswLjAwMSwgKioqKiBmb3IgKlAqICZsdDswLjAwMDEpLkRhdGEgYXJlIHByZXNlbnRlZCBhcyBtZWFuCiAgICAgIFNFTSwgKk4qID0gMTQuIENvbXBhcmlzb25zIHdpdGhvdXQgc2lnbmlmaWNhbmNlIG1hcmtlcnMgd2VyZSBub3QKICAgICAgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudC4gSW4gdGhlIGFudGVyaW9yIGludGVzdGluZSwgaXZlcm1lY3RpbiAoMSBNKQogICAgICBzaWduaWZpY2FudGx5IGluaGliaXRlZCB0aGUgMTAxMTUwIG5tLCAxNTEyMDAgbm0gYW5kIDIwMTI1MCBubSBFViBzdWJzZXRzLgogICAgICBFViBjb25jZW50cmF0aW9ucyB3ZXJlIDMuODMgeCAxMF43XiAxLjM4IHgxMF42XiBwYXJ0aWNsZXMgbUxeLTFeIG1nXi0xXgogICAgICB3aXRoIDAuMDElRE1TTyBhbmQgMS4xOSB4IDEwXjdeIDYuNzggeDEwXjVeIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeIHdpdGggMQogICAgICBNIGl2ZXJtZWN0aW4gaW4gdGhlIDEwMS0xNTAgbm0gRVYgc3Vic2V0czsgRVYgY29uY2VudHJhdGlvbnMgd2VyZSA2LjU1IHgKICAgICAgMTBeN14gMi44MSB4MTBeNl4gcGFydGljbGVzIG1MXi0xXiBtZ14tMV4gd2l0aCAwLjAxJURNU08gYW5kIDIuODQgeCAxMF43XgogICAgICA4LjkyIHgxMF41XiBwYXJ0aWNsZXMgbUxeLTFeIG1nXi0xXiB3aXRoIDEgTSBpdmVybWVjdGluIGluIHRoZSAxNTEyMDAgbm0KICAgICAgRVYgc3Vic2V0czsgRVYgY29uY2VudHJhdGlvbnMgd2VyZSAyLjc4IHggMTBeN14gOS43OCB4MTBeNV4gcGFydGljbGVzCiAgICAgIG1MXi0xXiBtZ14tMV4gd2l0aCAwLjAxJURNU08gYW5kIDEuNDAgeCAxMF43XiA1LjM1IHgxMF41XiBwYXJ0aWNsZXMgbUxeLTFeCiAgICAgIG1nXi0xXiB3aXRoIDEgTSBpdmVybWVjdGluIGluIHRoZSAyMDEyNTAgbm0gRVYgc3Vic2V0cy4gUGVyY2VudCByZWR1Y3Rpb25zCiAgICAgIGluIEVWIGNvbmNlbnRyYXRpb24gKHBhcnRpY2xlcyBtTF4tMV4gbWcgXi0xXikgZm9sbG93aW5nIGl2ZXJtZWN0aW4KICAgICAgdHJlYXRtZW50IGFyZSBpbmRpY2F0ZWQgYWJvdmUgdGhlIHJlZCBiYXJzLiBJdmVybWVjdGluIHJlZHVjZWQgRVYKICAgICAgY29uY2VudHJhdGlvbiAocGFydGljbGVzIG1MXi0xXiBtZyBeLTFeKSBieSA2OSUgaW4gdGhlIDEwMTE1MCBubSBFViBzaXplCiAgICAgIHJhbmdlLCA1NyUgaW4gdGhlIDE1MTIwMCBubSByYW5nZSwgYW5kIDUwJSBpbiB0aGUgMjAxMjUwIG5tIHJhbmdlLiBUd28td2F5CiAgICAgIEFOT1ZBIHNob3dlZCBhIHNpZ25pZmljYW50IGluaGliaXRvcnkgZWZmZWN0IG9mIGl2ZXJtZWN0aW4gb24gRVYKICAgICAgY29uY2VudHJhdGlvbiAoUCZsdDsgMC4wMDAxOyBGPTEzNi40NTsgREZuPTEsIERGZD0yMDgpLCBhbmQgYSBzaWduaWZpY2FudAogICAgICBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZSBlZmZlY3Qgb2YgaXZlcm1lY3RpbiBhbmQgRVYgc2l6ZSAoUD0wLjAwMTM7CiAgICAgIEY9My41MzsgREZuPTcsIERGZD0yMDgpLCBpbmRpY2F0aW5nIHRoYXQgaXZlcm1lY3RpbiBkaWQgbm90IHJlZHVjZSBhbGwgRVYKICAgICAgc2l6ZSBwb3B1bGF0aW9ucyBlcXVhbGx5IGFuZCBoYWQgZGlmZmVyZW50IHF1YW50aXRhdGl2ZSBlZmZlY3RzIGFjcm9zcyBFVgogICAgICBzaXplIGdyb3VwcywgY29uc2lzdGVudCB3aXRoIGhldGVyb2dlbmVpdHkgd2l0aGluIHRoZSBpbnRlc3RpbmFsIEVWCiAgICAgIHBvcHVsYXRpb24uIFBvc3QtaG9jIGRrIG11bHRpcGxlIGNvbXBhcmlzb25zIGNvbmZpcm1lZCB0aGF0IGl2ZXJtZWN0aW4KICAgICAgc2lnbmlmaWNhbnRseSByZWR1Y2VkIEVWIGNvbmNlbnRyYXRpb24gaW4gdGhlIDEwMS0xNTAgbm0gKFAgJmx0OyAwLjAwMDEpLAogICAgICAxNTEtMjAwIG5tIChQICZsdDsgMC4wMDAxKSwgYW5kIDIwMS0yNTAgbm0gKFAgJmx0OyAwLjAwMDEpIHN1YnNldHMsIHdoaWxlCiAgICAgIG90aGVyIHNpemUgcmFuZ2VzIHdlcmUgbm90IHNpZ25pZmljYW50bHkgYWZmZWN0ZWQuICMjIyMgRmlsZSBhbmQKICAgICAgdmFyaWFibGVzOiBGaWc0Qi5jc3YgVGhlIGRhdGFzZXQgZmlsZSBzaG93cyBpbiBjb2x1bW4gMSB0aGUgRVYgc2l6ZSAobk0pCiAgICAgIHJhbmdlcyBtZWFzdXJlZCBhbmQgdGhlIEVWIGNvbmNlbnRyYXRpb25zL21sL21nIHdldCB3ZWlnaHQgb2YgdGhlIG1pZGRsZQogICAgICByZWdpb24gb2YgdGhlIEFzY2FyaXMgaW50ZXN0aW5lIG9mIDE0IHdvcm1zIHVuZGVyIGNvbnRyb2wgY29uZGl0aW9ucyBhbmQKICAgICAgaW4gdGhlIHByZXNlbmNlIG9mIEl2ZXJtZWN0aW4gMcK1TS4gKipEZXNjcmlwdGlvbiBGaWc0QioqIEluIHRoZSBtaWRkbGUKICAgICAgaW50ZXN0aW5lLCBpdmVybWVjdGluICgxIE0pIHNpZ25pZmljYW50bHkgaW5oaWJpdGVkIHRoZSAxMDExNTAgbm0sIDE1MTIwMAogICAgICBubSwgMjAxMjUwIG5tLCBhbmQgMjUxLTMwMCBubSBFViBzdWJzZXRzIHJlbGVhc2VkIGZyb20gdGhlIG1pZGRsZQogICAgICBpbnRlc3RpbmFsIHJlZ2lvbiBvZiAqQXNjYXJpcyBzdXVtKi4gU3RhdGlzdGljYWwgc2lnbmlmaWNhbmNlIGlzIGluZGljYXRlZAogICAgICBieSAqKioqIGZvciAqUCogJmx0OzAuMDAwMS4gVGhlIEVWIGNvbmNlbnRyYXRpb25zIHdlcmUgbWVhbiBTRU0gMS40OCB4CiAgICAgIDEwXjdeIDQuNDMgeDEwXjVeIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeIHdpdGggMC4wMSUgRE1TTyBhbmQgNC44OSB4IDEwXjZeCiAgICAgIDQuMDggeDEwXjVeIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeIHdpdGggMSBNIGl2ZXJtZWN0aW4gaW4gdGhlIDEwMS0xNTAgbm0KICAgICAgRVYgc3Vic2V0czsgRVYgY29uY2VudHJhdGlvbnMgd2VyZSAzLjg2IHggMTBeN14gOC43NiB4MTBeNV4gcGFydGljbGVzCiAgICAgIG1MXi0xXiBtZ14tMV4gd2l0aCAwLjAxJURNU08gYW5kIDEuNDEgeCAxMF43XiA4LjkyIHgxMF41XiBwYXJ0aWNsZXMgbUxeLTFeCiAgICAgIG1nXi0xXiB3aXRoIDEgTSBpdmVybWVjdGluIGluIHRoZSAxNTEyMDAgbm0gRVYgc3Vic2V0czsgRVYgY29uY2VudHJhdGlvbnMKICAgICAgd2VyZSAxLjMwIHggMTBeN14gMy40MiB4MTBeNV4gcGFydGljbGVzIG1MXi0xXiBtZ14tMV4gd2l0aCAwLjAxJURNU08gYW5kCiAgICAgIDUuNTUgeCAxMF42XiA0LjI1IHgxMF41XiBwYXJ0aWNsZXMgbUxeLTFeIG1nXi0xXiB3aXRoIDEgTSBpdmVybWVjdGluIGluCiAgICAgIHRoZSAyMDEyNTAgbm0gRVYgc3Vic2V0czsgRVYgY29uY2VudHJhdGlvbnMgd2VyZSAzLjg2IHggMTBeNl4gMS41MCB4MTBeNV4KICAgICAgcGFydGljbGVzIG1MXi0xXiBtZ14tMV4gd2l0aCAwLjAxJURNU08gYW5kIDEuNzMgeCAxMF42XiAyLjE4IHgxMF41XgogICAgICBwYXJ0aWNsZXMgbUxeLTFeIG1nXi0xXiB3aXRoIDEgTSBpdmVybWVjdGluIGluIHRoZSAyNTEzMDAgbm0gRVYgc3Vic2V0cy4KICAgICAgUGVyY2VudCByZWR1Y3Rpb25zIGluIEVWIGNvbmNlbnRyYXRpb24gKHBhcnRpY2xlcyBtTF4tMV4gbWcgXi0xXikKICAgICAgZm9sbG93aW5nIGl2ZXJtZWN0aW4gdHJlYXRtZW50IGFyZSBpbmRpY2F0ZWQgYWJvdmUgdGhlIHJlZCBiYXJzLgogICAgICBJdmVybWVjdGluIHJlZHVjZWQgRVYgY29uY2VudHJhdGlvbiAocGFydGljbGVzIG1MXi0xXiBtZyBeLTFeKSBieSA2NyUgaW4KICAgICAgdGhlIDEwMTE1MCBubSBFViBzaXplIHJhbmdlLCA2MyUgaW4gdGhlIDE1MTIwMCBubSByYW5nZSwgNTclIGluIHRoZSAyMDEyNTAKICAgICAgbm0gcmFuZ2UsIGFuZCA1NSUgaW4gdGhlIDI1MTMwMCBubSByYW5nZS4gVHdvLXdheSBBTk9WQSBzaG93ZWQgYQogICAgICBzaWduaWZpY2FudCBpbmhpYml0b3J5IGVmZmVjdCBvZiBpdmVybWVjdGluIG9uIEVWIGNvbmNlbnRyYXRpb24gKFAgPQogICAgICAwLjAxOTk7IEYgPSA1LjUxOyBERm4gPSAxLCBERmQgPSAyMDgpLCBhbmQgYSBzaWduaWZpY2FudCBpbnRlcmFjdGlvbgogICAgICBiZXR3ZWVuIHRoZSBlZmZlY3Qgb2YgaXZlcm1lY3RpbiBhbmQgRVYgc2l6ZSAoUCAmbHQ7IDAuMDAwMTsgRiA9IDcuNTI7IERGbgogICAgICA9IDcsIERGZCA9IDIwOCksIGluZGljYXRpbmcgdGhhdCBpdmVybWVjdGluIGRpZCBub3QgcmVkdWNlIGFsbCBFViBzaXplCiAgICAgIHBvcHVsYXRpb25zIGVxdWFsbHkgYW5kIGhhZCBkaWZmZXJlbnQgcXVhbnRpdGF0aXZlIGVmZmVjdHMgYWNyb3NzIEVWIHNpemUKICAgICAgZ3JvdXBzLCBjb25zaXN0ZW50IHdpdGggaGV0ZXJvZ2VuZWl0eSB3aXRoaW4gdGhlIGludGVzdGluYWwgRVYgcG9wdWxhdGlvbi4KICAgICAgUG9zdC1ob2MgZGsgbXVsdGlwbGUgY29tcGFyaXNvbnMgY29uZmlybWVkIHRoYXQgaXZlcm1lY3RpbiBzaWduaWZpY2FudGx5CiAgICAgIHJlZHVjZWQgRVYgY29uY2VudHJhdGlvbiBpbiB0aGUgMTAxLTE1MCBubSAoUCAmbHQ7IDAuMDAwMSksIDE1MS0yMDAgbm0gKFAKICAgICAgJmx0OyAwLjAwMDEpLCAyMDEtMjUwIG5tIChQICZsdDsgMC4wMDAxKSwgYW5kIDI1MS0zMDAgbm0gKFAgPSAwLjAwMDgpCiAgICAgIHN1YnNldHMsIHdoaWxlIG90aGVyIHNpemUgcmFuZ2VzIHdlcmUgbm90IHNpZ25pZmljYW50bHkgYWZmZWN0ZWQuICMjIyMKICAgICAgRmlsZSBhbmQgdmFyaWFibGVzOiBGaWc0X0MuY3N2IFRoZSBkYXRhc2V0IGZpbGUgc2hvd3MgaW4gY29sdW1uIDEgdGhlIEVWCiAgICAgIHNpemUgKG5NKSByYW5nZXMgbWVhc3VyZWQgYW5kIHRoZSBFViBjb25jZW50cmF0aW9ucy9tbC9tZyB3ZXQgd2VpZ2h0IG9mCiAgICAgIHRoZSBwb3N0ZXJpb3IgcmVnaW9uIG9mIHRoZSBBc2NhcmlzIGludGVzdGluZSBvZiAxNCB3b3JtcyB1bmRlciBjb250cm9sCiAgICAgIGNvbmRpdGlvbnMgYW5kIGluIHRoZSBwcmVzZW5jZSBvZiBJdmVybWVjdGluIDHCtU0uICoqRGVzY3JpcHRpb246IEZpZzRDLioqCiAgICAgIEluIHRoZSBwb3N0ZXJpb3IgaW50ZXN0aW5lLCBpdmVybWVjdGluICgxIE0pIHNpZ25pZmljYW50bHkgaW5oaWJpdGVkIEVWCiAgICAgIHN1YnNldHMgKDEwMTE1MCBubSwgMTUxMjAwIG5tLCBhbmQgMjAxMjUwIG5tKSByZWxlYXNlZCBmcm9tIHRoZSBwb3N0ZXJpb3IKICAgICAgaW50ZXN0aW5hbCByZWdpb24gb2YgKkFzY2FyaXMgc3V1bSouIEVWIGNvbmNlbnRyYXRpb25zIHdlcmUgMi4xNiB4IDEwXjdeCiAgICAgIDkuOTcgeDEwXjVeIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeIHdpdGggMC4wMSVETVNPIGFuZCA2LjkwIHggMTBeNl4gMy4yOAogICAgICB4MTBeNV4gcGFydGljbGVzIG1MXi0xXiBtZ14tMV4gd2l0aCAxIE0gaXZlcm1lY3RpbiBpbiB0aGUgMTAxLTE1MCBubSBFVgogICAgICBzdWJzZXRzOyBFViBjb25jZW50cmF0aW9ucyB3ZXJlIDUuMjggeCAxMF43XiAxLjE3IHgxMF42XiBwYXJ0aWNsZXMgbUxeLTFeCiAgICAgIG1nXi0xXiB3aXRoIDAuMDElRE1TTyBhbmQgMi4wNSB4IDEwXjdeIDcuMjUgeDEwXjZeIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeCiAgICAgIHdpdGggMSBNIGl2ZXJtZWN0aW4gaW4gdGhlIDE1MTIwMCBubSBFViBzdWJzZXRzOyBFViBjb25jZW50cmF0aW9ucyB3ZXJlCiAgICAgIDEuNzAgeCAxMF43XiA2LjA1IHgxMF41XiBwYXJ0aWNsZXMgbUxeLTFeIG1nXi0xXiB3aXRoIDAuMDElRE1TTyBhbmQgOS4xMSB4CiAgICAgIDEwXjZeIDYuMDkgeDEwXjVeIHBhcnRpY2xlcyBtTF4tMV4gbWdeLTFeIHdpdGggMSBNIGl2ZXJtZWN0aW4gaW4gdGhlCiAgICAgIDIwMTI1MCBubSBFViBzdWJzZXRzLiBQZXJjZW50IHJlZHVjdGlvbnMgaW4gRVYgY29uY2VudHJhdGlvbiAocGFydGljbGVzCiAgICAgIG1MXi0xXiBtZyBeLTFeKSBmb2xsb3dpbmcgaXZlcm1lY3RpbiB0cmVhdG1lbnQgYXJlIGluZGljYXRlZCBhYm92ZSB0aGUgcmVkCiAgICAgIGJhcnMuIEl2ZXJtZWN0aW4gcmVkdWNlZCBFViBjb25jZW50cmF0aW9uIChwYXJ0aWNsZXMgbUxeLTFeIG1nIF4tMV4pIGJ5CiAgICAgIDY4JSBpbiB0aGUgMTAxMTUwIG5tIEVWIHNpemUgcmFuZ2UsIDYxJSBpbiB0aGUgMTUxMjAwIG5tIHJhbmdlLCBhbmQgNDYlIGluCiAgICAgIHRoZSAyMDEyNTAgbm0gcmFuZ2UuIFR3by13YXkgQU5PVkEgZGlkIG5vdCBzaG93IGEgc2lnbmlmaWNhbnQgb3ZlcmFsbCBtYWluCiAgICAgIGVmZmVjdCBvZiBpdmVybWVjdGluIGFjcm9zcyBhbGwgc2l6ZSBzdWJzZXRzIChQID0gMC44NTk2OyBGID0gMC4wMzsgREZuID0KICAgICAgMSwgREZkID0gMjA4KSwgYnV0IHRoZXJlIHdhcyBhIHNpZ25pZmljYW50IGludGVyYWN0aW9uIGJldHdlZW4gaXZlcm1lY3RpbgogICAgICB0cmVhdG1lbnQgYW5kIEVWIHNpemUgKFAgJmx0OyAwLjAwMDE7IEYgPSA0Ljg5OyBERm4gPSA3LCBERmQgPSAyMDgpLgogICAgICBQb3N0LWhvYyBkayBtdWx0aXBsZSBjb21wYXJpc29ucyBjb25maXJtZWQgdGhhdCBpdmVybWVjdGluIHNpZ25pZmljYW50bHkKICAgICAgcmVkdWNlZCBFViBjb25jZW50cmF0aW9uIGluIHRoZSAxMDEtMTUwIG5tIChQICZsdDsgMC4wMDAxKSwgMTUxLTIwMCBubSAoUAogICAgICAmbHQ7IDAuMDAwMSksIGFuZCAyMDEtMjUwIG5tIChQICZsdDsgMC4wMDAxKSBzdWJzZXRzLCB3aGlsZSBvdGhlciBzaXplCiAgICAgIHJhbmdlcyB3ZXJlIG5vdCBzaWduaWZpY2FudGx5IGFmZmVjdGVkLiAjIyMjIEZpbGUgYW5kIHZhcmlhYmxlczogRklHNUEuY3N2CiAgICAgIFRoZSBkYXRhc2V0IGZpbGVzIGxpc3RzIGluIHZlcnRpY2FsIGNvbHVtbnMgcHJvdGVpbnMgY2xhc3NpZmllZCBhczoKICAgICAgRGlnZXN0aXZlLXJlbGF0ZWQgKDE0MCBwcm90ZWlucyk7IFRyYW5zbGF0aW9uICgxMjAgcHJvdGVpbnMpOyBQcm90ZWluCiAgICAgIEZvbGRpbmcgKDk2IHByb3RlaW5zKTsgSW1tdW5lLXJlbGF0ZWQgKDEwMCBwcm90ZWlucyk7IENhcmJvaHlkcmF0ZSBhbmQKICAgICAgRW5lcmd5IG1ldGFib2xpc20gKDQ2IHByb3RlaW5zKTsgY3l0b3NrZWxldGFsIG9yZ2FuaXphdGlvbiAoNzYgcHJvdGVpbnMpOwogICAgICBQcm90ZW9seXNpcyBhbmQgUHJvdGVpbiBDYXRhYm9saXNtIChpbmNsdWRpbmcgVWJpcXVpdGluLCAoNDUgcHJvdGVpbnMpOwogICAgICBMaXBpZCBtZXRhYm9saXNtICg0MyBwcm90ZWlucyk7U2lnbmFsIFRyYW5zZHVjdGlvbiAoNDYgcHJvdGVpbnMpOwogICAgICBWZXNpY2xlL0ludHJhY2VsbHVsYXIgVHJhbnNwb3J0ICgxOSBwcm90ZWlucyk7IFRyYW5zcG9ydCAoaW9uL3NtYWxsCiAgICAgIG1vbGVjdWxlKSwgKDYxIHBvcmV0aW5zKTsgTnVjbGVpYyBBY2lkIE1ldGFib2xpc20gKDI0IHByb3RlaW5zKTsgU3RyZXNzCiAgICAgIFJlc3BvbnNlICZhbXA7IFJlZG94ICg5IHByb3RlaW5zKTsgTk8gQlAgR08gYW5ub3RhdGlvbiAoNDMzIHByb3RlaW5zKTsgYW5kCiAgICAgIG90aGVyIGJpb2xvZ2ljYWwgcHJvY2Vzc2VzICgzMTYgcHJvdGVpbnMpLiBUaGVzZSBwcm90ZWlucyBhcmUgaWRlbnRpZmllZAogICAgICBhbmQgY2xhc3NpZmllZCBieSB0aGVpciBBY2Nlc3Npb24gbnVtYmVyIChlZyBGaUtQVzMpLCBtYWluIGZ1bmN0aW9uYWwKICAgICAgY2F0ZWdvcnksIHRoZWlyIHN1Yi1mYW1pbHkgZnVuY3Rpb25hbCBjYXRlZ29yeSwgdGhlaXIgbmFtZSBhbmQgaW4gY29sdW1uIDYKICAgICAgaWYgSXZlcm1lY3RpbiAoMcK1bSkgaGFkIGEgc2lnbmlmaWNhbnQgZWZmZWN0IChtYXJrZWQgYXMgWUVTKSBvbiB0aGUKICAgICAgZXhwcmVzc2lvbiBsZXZlbDsgbm8gc2lnbmlmaWNhbnQgZWZmZWN0IGlzIHNob3duIGJ5IGEgYmxhY2sgaW4gY29sdW1uIDYuCiAgICAgIFByb3RlaW5zIHdlcmUgY2xhc3NpZmllZCBieSBhIHByaW9yaXR5IHNjaGVtZTogcHJvdGVpbnMgbWF0Y2hpbmcgY3VyYXRlZAogICAgICBwdXRhdGl2ZSBpbW11bmUtcmVsYXRlZCBvciBkaWdlc3RpdmUtcmVsYXRlZCBwcm90ZWluIGZhbWlsaWVzIChieSBwcm90ZWluCiAgICAgIG5hbWUgb3IgR2VuZSBPbnRvbG9neSBhbm5vdGF0aW9uKSB3ZXJlIGFzc2lnbmVkIHRvIHRob3NlIGNhdGVnb3JpZXMgZmlyc3QsCiAgICAgIGFuZCBhbGwgcmVtYWluaW5nIHByb3RlaW5zIHdlcmUgZ3JvdXBlZCBieSBHZW5lIE9udG9sb2d5IEJpb2xvZ2ljYWwKICAgICAgUHJvY2VzcyAoVW5pUHJvdEtCKS4gKipEZXNjcmlwdGlvbjogRmlnLiA1YS4gUGllIGNoYXJ0IG9mIHRoZSBmdW5jdGlvbmFsCiAgICAgIGNsYXNzaWZpY2F0aW9uIG9mIHRoZSoqICoqKkEuIHN1dW0qKiogKippbnRlc3RpbmFsLUVWIHByb3Rlb21lLioqCiAgICAgIERpc3RyaWJ1dGlvbiBvZiB0aGUgMSw1NzQgKkEuIHN1dW0qIGludGVzdGluYWwtRVYgcHJvdGVpbnMgYWNyb3NzCiAgICAgIGZ1bmN0aW9uYWwgY2F0ZWdvcmllcy4gQ2F0ZWdvcmllcyBhbmQgdGhlaXIgcHJvcG9ydGlvbnMgb2YgdGhlIHRvdGFsCiAgICAgIHByb3Rlb21lIHdlcmU6IE5vIEdPIGFubm90YXRpb24sIDQzNiAoMjcuNyUpOyBPdGhlciBiaW9sb2dpY2FsIHByb2Nlc3MsCiAgICAgIDI2NSAoMTYuOCUpOyBEaWdlc3RpdmUtcmVsYXRlZCwgMTMwICg4LjMlKTsgVHJhbnNsYXRpb24sIDExOSAoNy42JSk7CiAgICAgIFByb3RlaW4gZm9sZGluZyAmYW1wOyBUcmFuc3BvcnQsIDExNiAoNy40JSk7IEltbXVuZS1yZWxhdGVkLCA5NiAoNi4xJSk7CiAgICAgIENhcmJvaHlkcmF0ZSAmYW1wOyBFbmVyZ3kgbWV0YWJvbGlzbSwgODUgKDUuNCUpOyBDeXRvc2tlbGV0b24KICAgICAgb3JnYW5pemF0aW9uLCA2OCAoNC4zJSk7IFByb3Rlb2x5c2lzICZhbXA7IFByb3RlaW4gY2F0YWJvbGlzbSAoaW5jbC4KICAgICAgdWJpcXVpdGluKSwgNjcgKDQuMyUpOyBMaXBpZCBtZXRhYm9saXNtLCA1MCAoMy4yJSk7IFNpZ25hbCB0cmFuc2R1Y3Rpb24sCiAgICAgIDQ5ICgzLjElKTsgVmVzaWNsZS9JbnRyYWNlbGx1bGFyIHRyYW5zcG9ydCwgMzIgKDIuMCUpOyBUcmFuc3BvcnQKICAgICAgKGlvbi9zbWFsbCBtb2xlY3VsZSksIDI3ICgxLjclKTsgTnVjbGVpYyBhY2lkIG1ldGFib2xpc20sIDI1ICgxLjYlKTsgYW5kCiAgICAgIFN0cmVzcyByZXNwb25zZSAmYW1wOyBSZWRveCwgOSAoMC42JSkuIFByZXN1bWVkIGltbXVuZS1yZWxhdGVkIGFuZAogICAgICBkaWdlc3RpdmUtcmVsYXRlZCBwcm90ZWlucyBmb3JtIGRpc3RpbmN0IGZyYWN0aW9ucyBhbG9uZ3NpZGUgbWFqb3IKICAgICAgaG91c2VrZWVwaW5nIGNhdGVnb3JpZXMgc3VjaCBhcyB0cmFuc2xhdGlvbiwgcHJvdGVpbiBmb2xkaW5nL3RyYW5zcG9ydCwKICAgICAgYW5kIGVuZXJneSBtZXRhYm9saXNtLiBQcm90ZWlucyBsYWNraW5nIGFuIGluZm9ybWF0aXZlIEdPIEJpb2xvZ2ljYWwKICAgICAgUHJvY2VzcyBhbm5vdGF0aW9uIGFyZSBzaG93biBzZXBhcmF0ZWx5ICgiTm8gR08gYW5ub3RhdGlvbiIgYW5kCiAgICAgICJPdGhlciBiaW9sb2dpY2FsIHByb2Nlc3MiKSwgY29uc2lzdGVudCB3aXRoIHRoZSBpbmNvbXBsZXRlbHkKICAgICAgY2hhcmFjdGVyaXplZCAqQS4gc3V1bSogcHJvdGVvbWUuICMjIyMgRmlsZSBhbmQgVmFyaWFibGVzOiBGaWxlIEZpZzVCLmNzdgogICAgICBUaGUgZGF0YSBzZXQgbGlzdHMgaW4gdmVydGljYWwgY29sdW1ucyB0aGUgc3ViLWZhbWlseSBjb21wb3NpdGlvbiBvZiB0aGUKICAgICAgOTYgcHV0YXRpdmUgaW1tdW5lLXJlbGF0ZWQgcHJvdGVpbnMuIFRoZXNlIHByb3RlaW5zIGFyZSBpZGVudGlmaWVkIGFuZAogICAgICBjbGFzc2lmaWVkIGJ5IHRoZWlyIEFjY2Vzc2lvbiBudW1iZXIgLCB0aGVpciBwcm90ZWluIG5hbWUsIHRoZWlyCiAgICAgIHN1Yi1mYW1pbHkgZnVuY3Rpb25hbCBjYXRlZ29yeSwgdCBhbmQgaW4gdGhlIGZpbmFsIGNvbHVtbiBpZiBJdmVybWVjdGluCiAgICAgICgxwrVtKSBoYWQgYSBzaWduaWZpY2FudCBlZmZlY3QgKHNob3duIGluIGNvbHVtbiA2IGJ5IFlFUykgb24gdGhlCiAgICAgIGV4cHJlc3Npb24gbGV2ZWwuIFRoZSBsYWNrIG9mIGEgc2lnbmlmaWNhbnQgZWZmZWN0IG9mIEl2ZXJtZWN0aW4gKDHCtW0pIGlzCiAgICAgIHNlZW4gYXMgYSBibGFjayBpbiBjb2x1bW4gNikuIFByb3RlaW5zIHdlcmUgY2xhc3NpZmllZCBieSBhIHByaW9yaXR5CiAgICAgIHNjaGVtZTogcHJvdGVpbnMgbWF0Y2hpbmcgY3VyYXRlZCBwdXRhdGl2ZSBpbW11bmUtcmVsYXRlZC4gMjAgSGVhdCBzaG9jawogICAgICBwcm90ZWlucyBhcmUgbGlzdGVkLCAyMCBUcmFuc3RoeXJldGluLWxpa2UgcHJvdGVpbnMgYXJlIGxpc3RlZDsgMTYKICAgICAgTGVjdGluL0dhbGVjdGluIHByb3RlaW5zIGFyZSBsaXN0ZWQ7IDExIFRoaW9yZWRveGluL1Blcm94aWRyZWRveGluCiAgICAgIHByb3RlaW5zIGFyZSBsaXN0ZWQ7IDYgY2F0aGVwc2luL0N5ZXN0ZWluZSBwcm90ZWFzZXMgYXJlIGxpc3RlZDsgOAogICAgICBDeWNsb3BoaWxpbnMgYXJlIGxpc3RlZDsgMyBhbnRpbWljcm9iaWFsIHBlcHRpZGVzIGFyZSBsaXN0ZWQ7IDIKICAgICAgcGhvc3Bob2xpcGFzZXMgYXJlIGxpc3RlZDsgMiBXQUdPL0FyZ29uYXV0ZSBwcm90ZWlucyBhcmUgbGlzdGVkLiAyCiAgICAgIGN5c3RhdGluL3Byb3RlYXNlIGluaGliaXRvcnMgYXJlIGxpc3RlZDsgNSBHTyBpbW11bmUvZGVmZW5zZSByZXNwb25zZQogICAgICBwcm90ZWlucyBhcmUgbGlzdGVkOyA1IG90aGVyIGltbXVuZSBmYW1pbGllcyBhcmUgbGlzdGVkLiAqKkRlc2NyaXB0aW9uOgogICAgICBGaWc1QiBzaG93cyoqIHRoZSBzdWItZmFtaWx5IGNvbXBvc2l0aW9uIG9mIHRoZSA5NiBwdXRhdGl2ZSBpbW11bmUtcmVsYXRlZAogICAgICBwcm90ZWluczsgdGhlIGNlbnRlciB2YWx1ZSBpbmRpY2F0ZXMgdGhlaXIgcHJvcG9ydGlvbiBvZiB0aGUgdG90YWwKICAgICAgcHJvdGVvbWUgKDYuMSUpLiAjIyMjIEZpbGUgYW5kIHZhcmlhYmxlczogRmlnNUMuY3N2IFRoZSBkYXRhIHNldCBsaXN0cyBpbgogICAgICB2ZXJ0aWNhbCBjb2x1bW5zIHRoZSBzdWItZmFtaWx5IGNvbXBvc2l0aW9uIG9mIHRoZSAxMzAgcHV0YXRpdmUgZGlnZXN0aW9uCiAgICAgIGZ1bmN0aW9uIHByb3RlaW5zLiBUaGVzZSBwcm90ZWlucyBhcmUgaWRlbnRpZmllZCBhbmQgY2xhc3NpZmllZCBieSB0aGVpcgogICAgICBBY2Nlc3Npb24gbnVtYmVyICwgdGhlaXIgcHJvdGVpbiBuYW1lLCB0aGVpciBzdWItZmFtaWx5IGZ1bmN0aW9uYWwKICAgICAgY2F0ZWdvcnksIGFuZCBpbiB0aGUgZmluYWwgY29sdW1uIGlmIEl2ZXJtZWN0aW4gKDHCtW0pIGhhZCBhIHNpZ25pZmljYW50CiAgICAgIGVmZmVjdCAoc2hvd24gaW4gY29sdW1uIDYgYnkgWUVTKSBvbiB0aGUgZXhwcmVzc2lvbiBsZXZlbC4gVGhlIGxhY2sgb2YgYQogICAgICBzaWduaWZpY2FudCBlZmZlY3Qgb2YgSXZlcm1lY3RpbiAoMcK1bSkgaXMgc2VlbiBhcyBhIGJsYWNrIGluIGNvbHVtbiA2KS4KICAgICAgUHJvdGVpbnMgd2VyZSBjbGFzc2lmaWVkIGJ5IGEgcHJpb3JpdHkgc2NoZW1lOiBwcm90ZWlucyBtYXRjaGluZyBkaWdlc3Rpb24KICAgICAgZnVuY3Rpb24uIExpc3RlZCBhcmUgNjEgcHJvdGVhc2UvcGVwdGlkYXNlczsgMjMgR2x5Y29zaWRhc2VzOyAxOSBMaXBhc2VzOwogICAgICAxNiBHbHljb2x5dGljL0VuZXJneSBwcm90ZWluczsgMTAgQUJDIHRyYW5zcG9ydGVyczsgNiBhbWlub3RyYW5zZmVyYXNlczsgNQogICAgICBsaXBpZCB0cmFuc3BvcnRlcnMuICoqRGVzY3JpcHRpb246IEZpZzVDIHNob3dzKiogdGhlIHN1Yi1mYW1pbHkKICAgICAgY29tcG9zaXRpb24gb2YgdGhlIDEzMCBkaWdlc3RpdmUtcmVsYXRlZCBwcm90ZWluczsgdGhlIGNlbnRlciB2YWx1ZQogICAgICBpbmRpY2F0ZXMgdGhlaXIgcHJvcG9ydGlvbiBvZiB0aGUgdG90YWwgcHJvdGVvbWUgKDguMyUpLiAjIyMjIEZpbGUgYW5kCiAgICAgIHZhcmlhYmxlczogRmlnNl9BX0IuY3N2IFRoZSBkYXRhc2V0IGZpbGUgc293cyBpbiBjb2x1bW5zIHRoZSBaLXNjb3JlZCBsb2cKICAgICAgcHJvdGVpbiBhYnVuZGFuY2UgYW5kIGNvcnJlc3BvbmRpbmcgbG9nIGZvbGQtY2hhbmdlIChJVk0vRE1TTykgZHVlIHRvCiAgICAgIGl2ZXJtZWN0aW4gKDHCtU0pIGZvciB0aGUgdG9wIDExIHBvdGVudGlhbCBpbW11bmUtcmVsYXRlZCBhbmQgOSBwb3RlbnRpYWwKICAgICAgZGlnZXN0aW9uLXJlbGF0ZWQgcHJvdGVpbnMgbGlzdGVkIGluIENvbHVtbiAxIG9mIHRoZSBkYXRhIHNldC4gRXhjZXB0IGZvcgogICAgICB0aGUgc2FtcGxlcyB3aXRoIGJsYW5rIGVudGVyZWQgZWFjaCBzYW1wbGUgaGFzIDUgRE1TTyBpbmRlcGVuZGVudAogICAgICBlc3RpbWF0ZXMgYW5kIDUgaXZlcm1lY3RpbiAoMcK1TSkgZXhwb3NlZC4gVGhlIGJsYW5rcyBhcmUgZHVlIHRvIG5vCiAgICAgIGV4cGVyaW1lbnQuIFRoZSBuZWdhdGl2ZSBwcm90ZWlucyB3aXRoIG5lZ2F0aXZlIFogc2NvcmVzIHdlcmUKICAgICAgZG93bi1yZWd1bGF0ZWQgYW5kIHRoZSBwb3NpdGl2ZSBaIHNjb3JlcyB3ZXJlIHVwIHJlZ3VsYXRlZC4gQ29sdW1uIDE6CiAgICAgIHByb3RlaW4uIENvbHVtbiAyIHNhbXBsZS4gQ29sdW1uIDM6IERNU08gY29udHJvbCBvciBJdmVybWVjdGluIHRlc3QgKElWTSkuCiAgICAgIENvbHVtbiA0IFogc2NvcmUuIENvbHVtbiA1IHNob3dzIHRoZSBtZWFuIGxvZzIgRm9sZCBDaGFuZ2Ugc2NvcmUgZm9yIHRoZQogICAgICBzcGVjaWZpYyBwcm90ZWluIGdyb3VwIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbWVhbiBpdmVybWVjdGluIC9tZWFuIGNvbnRyb2wuCiAgICAgIEJsYW5rcyBhcmUgd2l0aG91dCBlbnRlcmVkIHZhbHVlcy4gKipEZXNjcmlwdGlvbjogRmlnIDYgQSAmYW1wOyBCIHNob3dzCiAgICAgIFBvdGVudGlhbCBJbW11bmUtcmVsYXRlZCBhZmZlY3RlZCBieSBpdmVybWVjdGluLioqIEhlYXRtYXBzIG9mIFotc2NvcmVkCiAgICAgIGxvZyBwcm90ZWluIGFidW5kYW5jZSBhbmQgY29ycmVzcG9uZGluZyBsb2cgZm9sZC1jaGFuZ2UgKElWTS9ETVNPKSBiYXIKICAgICAgY2hhcnRzIGZvciB0aGUgdG9wIDkgcG90ZW50aWFsIGRpZ2VzdGl2ZS1yZWxhdGVkIHByb3RlaW5zLiBDb2xvciBzY2FsZToKICAgICAgYmx1ZSwgbG93ZXIgYWJ1bmRhbmNlIChkb3duKTsgcmVkLCBoaWdoZXIgYWJ1bmRhbmNlICh1cCkgaW4gMcK1TSBpdmVybWVjdGluCiAgICAgIGNvbXBhcmVkIHRvIHRoZSAwLjAxJURNU08uIFRoZSBwcm90ZWlucyBhcmUgb3JkZXJlZCBmcm9tIG1vc3QKICAgICAgZG93bnJlZ3VsYXRlZCB0byBtb3N0IHVwcmVndWxhdGVkLiBJdmVybWVjdGluIHNhbXBsZSBibG9ja3MgYXJlIHNlcGFyYXRlZAogICAgICBieSBhIHZlcnRpY2FsIGRpdmlkZXIuIFRoZSByaWdodC1oYW5kIGNvbHVtbiBzaG93cyB0aGUgbWVhbiBpdmVybWVjdGluCiAgICAgIFotc2NvcmUgZm9yIGVhY2ggcHJvdGVpbi4gRGFzaGVkIGxpbmVzIG1hcmsgbG9nRkMgPSAxLiBQcm90ZWlucyBhcmUKICAgICAgbGFiZWxlZCBieSBuYW1lIGFuZCBVbmlQcm90IGFjY2Vzc2lvbi4gQWxsIHByb3RlaW5zIHNob3duIGFyZSBzaWduaWZpY2FudAogICAgICAocCAmbHQ7IDAuMDUsIGxvZ0ZDICZndDsgMSkuICoqQSBzaG93czoqKiBIZWF0IG1hcCBzaG93aW5nIHRoZSBkZWNyZWFzZWQKICAgICAgYW5kIGluY3JlYXNlZCBhYnVuZGFuY2Ugb2YgdGhlIHRvcCBwb3RlbnRpYWwgaW1tdW5lLXJlbGF0ZWQgcHJvdGVpbnMuICoqQjoKICAgICAgc2hvd3MqKiBsb2cgKGZvbGQtY2hhbmdlKSBJVk0vRE1TTyBiYXIgY2hhcnRzIGZvciB0aGUgdG9wIHBvdGVudGlhbAogICAgICBpbW11bmUtcmVsYXRlZCBwcm90ZWlucy4gIyMjIyBGaWxlIGFuZCBWYXJpYWJsZXM6IEZpZzZfQ19ELmNzdiBUaGUgZGF0YXNldAogICAgICBmaWxlIHNvd3MgaW4gY29sdW1ucyB0aGUgWi1zY29yZWQgbG9nIHByb3RlaW4gYWJ1bmRhbmNlIGFuZCBjb3JyZXNwb25kaW5nCiAgICAgIGxvZyBmb2xkLWNoYW5nZSAoSVZNL0RNU08pIGR1ZSB0byBpdmVybWVjdGluICgxwrVNKSBmb3IgdGhlIHRvcCA5IHBvdGVudGlhbAogICAgICBkaWdlc3Rpb24tcmVsYXRlZCBwcm90ZWlucyBsaXN0ZWQgaW4gQ29sdW1uIDEgb2YgdGhlIGRhdGEgc2V0LiBFeGNlcHQgZm9yCiAgICAgIHRoZSBzYW1wbGVzIHdpdGggYmxhbmsgZW50ZXJlZCBlYWNoIHNhbXBsZSBoYXMgNSBETVNPIGluZGVwZW5kZW50CiAgICAgIGVzdGltYXRlcyBhbmQgNSBpdmVybWVjdGluICgxwrVNKSBleHBvc2VkLiBUaGUgYmxhbmtzIGFyZSBkdWUgdG8gYWJzZW5jZSBvZgogICAgICBleHBlcmltZW50YWwgdmFsdWVzLiBUaGUgbmVnYXRpdmUgcHJvdGVpbnMgd2l0aCBuZWdhdGl2ZSBaIHNjb3JlcyB3ZXJlCiAgICAgIGRvd24tcmVndWxhdGVkIGFuZCB0aGUgcG9zaXRpdmUgWiBzY29yZXMgd2VyZSB1cCByZWd1bGF0ZWQuIENvbHVtbiAxOgogICAgICBwcm90ZWluLiBDb2x1bW4gMiBzYW1wbGUuIENvbHVtbiAzOiBETVNPIGNvbnRyb2wgb3IgSXZlcm1lY3RpbiB0ZXN0IChJVk0pLgogICAgICBDb2x1bW4gNCBaIHNjb3JlLiBDb2x1bW4gNSBzaG93cyB0aGUgbWVhbiBsb2cyIEZvbGQgQ2hhbmdlIHNjb3JlIGZvciB0aGUKICAgICAgc3BlY2lmaWMgcHJvdGVpbiBncm91cCBjYWxjdWxhdGVkIGZyb20gdGhlIG1lYW4gaXZlcm1lY3RpbiAvbWVhbiBjb250cm9sLgogICAgICBCbGFua3MgYXJlIHdpdGhvdXQgZW50ZXJlZCB2YWx1ZXMuICoqRGVzY3JpcHRpb246IEZpZyA2IEMqKiBzaG93cyB0aGUgSGVhdAogICAgICBtYXAgd2l0aCB0aGUgdGhlIGRlY3JlYXNlZCBhbmQgaW5jcmVhc2VkIGFidW5kYW5jZSBvZiB0aGUgdG9wCiAgICAgIGRpZ2VzdGlvbi1yZWxhdGVkIHByb3RlaW5zLiAqKkZpZyA2RCBzaG93cyoqIHRoZSBsb2cgKGZvbGQtY2hhbmdlKQogICAgICBJVk0vRE1TTyBiYXIgY2hhcnRzIGZvciB0aGUgdG9wIGRpZ2VzdGlvbi1yZWxhdGVkIHByb3RlaW5zLiAjIyMjIEZpbGUgYW5kCiAgICAgIFZhcmlhYmxlczogRmlnNy5jc3YgVGhlIGRhdGFzZXQgbGlzdHMgaW4gNiBjb2x1bW5zIHRoZSBlZmZlY3Qgb2YKICAgICAgaXZlcm1lY3RpbiAoMcK1TSkgb24gMTMyNSBwcm90ZWlucy4gQ29sdW1uIDEgaXMgdGhlIHByb3RlaW4gQWNjZXNzaW9uCiAgICAgIG51bWJlci4gQ29sdW1uIDIgaXMgdGhlIGZ1bmN0aW9uYWwgZGVzY3JpcHRvciBvZiB0aGUgcHJvdGVpbi4gQ29sdW1uIDMgaXMKICAgICAgdGhlIGxvZzIgZnVuY3Rpb25hbCBjaGFuZ2UuIENvbHVtbiA0IGlzIHRoZSAtbG9nMTAocCkuIENvbHVtbiA1IGlzIHRoZQogICAgICBwLXZhbHVlLiBDb2x1bW4gbGlzdHMgdGhlIGludGVycHJldGF0aW9uIG9mIHNpZ25pZmljYW5jZTogWWVzIGFzCiAgICAgIHNpZ25pZmljYW50OyBObyBhcyBub3Qgc2lnbmlmaWNhbnQuICoqRGVzY3JpcHRpb246IEZpZyA3IFZvbGNhbm8gcGxvdCBvZgogICAgICBkaWZmZXJlbnRpYWwgcHJvdGVpbiBhYnVuZGFuY2UgYnkgaXZlcm1lY3RpbiB0cmVhdGVkKiogKioqQS4gc3V1bSoqKgogICAgICAqKmludGVzdGluYWwgRVZzLioqIEVhY2ggcG9pbnQgcmVwcmVzZW50cyBvbmUgcHJvdGVpbjsgdGhlIHgtYXhpcyBzaG93cwogICAgICBsb2cgKGZvbGQgY2hhbmdlKSBJVk0vRE1TTywgYW5kIHRoZSB5LWF4aXMgc2hvd3MgbG9nKHAtdmFsdWUpCiAgICAgIChXZWxjaCdzIHQtdGVzdCwgTiA9IDUpLiBEYXNoZWQgbGluZXMgaW5kaWNhdGUgdGhlIHNpZ25pZmljYW5jZQogICAgICB0aHJlc2hvbGRzIChwID0gMC4wNSBhbmQgbG9nRkMgJmd0OyAxKS4gT2YgMTMyNSBxdWFudGlmaWVkIHByb3RlaW5zLCAzOAogICAgICB3ZXJlIHNpZ25pZmljYW50bHkgYWx0ZXJlZCAoMjMgZGVjcmVhc2VkIGFuZCAxNSBpbmNyZWFzZWQgZm9sbG93aW5nCiAgICAgIGl2ZXJtZWN0aW4gZXhwb3N1cmUpLiBMaWdodC1ncmV5IHBvaW50cywgbm90IHNpZ25pZmljYW50OyBibGFjayBwb2ludHMsCiAgICAgIHNpZ25pZmljYW50IHByb3RlaW5zIG5vdCBhc3NpZ25lZCB0byB0aGUgaW1tdW5lIG9yIGRpZ2VzdGl2ZSBjYXRlZ29yaWVzOwogICAgICB5ZWxsb3cgcG9pbnRzLCBzaWduaWZpY2FudCBwb3RlbnRpYWwgaW1tdW5lLXJlbGF0ZWQgcHJvdGVpbnM7IGdyZWVuCiAgICAgIHBvaW50cywgc2lnbmlmaWNhbnQgZGlnZXN0aXZlLXJlbGF0ZWQgcHJvdGVpbnMuIFNpZ25pZmljYW50IHBvdGVudGlhbAogICAgICBpbW11bmUtcmVsYXRlZCBhbmQgZGlnZXN0aXZlLXJlbGF0ZWQgcHJvdGVpbnMgYXJlIGxhYmVsbGVkIGJ5IG5hbWUuCiAgICAgIFByb3RlaW5zIG9uIHRoZSBsZWZ0IGFyZSBkZWNyZWFzZWQgaW4gaXZlcm1lY3RpbiByZWxhdGl2ZSB0byBETVNPLgogICAgICBQcm90ZWlucyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGxvdCBhcmUgaW5jcmVhc2VkIGluIGl2ZXJtZWN0aW4KICAgICAgcmVsYXRpdmUgdG8gRE1TTy4KICAgIDwvZGVzY3JpcHRpb24+CiAgPC9kZXNjcmlwdGlvbnM+CjwvcmVzb3VyY2U+","url":"https://datadryad.org/dataset/doi:10.5061/dryad.zs7h44jsg","contentUrl":null,"metadataVersion":0,"schemaVersion":"http://datacite.org/schema/kernel-4","source":"mds","isActive":true,"state":"findable","reason":null,"viewCount":0,"viewsOverTime":[],"downloadCount":0,"downloadsOverTime":[],"referenceCount":0,"citationCount":1,"citationsOverTime":[{"year":"2026","total":1}],"partCount":0,"partOfCount":0,"versionCount":0,"versionOfCount":0,"created":"2026-09-03T19:15:35.000Z","registered":"2026-09-03T19:15:37.000Z","published":"2026","updated":"2026-09-03T19:15:37.000Z"},"relationships":{"client":{"data":{"id":"dryad.dryad","type":"clients"}},"provider":{"data":{"id":"dryad","type":"providers"}},"media":{"data":{"id":"10.5061/dryad.zs7h44jsg","type":"media"}},"references":{"data":[]},"citations":{"data":[{"id":"10.64898/2026.08.25.745816","type":"dois"}]},"parts":{"data":[]},"partOf":{"data":[]},"versions":{"data":[]},"versionOf":{"data":[]}}}}